OSDN Git Service

50cc6134356c3f568c7ef35c74d4881db2a82a30
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-19  Roger Sayle  <roger@eyesopen.com>
2
3         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
4         instead of both an ARGLIST and a result TYPE.  Handle these C99
5         comparison functions as "polymorphic" builtins.  Also handle
6         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
7         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
8         Move handling of BUILT_IN_ISUNORDERED from here to there.
9
10 2004-06-19  Richard Henderson  <rth@redhat.com>
11
12         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
13         * c-gimplify.c: Remove unnecessary prototypes.
14         (c_gimplify_stmt): Merge into ...
15         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
16         * c-semantics.c (prep_stmt): Remove.
17         * gimplify.c (annotate_one_with_locus): Break out from ...
18         (annotate_all_with_locus): ... here.
19         (gimplify_expr): Add locus to expressions even if pre/post queues
20         are not present.
21
22 2004-06-19  Richard Henderson  <rth@redhat.com>
23
24         PR target/15941
25         * function.c (assign_parms): If not padding upward or intentionally
26         forcing upward padding, take offset_rtx into account when determining
27         the alignment for stack_parm.
28
29 2004-06-19  Richard Henderson  <rth@redhat.com>
30
31         PR target/15550
32         * ifcvt.c (noce_try_move): Recognize all generated instructions.
33
34 2004-06-19  Jan Hubicka  <jh@suse.cz>
35
36         * function.c (free_after_compilation): Do not free computed_goto_common*.
37         * function.h (struct function): Kill computed_goto_common*.
38         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
39         * tree-cfg.c (disband_implicit_edges): Do not forward across the
40         commonized computed goto.
41
42 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
43
44         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
45         in binutils.
46
47 2004-06-19  Andrew Pinski  <apinski@apple.com>
48
49         PR c++/15721
50         * toplev.c (wrapup_global_declarations): Do not check
51         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
52         cgraph_varpool_node's needed field.
53
54 2004-06-19  Jan Hubicka  <jh@suse.cz>
55             Steven Bosscher  <stevenb@suse.de>
56
57         CFG transparent RTL expansion:
58         * Makefile.in (cfgexpand.o): New object file.
59         (builtins.o): Add dependency on basic-block.h
60         * builtins.c: Include basic-block.h
61         (entry_of_function): New function.
62         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
63         * cfgexpand.c: New file.
64         * expr.c (execute_expand, pass_expand): Kill.
65         * pass.c (rest_of_compilation): Do not build CFG unless called from
66         coverage code.
67         * tree-cfg.c (delete_tree_cfg): Rename to..
68         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
69         * tree-flow.h (delete_tree_cfg_annotations): Declare.
70         (dleete_tree_cfg): Kill.
71         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
72         (execute_del_cfg): Rename to...
73         (execute_free_datastructures): This one...
74         (pass_del_cfg): Rename to...
75         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
76         (init_tree_optimization_passes): Make cfg build and profiling to happen
77         unconditionally.
78
79 2004-06-19  Steven Bosscher  <stevenb@suse.de>
80
81         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
82         inserting the cache variables.
83
84         * tree-mudflap.c: Include headers to make basic_block available.
85         Move functions around such that related functions are near each
86         other.  Add prototypes for all static functions.  Add comments
87         briefly explaining what IR the mudflap1 and mudflap2 work on and
88         what they do.
89         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
90         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
91         (pass_mudflap_1, pass_mudflap_2): Update.
92         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
93         function tree.
94         (mf_build_check_statement_for): Make it work on the CFG.
95         (mf_xform_derefs_1): Likewise.  Cleanup code style.
96         (mf_xform_derefs): Likewise.
97
98 2004-06-19  Jan Hubicka  <jh@suse.cz>
99
100         * tree-cfg.c (label_to_block): Invent the label destination for
101         undefined labels.
102         (cleanup_dead_labels): Update table in the case label_to_block added
103         new label.
104
105 2004-06-18  Richard Henderson  <rth@redhat.com>
106
107         PR c++/16036 
108         * gimple-low.c (lower_function_body): Generate return statement for
109         fall off the end of the function here ...
110         * tree-cfg.c (make_edges): ... instead of here.
111         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
112
113 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
114
115         * tree-ssa.c (raise_value): Removed.
116         (get_eq_name, check_phi_redundancy): New functions.
117         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
118
119 2004-06-18  Roger Sayle  <roger@eyesopen.com>
120
121         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
122         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
123         constant folding for unordered comparison tree nodes.  If both
124         operands are real constants, call fold_relational_const.  If either
125         operand is a NaN, evaluate the other for side-effects and return a
126         constant.  Optimize (double)float1 CMP (double)float2 into the
127         equivalent float1 CMP float2.
128         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
129         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
130         LTGT_EXPR>: Call fold_relational_const for constant operands.
131         (fold_relational_const): Add support for unordered comparison tree
132         nodes.  Don't constant fold "ordered" floating point comparisons
133         against NaN if when flag_trapping_math is set.
134
135 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
136
137         * fold-const.c (build_range_check): If !in_p and recursive call
138         fails, exit immediately.  If high - low overflows and etype is
139         a signed type, retry with unsigned etype.
140         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
141         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
142
143 2004-06-18  Richard Henderson  <rth@redhat.com>
144
145         * c-gimplify.c (gimplify_condition): Remove.
146         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
147         call it.
148
149 2004-06-18  Richard Henderson  <rth@redhat.com>
150
151         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
152         switch estimates.
153
154 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
155
156         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
157         (NORMAL_TEXT_SECTION_NAME): Define.
158         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
159         (SECTION_FORMAT_STRING): Define.
160
161 2004-06-18  Steven Bosscher  <stevenb@suse.de>
162
163         * config/xtensa/xtensa.c
164         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
165         * xtensa.md: Replace the old pipeline description with a DFA model.
166
167 2004-06-18  Steven Bosscher  <stevenb@suse.de>
168             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
169
170         * config/s390/s390.md: Remove the generic pipeline description.
171         * config/s390/2064.md: Make all insn reservations apply to
172         the z900, g5 and g6.
173         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
174         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
175         Define to hook_int_void_1.
176         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
177         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
178
179 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
180                         Diego Novillo  <dnovillo@redhat.com>
181
182         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
183         (create_stmt_ann): Ditto.
184         (create_tree_ann): New function.
185         (create_cst_ann): Remove.
186         (create_expr_ann): Ditto.
187
188         * tree-flow-inline.h (cst_ann): Remove.
189         (get_cst_ann): Ditto.
190         (get_expr_ann): Ditto.
191         (expr_ann): Ditto.
192         (get_tree_ann): New function.
193         (tree_ann): Ditto.
194         (ann_type): tree_ann -> tree_ann_t.
195         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
196         (struct cst_ann_d): Removed.
197         (struct expr_ann_d): Ditto.
198         (union tree_ann_d): Removed cst and expr.
199         (tree_ann): Renamed to tree_ann_t.
200         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
201         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
202         annotation.
203         (set_value_handle): Ditto.
204         (phi_translate): Ditto.
205         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
206
207 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
208
209         * config/sh/t-linux64: New file.
210         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
211
212 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
213
214         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
215         (unshare_all_rtl_again): Call unshare_all_rtl_1.
216         (unshare_all_rtl): New.
217         * function.c (instantiate_virtual_regs): Remove parameters.
218         * function.h (instantiate_virtual_regs): Add prototype.
219         * rtl.h (unshare_all_rtl): Add prototype.
220         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
221         prototype.
222         * passes.c: Remove assertions on the parameters to
223         rest_of_handle_* functions.  Remove the parameters to
224         the functions, replacing decl with current_function_decl
225         and insns with get_insns ().
226
227 2004-06-17  Roger Sayle  <roger@eyesopen.com>
228
229         * fold-const.c (constant_boolean_node): Handle boolean_type_node
230         directly, return either boolean_true_node or boolean_false_node.
231
232 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
233
234         * opts.sh: Delete.  Break out generated code to next four files.
235         * opt-gather.awk: New file.
236         * optc-gen.awk: New file.
237         * opth-gen.awk: New file.
238         * opt-functions.awk: New common file.
239         * Makefile.in: Update for above.
240         * configure.ac: Update comment.
241         * configure: Regenerate.
242
243 2004-06-17  Richard Henderson  <rth@redhat.com>
244
245         * c-common.c (flag_objc_sjlj_exceptions): New.
246         * c-common.h (flag_objc_sjlj_exceptions): Declare.
247         * c-opts.c (c_common_handle_option): Set it.
248         (c_common_post_options): Handle interation of different
249         objective-c exception and runtime switches.
250         * c-decl.c (c_eh_initialized_p): New.
251         (finish_decl): Use it instead of local eh_initialized_p.
252         * c-parse.in (nested_function, notype_nested_function): Record
253         the result of compstmt.
254         (compstmt_or_error): Likewise.
255         (compstmt): Don't add_stmt the result.
256         (stmt): Don't return anything.  Rewrite objc try and sync rules.
257         (objc_try_stmt, objc_catch_list): Remove.
258         (objc_catch_block, objc_finally_block): Remove.
259         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
260         (objc_try_catch_clause, objc_finally_clause): New.
261         (objc_try_catch_stmt): Rewrite.
262         * c-tree.h (c_eh_initialized_p): Declare.
263         * c-opt (fobjc-sjlj-exceptions): New.
264         * except.c (output_function_exception_table): Don't call cgraph
265         on non-decls.
266         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
267         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
268         catch_count_stack, exc_binding_stack, if_nesting_count,
269         blk_nesting_count, objc_enter_block, objc_exit_block,
270         objc_declare_variable, val_stack_push, val_stack_pop, 
271         objc_build_try_enter_fragment, objc_build_extract_expr,
272         objc_build_try_exit_fragment, objc_build_extract_fragment,
273         objc_build_try_prologue, objc_build_try_epilogue, 
274         objc_build_catch_stmt, objc_build_catch_epilogue,
275         objc_build_finally_prologue, objc_build_finally_epilogue,
276         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
277         objc_build_synchronized_epilogue): Remove.
278         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
279         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
280         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
281         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
282         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
283         objc_begin_catch_clause, objc_finish_catch_clause,
284         objc_build_finally_clause, objc_finish_try_stmt,
285         objc_build_synchronized): New.
286         (objc_is_object_id, objc_is_class_id): New.
287         (objc_comptypes): Use them.
288         (build_next_objc_exception_stuff): Break NeXT sjlj out from
289         build_objc_exception_stuff.
290         (synth_module_prologue): Update to match.
291         (objc_build_throw_stmt): Use cur_try_context to decide if
292         we're in a @catch.
293         * objc/objc-act.h: Update prototypes.
294         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
295
296 2004-06-17  Andrew Pinski <apinski@apple.com>
297
298         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
299         Use TYPE_FIELDS instead of TYPE_VALUES.
300
301 2004-06-17  Jason Merrill  <jason@redhat.com>
302
303         PR c++/16015
304         * gimplify.c (gimplify_target_expr): Handle void initializer.
305         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
306         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
307         and AGGR_INIT_EXPR.
308
309 2004-06-17  Roger Sayle  <roger@eyesopen.com>
310
311         * fold-const.c (fold_relational_const): Use constant_boolean_node.
312
313 2004-06-17  Jan Hubicka  <jh@suse.cz>
314
315         PR target/15433
316         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
317         operand numbering in the output template.
318         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
319
320 2004-06-17  Jan Hubicka  <jh@suse.cz>
321
322         * except.c (can_throw_internal): Recognize RESX expresisons.
323
324 2004-06-17  Jan Hubicka  <jh@suse.cz>
325
326         * cfgbuild.c (make_edges): Do not use label_value_list.
327         (find_basic_blocks_1): Do not collect label_value_list.
328         (find_sub_basic_blocks): Update call of make_edges.
329
330 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
331
332         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
333         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
334         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
335         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
336         (get_v_may_def_result_ptr):  Return a def_operand_p.
337         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
338         (get_v_must_def_op_ptr):  Return a def_operand_p.
339         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
340         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
341         (phi_element_for_edge):  Remove.
342         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
343         (propagate_tree_value):  Add new prototype.
344         (phi_element_for_edge):  Remove prototype.
345         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
346         (prepare_operand_for_rename):  Split into two functions.
347         (prepare_use_operand_for_rename):  Prepare use operands.
348         (prepare_def_operand_for_rename):  Prepare def operands.
349         (rewrite_stmt):  Use new operand types.
350         (rewrite_operand):  Use new operand types, change parameter type.
351         * tree-outof-ssa.c (replace_variable):  Split into two functions.
352         (replace_use_variable):  Rewrite uses.
353         (replace_def_variable):  Rewrite defs.
354         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
355         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
356         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
357         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
358         (ccp_fold, replace_uses_in):  Use new operand types.
359         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
360         and no longer set the value, change parameter type.
361         (replace_exp_1):  Use new operand types.
362         (propagate_value):  Change parameter type, use new operand types.
363         (propagate_tree_value):  Propagate_value without SSA operands.
364         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
365         (cprop_into_successor_phis):  Use new operand types.
366         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
367         (eliminate_redundant_computations):  Use new operand types.
368         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
369         (fix_stmt_v_may_defs):  Use new operand_types.
370         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
371         (build_tree_conflict_graph):  Use new operand_types.
372         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
373         * tree-ssa-operands.c (struct freelist_d):  Remove.
374         (check_optype_freelist, add_optype_freelist):  Remove.
375         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
376         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
377         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
378         Call ggc_free instead of add_optype_freelist.
379         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
380         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
381         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
382         (struct use_optype_d):  Change underlying type.
383         (def_operand_p, use_operand_p):  New types for pointers to operands.
384         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
385         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
386         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
387         pointer types.
388         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
389         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
390         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
391         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
392         PHI result as an operand.
393         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
394         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
395         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
396         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
397         PHI_ARG_DEF_FROM_EDGE.
398         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
399         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
400
401 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
402
403         PR tree-optimization/15991
404         * tree-cfg.c (tree_block_label): Export.
405         * tree-flow-inline.h (bsi_after_labels): New function.
406         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
407         * tree-ssa.c (propagate_into_addr): New function.
408         (replace_immediate_uses): Handle propagation of pointer constants.
409         (raise_value): Do not restrict propagation of pointer constants.
410         * tree-ssanames.c (duplicate_ssa_name): New function.
411         * tree.h (duplicate_ssa_name): Declare.
412
413 2004-06-17  David Ayers  <d.ayers@inode.at>
414  
415         * c-parse.in: Unify Objective-C token names.
416
417 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
418
419         Bug 14610
420         * Makefile.in (min-insn-modes.o): Correct dependencies.
421         * real.c (encode_ieee_extended, decode_ieee_extended): Always
422         produce/consume 12-byte little-endian Intel format.
423         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
424         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
425         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
426         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
427         New functions which convert between 12-byte little-endian Intel
428         format and the desired format.
429         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
430         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
431         Update.
432
433 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
434
435         * expmed.c (expand_mult_const): In sanity check, compare only
436         the bits of val and val_so_far that are significant in the
437         result mode.
438
439 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
440
441         * tree-ssa-pre.c:  Update comments.
442         (val_expr_pair_eq): Factor code from here.
443         (expr_pred_trans_eq): and here.
444         (expressions_equal_p): To here.
445         (print_value_set): Print value for expression.
446         (phi_trans_lookup): Rename some variables.
447         (lookup): Ditto.
448         (value_exists_in_set_bitmap): Ditto.
449         (value_remove_from_set_bitmap): Ditto.
450         (value_insert_into_set_bitmap): Ditto.
451
452 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
453
454         * config/s390/s390-modes.def (CCL3mode): New machine mode.
455         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
456         (s390_alc_comparison, s390_slb_comparison): Likewise.
457         (s390_branch_condition_mask): Likewise.
458         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
459         ("*subsi3_cc2", "*subsi3_cconly2"): New.
460
461         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
462         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
463         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
464         Handle SIGN_EXTEND and ZERO_EXTEND.
465
466         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
467         * config/s390/s390.c (s390_expand_addcc): New function.
468         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
469         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
470         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
471
472 2004-06-17  Ben Elliston  <bje@au.ibm.com>
473
474         * tree-alias-common.c: Add whitespace.
475         * tree-inline.c: Correct comment about this file's purpose.
476         * tree-optimize.c: Likewise.
477         * tree-tailcall.c: Likewise.
478
479         * tree-alias-ander.h: Add standard top-of-file comment.
480         * tree-alias-common.h: Likewise.
481         * tree-alias-type.h: Likewise.
482
483 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
484
485         * tree-ssa-pre.c (compute_avail): Value number uses as well.
486         Strip useless type conversions.
487         Casts have to be treated slightly different than normal unaries.
488
489 2004-06-16  Richard Henderson  <rth@redhat.com>
490
491         * c-common.def (COMPOUND_STMT): Remove.
492         * c-common.c (finish_fname_decls): Don't look through it.
493         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
494         * c-common.h (COMPOUND_BODY): Remove.
495         (c_common_stmt_codes): Remove COMPOUND_STMT.
496         * c-dump.c (c_dump_tree): Likewise.
497         * c-gimplify.c (c_gimplify_stmt): Likewise.
498         * c-pretty-print.c (pp_c_statement): Likewise.
499         * tree.h (DECL_SAVED_TREE): Update commentary.
500         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
501         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
502         (GOTO_EXPR): Rename from GOTO_STMT.
503         (GOTO_FAKE_P): Remove.
504         (COMPOUND_STMT): Remove.
505         (HANDLER): Update wrt COMPOUND_STMT.
506         (STMT_EXPR): Likewise.
507         (LABEL_EXPR): Rename from LABEL_STMT.
508         (SCOPE_STMT): Remove.
509         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
510         through COMPOUND_STMT.
511
512 2004-06-16  Richard Henderson  <rth@redhat.com>
513
514         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
515         c_finish_while_stmt_cond): Remove decls.
516         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
517         * c-typeck.c (c_begin_if_stmt): Return void.
518         (c_begin_else): Tidy.  Save stmt_count.
519         * c-tree.h (c_begin_if_stmt): Update decl.
520
521         * objc/objc-act.c (objc_build_try_enter_fragment,
522         objc_build_extract_fragment, objc_build_try_epilogue,
523         objc_build_catch_stmt, objc_build_catch_epilogue,
524         objc_build_finally_prologue, objc_build_finally_epilogue): Update
525         for if builder function changes.
526
527 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
528
529         * config/s390/s390.c (struct machine_function):  New member
530         last_restore_gpr.
531         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
532         Do not modify machine->save_return_addr_p or regs_ever_live.
533         Fill in machine->last_restore_gpr.
534         (s390_optimize_prolog): Use s390_frame_info to compute registers
535         to save/restore, remove duplicated code.
536         (s390_arg_frame_offset): Use s390_frame_info to compute frame
537         size, remove duplicated code.
538         (s390_emit_prologue): Adapt s390_frame_info call.  Update
539         machine->save_return_addr_p and regs_ever_live.
540         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
541         machine->last_save_gpr.
542
543 2004-06-16  Richard Henderson  <rth@redhat.com>
544
545         * c-parse.in (if_stmt_locus): Remove.
546         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
547         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
548         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
549         empty_locus.  Add stmt_count, saw_else.
550         (c_begin_if_stmt): Push if_stack here.
551         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
552         (c_finish_then, c_finish_else): Record empty_locus.
553         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
554         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
555         if or else body.
556         * c-tree.h: Update prototypes.
557
558 2004-06-16  Steven Bosscher  <stevenb@suse.de>
559
560         * tree.h (PHI_CHAIN): New.
561         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
562         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
563         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
564         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
565         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
566         when traversing a list of PHI_NODEs.
567
568 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
569
570         PR target/13292
571         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
572         on -msoft-float.
573         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
574         68040 and soft-float.
575         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
576         in the TARGET_68040_ONLY case.
577
578 2004-06-16 Peter Barada  <peter@the-baradas.com>
579
580         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
581         (movsi_cf): Make named, don't match TARGET_CFV4.
582         (pushexthisi_const): Use mov3q if possible.
583         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
584         to special case mvz.w for ColdFire V4.
585         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
586         to special case mvz.b for ColdFire V4.
587         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
588         divide.
589         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
590         * config/m68k/m68k.c(valid_mov3q_const):  New function.
591         (const_method): SWAP is valid for ColdFire.
592         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
593         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
594
595 2004-06-16  Richard Henderson  <rth@redhat.com>
596
597         * c-common.def (CASE_LABEL): Remove.
598         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
599         (match_case_to_enum_1): Likewise.
600         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
601         * c-dump.c (c_dump_tree): Likewise.
602         * c-gimplify.c (c_gimplify_stmt): Likewise.
603         * c-pretty-print.c (pp_c_statement): Likewise.
604         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
605         * tree.h (CASE_LOW): Update commentary.
606
607 2004-06-16  Richard Henderson  <rth@redhat.com>
608
609         * c-common.def (ASM_STMT): Remove.
610         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
611         * c-dump.c (c_dump_tree): Likewise.
612         * c-gimplify.c (c_gimplify_stmt): Likewise.
613         * c-pretty-print.c (pp_c_statement): Likewise.
614         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
615         * tree.h: Fix commentary.
616
617 2004-06-16  Richard Henderson  <rth@redhat.com>
618
619         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
620         * c-common.c (c_add_case_label): Use LABEL_EXPR.
621         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
622         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
623         * c-dump.c (c_dump_tree): Likewise.
624         * c-gimplify.c (c_gimplify_stmt): Likewise.
625         * c-pretty-print.c (pp_c_statement): Likewise.
626         * c-parse.in (stmt): Use GOTO_EXPR.
627         (label): Use LABEL_EXPR.
628         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
629         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
630
631 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
632
633         * cfgcleanup.c (try_simplify_condjump): Update test to make
634         sure we have a conditional branch around am unconditional branch.
635
636 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
637
638         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
639
640 2004-06-16  Dale Johannesen  <dalej@apple.com>
641
642         * loop.c (loop_givs_reduce): Avoid miscompilation of
643         loops entered at bottom.
644
645 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
646
647         * cfglayout.c (fixup_reorder_chain): Handle case where the
648         destination of E_FALL is EXIT_BLOCK_PTR.
649
650 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
651
652         PR target/15653
653         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
654         after shifts before asm.
655
656 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
657
658         PR tree-optimization/15993
659         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
660         destination is unchanged.
661
662 2004-06-16  Andreas Jaeger  <aj@suse.de>
663
664         * doc/install.texi (Configuration): Update description for
665         --enable-version-specific-runtime-libs.
666
667 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
668
669         * doc/install.texi: boehm-gc now uses automake 1.8.5.
670
671 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
672
673         * toplev.h (rest_of_compilation): Adjust prototype.
674
675 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
676
677         * coverage.c: Remove argument to rest_of_compilation.
678         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
679         * passes.c (rest_of_compilation): Remove argument.
680         (pass_rest_of_compilation): New.
681         (rest_of_handle_final, rest_of_handle_delay_slots,
682         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
683         rest_of_handle_machine_reorg, rest_of_handle_regrename
684         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
685         rest_of_handle_regmove, rest_of_handle_tracer
686         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
687         rest_of_handle_web, rest_of_handle_branch_prob
688         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
689         rest_of_handle_addressof, rest_of_handle_jump_bypass
690         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
691         Check that the two arguments are actually superfluous.
692         * tree-optimize.c (register_dump_files): Add properties argument.
693         Track validity of passes.  Only initialize dump files for
694         tree-based passes.  Store the full set of provided passes in
695         the pass.
696         (init_tree_optimization_passes): Register pass_expand and
697         pass_rest_of_compilation.
698         (execute_one_pass): Do not track the presence of required properties
699         here.  Set in_gimple_form.  Do not update current_properties.
700         (current_properties): Remove.
701         (set_save_expr_context): Remove.
702         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
703         expand to RTL here, and do not call rest_of_compilation.  Push
704         GGC context even before gimplification.
705         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
706         (pass_expand, pass_rest_of_compilation): Declare.
707
708 2004-06-15  Jeff Law  <law@redhat.com>
709
710         * fold-const.c (swap_tree_comparison): No longer static.
711         (tree_swap_operands_p): Similarly.  Return true if both operands
712         are SSA_NAMEs and the first operand has a higher version number than
713         the second operand.
714         * tree.h (swap_tree_comparison): Prototype.
715         (tree_swap_operands_p): Prototype.
716         * tree-ssa-operands.c (get_expr_operands): For commutative
717         operators and relational comparisons, canonicalize the
718         order of the operands.
719
720 2004-06-15  Richard Henderson  <rth@redhat.com>
721
722         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
723         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
724         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
725         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
726         (finish_fname_decls, fname_decl): Use statement_lists.
727         (c_expand_expr_stmt): Don't set last_expr_type.
728         (c_type_hash): Fix indentation.
729         (c_safe_from_p): Don't follow TREE_CHAIN.
730         (c_tree_chain_matters_p): Remove.
731         * c-common.def (SCOPE_STMT): Remove.
732         (CLEANUP_STMT): Redefine to contain its own body.
733         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
734         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
735         Add x_cur_stmt_list.
736         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
737         (cur_stmt_list): New.
738         (STATEMENT_LIST_STMT_EXPR): New.
739         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
740         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
741         (CLEANUP_BODY): New.
742         (CLEANUP_DECL): Move to operand 2.
743         (c_common_stmt_codes): Remove SCOPE_STMT.
744         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
745         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
746         (c_push_function_context, c_pop_function_context): Don't save it.
747         (finish_decl): Set TREE_USED on the decl for a cleanup.
748         Use push_cleanup.
749         (store_parm_decls): Use statement lists.
750         (finish_function): Remove compstmt rule workaround.  Use statement
751         lists.  Call finish_fname_decls after finalizing the body.
752         (c_begin_compound_stmt): Move to c-typeck.c.
753         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
754         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
755         (c_genericize): Invoke them.
756         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
757         (c_build_bind_expr): Export.
758         (gimplify_block, gimplify_cleanup): Remove.
759         (gimplify_condition): Use gimplify_stmt.
760         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
761         (gimplify_if_stmt): Remove recursion hack.
762         (c_gimplify_expr): Remove STMT_EXPR handling.
763         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
764         (is_last_stmt_of_scope): Remove.
765         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
766         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
767         c_end_compound_stmt.
768         * c-objc-common.c (build_cdtor): Likewise.
769         * c-parse.in (primary): Use c_finish_stmt_expr.
770         (push_scope, pop_scope): Remove.
771         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
772         (c99_block_end, compstmt): Use c_end_compound_stmt.
773         (c99_block_lineno_labeled_stmt): Likewise.
774         (compstmt_primary_start): Use c_begin_stmt_expr.
775         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
776         (do_stmt_start): Fill in body directly.
777         (lineno_stmt): Avoid setting lineno on constants.
778         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
779         Remove SCOPE_STMT.
780         * c-semantics.c (begin_stmt_tree): Remove.
781         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
782         (add_stmt): Use statement lists.
783         (add_scope_stmt, finish_stmt_tree): Remove.
784         (push_cleanup): New.
785         * c-tree.h: Move some decls from c-common.h.
786         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
787         (do_case, c_finish_case): Likewise.
788         (c_finish_then): Take body for then as argument.
789         (c_finish_else): Similarly.
790         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
791         c_finish_for_stmt_incr, c_finish_for_stmt): New.
792         (c_begin_stmt_expr, c_finish_stmt_expr): New.
793         (c_begin_compound_stmt): Do scope management.
794         (c_end_compound_stmt): New.
795         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
796         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
797         Look through exception handling constructs.
798         (gimplify_bind_expr): Accept temporary argument.
799         (gimplify_target_expr): Special case BIND_EXPR bodies.
800         (gimplify_expr): Handle fallback == fb_none like a statement.
801         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
802         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
803         * langhooks.h (tree_chain_matters_p): Remove.
804         * stub-objc.c (objc_clear_super_receiver): New.
805         * tree-gimple.h (voidify_wrapper_expr): Update decl.
806         (append_to_statement_list, append_to_statement_list_force): Move
807         to tree-iterator.h.
808         * tree-inline.c (expand_call_inline): Update call.
809         (clone_body): Use statement lists.
810         (walk_tree): Don't check tree_chain_matters_p.
811         (copy_tree_r): Likewise.
812         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
813         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
814         * tree-iterator.h (append_to_statement_list,
815         append_to_statement_list_force): Moved from tree-gimple.h.
816         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
817         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
818         (objc_enter_block): Likewise.
819         (objc_exit_block): Use c_end_compound_stmt.
820         (objc_build_try_enter_fragment): Add #error and comment for
821         rewriting for OBJCPLUS.
822         (objc_build_extract_fragment, objc_build_try_epilogue,
823         objc_build_catch_stmt, objc_build_finally_prologue,
824         objc_build_finally_epilogue): Update for C statement builders.
825         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
826         Remove.
827
828 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
829
830         * df.c (df_reg_clobber_gen): Removed.
831         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
832         Make more effective for hard regs.
833         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
834
835 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
836
837         * c-pragma.h (c_lex_string_translate): Change type to int.
838         * c-parse.in: Change all assignments of c_lex_string_translate
839         to true and false to 1 and 0.
840         * c-lex.c (c_lex_string_translate): Likewise.
841         (lex_string): Convert string without translation in the -1
842         case.
843
844 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
845
846         * convert.h: Add include guards
847
848 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
849
850         * tree-flow-inline.h: Document all functions.
851
852 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
853
854         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
855         * tree-dfa.c (create_stmt_ann): Ditto.
856         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
857         * tree-inline.c (estimate_num_insns_1): Ditto.
858         * tree.c (tree_size): Ditto.
859         (make_node_stat): Ditto.
860         (tree_node_structure): Ditto.
861         (ephi_node_elt_check_failed): Remove.
862         (is_essa_node): Ditto.
863         * tree.def (EPHI_NODE): Ditto.
864         (EEXIT_NODE): Ditto.
865         (EUSE_NODE): Ditto.
866         (EKILL_NODE): Ditto.
867         * tree.h (EREF_NODE_CHECK): Remove.
868         (EPHI_NODE_ELT_CHECK): Ditto.
869         (struct tree_eref_common): Ditto.
870         (struct tree_euse_node): Ditto.
871         (struct ephi_arg_d): Ditto.
872         (struct tree_ephi_node): Ditto.
873         (ephi_node_elt_check_failed): Remove prototype.
874         (is_essa_node): Ditto.
875         (enum tree_node_structure_enum): Remove TS_E*_NODE.
876         (union tree_node): Remove E*_NODE uses.
877
878 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
879
880         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
881         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
882         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
883         Likewise.
884         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
885         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
886         expand_builtin_strcmp, expand_builtin_strncmp,
887         expand_builtin_frame_address): Likewise.
888         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
889         insert_one_insn): Likewise.
890         * calls.c (prepare_call_address, precompute_register_parameters,
891         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
892         * cfganal.c (flow_active_insn_p): Likewise.
893         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
894         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
895         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
896         make_extraction, recog_for_combine, gen_lowpart_for_combine,
897         simplify_comparison, record_dead_and_set_regs_1,
898         record_dead_and_set_regs, record_promoted_value,
899         check_promoted_subreg, get_last_value_validate, get_last_value,
900         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
901         unmentioned_reg_p_1): Likewise.
902         * conflict.c (mark_reg): Likewise.
903         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
904         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
905         merge_equiv_classes, flush_hash_table, invalidate,
906         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
907         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
908         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
909         record_jump_cond, cse_insn, addr_affects_sp_p,
910         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
911         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
912         cse_cc_succs, cse_condition_code_reg): Likewise.
913         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
914         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
915         cselib_record_set, cselib_record_sets): Likewise.
916         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
917         dbxout_block): Likewise.
918         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
919         * dojump.c (do_jump): Likewise.
920         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
921         is_based_loc, rtl_for_decl_location): Likewise.
922         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
923         set_decl_incoming_rtl, mark_user_reg): Likewise.
924         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
925         copy_to_suggested_reg, allocate_dynamic_stack_space,
926         probe_stack_range, hard_function_value): Likewise.
927         * expmed.c (store_bit_field, store_fixed_bit_field,
928         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
929         extract_split_bit_field, expand_divmod, emit_store_flag_force):
930         Likewise.
931         * expr.c (convert_move, convert_modes,
932         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
933         use_group_regs, emit_move_insn, emit_move_insn_1,
934         compress_float_constant, push_block, emit_single_push_insn,
935         emit_push_insn, get_subtarget, expand_assignment, store_expr,
936         store_constructor, store_field, force_operand, safe_from_p,
937         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
938         Likewise.
939         * final.c (profile_function, final_scan_insn, alter_subreg,
940         get_mem_expr_from_op, output_asm_operand_names, output_operand,
941         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
942         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
943         find_regno_partial, propagate_one_insn, init_propagate_block_info,
944         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
945         attempt_auto_inc, find_auto_inc, mark_used_regs,
946         count_or_remove_death_notes_bb): Likewise.
947         * function.c (find_temp_slot_from_address, update_temp_slot_address,
948         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
949         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
950         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
951         purge_single_hard_subreg_set, instantiate_decl,
952         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
953         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
954         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
955         expand_function_start, diddle_return_value, clobber_return_register,
956         expand_function_end, keep_stack_depressed, handle_epilogue_set,
957         update_epilogue_consts): Likewise.
958         * genemit.c (gen_exp, gen_insn): Likewise.
959         * genrecog.c (make_insn_sequence): Likewise.
960         * global.c (global_conflicts, expand_preferences, mark_reg_store,
961         mark_reg_conflicts, set_preference, reg_becomes_live,
962         build_insn_chain, mark_reg_change): Likewise.
963         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
964         Likewise.
965         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
966         Likewise.
967         * integrate.c (copy_rtx_and_substitute, try_constants,
968         subst_constants, mark_stores, allocate_initial_values): Likewise.
969         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
970         delete_computation, rtx_renumbered_equal_p, true_regnum,
971         reg_or_subregno): Likewise.
972         * lcm.c (reg_dies, reg_becomes_live): Likewise.
973         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
974         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
975         wipe_dead_reg, no_conflict_p): Likewise.
976         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
977         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
978         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
979         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
980         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
981         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
982         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
983         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
984         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
985         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
986         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
987         try_swap_copy_prop): Likewise.
988         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
989         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
990         Likewise.
991         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
992         reload_cse_simplify_operands, reload_combine,
993         reload_combine_note_store, reload_combine_note_use,
994         reload_cse_move2add, move2add_note_store): Likewise.
995         * print-rtl.c (print_rtx): Likewise.
996         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
997         contains_pseudo, handle_asm_insn): Likewise.
998         * ra-debug.c (ra_print_rtx_object, dump_constraints,
999         dump_static_insn_cost): Likewise.
1000         * ra-rewrite.c (slots_overlap_p, emit_colors,
1001         remove_suspicious_death_notes): Likewise.
1002         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1003         register_operand, scratch_operand, nonmemory_operand,
1004         constrain_operands): Likewise.
1005         * reg-stack (check_asm_stack_operands, remove_regno_note,
1006         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1007         subst_asm_stack_regs): Likewise.
1008         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1009         record_address_regs, reg_scan_mark_refs): Likewise.
1010         * regmove.c (discover_flags_reg, replacement_quality,
1011         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1012         fixup_match_1): Likewise.
1013         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1014         kill_set_value, copyprop_hardreg_forward_1): Likewise.
1015         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1016         reload_inner_reg_of_subreg, can_reload_into, push_reload,
1017         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1018         operands_match_p, decompose, find_reloads, find_reloads_toplev,
1019         find_reloads_address, subst_indexed_address, find_reloads_address_1,
1020         find_reloads_subreg_address, find_replacement,
1021         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1022         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1023         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1024         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1025         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1026         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1027         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1028         do_output_reload, emit_reload_insns, gen_reload,
1029         delete_address_reloads_1, inc_for_reload): Likewise.
1030         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1031         update_reg_unused_notes, fill_slots_from_thread): Likewise.
1032         * resource.c (update_live_status, mark_referenced_resources,
1033         mark_set_resources, mark_target_live_regs): Likewise.
1034         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1035         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1036         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1037         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1038         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1039         parms_set, find_first_parameter_load, keep_with_call_p,
1040         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1041         num_sign_bit_copies1): Likewise.
1042         * rtlhooks.c (gen_lowpart_general): Likewise.
1043         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1044         sched_analyze): Likewise.
1045         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1046         Likewise.
1047         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1048         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1049         simplify_binary_operation, simplify_const_relational_operation,
1050         simplify_subreg): Likewise.
1051         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1052         expand_end_stmt_expr, expand_return, expand_decl,
1053         expand_anon_union_decl): Likewise.
1054         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1055         find_splittable_regs, find_splittable_givs, find_common_reg_term,
1056         loop_iterations): Likewise.
1057         * var-tracking.c (variable_union, variable_part_different_p,
1058         variable_different_p, count_uses, add_uses, add_stores,
1059         compute_bb_dataflow, set_variable_part, delete_variable_part,
1060         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1061         Likewise.
1062         * varasm.c (assemble_variable): Likewise.
1063
1064 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
1065
1066         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1067         definition.
1068         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1069         #undef and #if 0'd definition.
1070
1071 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1072
1073         * combine.c (distribute_notes): Comment typo fix.
1074
1075 2004-06-15  Roger Sayle  <roger@eyesopen.com>
1076
1077         * expmed.c (synth_mult): Mask bits of the multiplier to the
1078         machine mode of the multiplication.  Don't consider shifts
1079         by more than (or equal to) the width of the operation's mode.
1080
1081 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1082
1083         * doc/install.texi: Yet another update for autoconf
1084         and automake versions.
1085
1086 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1087
1088         * function.h (struct function): Remove cannot_inline field.
1089         (current_function_cannot_inline): Remove.
1090         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1091         Simplify conditionals to ignore warn_return_type.
1092         * tree-optimize.c (tree_rest_of_compilation): Do not reset
1093         DECL_DEFER_OUTPUT.
1094         * objc/objc-act.c (build_module_descriptor, finish_method_def):
1095         Do not set current_function_cannot_inline.
1096
1097 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1098
1099         * cfglayout.c (fixup_reorder_chain): Handle case where the
1100         destination of E_TAKEN is EXIT_BLOCK_PTR.
1101
1102 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
1103
1104         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1105
1106 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1107
1108         * fold-const.c (operand_equal_p): Update comment.
1109
1110 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1111
1112         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1113         (INCOMING_RETURN_ADDR_RTX): Define.
1114         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1115         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1116         __builtin_return_address(0).
1117         (m32r_return_addr): Added for __builtin_return_address(0).
1118         (m32r_reload_lr): Ditto.
1119
1120         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1121
1122 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1123
1124         * doc/install.texi (Prerequisites): Update libbanshee,
1125         fastjar, libcpp, libjava/libltdl entries to
1126         automake 1.8.5.
1127
1128 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1129             Olivier Hainque  <hainque@act-europe.fr>
1130
1131         * function.c (fixup_var_refs): Also adjust the start of sequence
1132         after fixing up the insns.
1133
1134 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1135
1136         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1137
1138 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1139
1140         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1141         automake 1.8.5.
1142
1143 2004-06-14  Eric Christopher  <echristo@redhat.com>
1144
1145         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1146         to -mtpf-trace (-mno-tpf-trace).
1147         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1148         documentation.
1149
1150 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1151
1152         * real.c: Fix bit count in head comment.
1153
1154 2004-06-14  Jeff Law  <law@redhat.com>
1155
1156         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1157         PHIs where the destination or an argument is marked with
1158         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1159
1160 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1161
1162         PR middle-end/15945
1163         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1164         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1165
1166 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1167
1168         * opts.sh (var_args): Fix regexp.
1169
1170 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1171
1172         PR target/15178
1173         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1174
1175 2004-06-14  Paul Brook  <paul@codesourcery.com>
1176
1177         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1178
1179 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1180
1181         * Makefile.in (FLAGS_H): New.
1182         (flags.h): Replace by FLAGS_H.
1183         * c.opt: Document Var, VarExists, Init and Report attributes.
1184         * common.opt: Fill the values of the attributes.
1185         * diagnostic.c (flag_fatal_errors): Do not define.
1186         * except.c (flag_non_call_exceptions): Do not define.
1187         * flags.h: Include options.h.  Remove declarations conflicting with
1188         the automatically defined ones.
1189         * opts.c: Remove automatically defined variables.
1190         (handle_option): Perform default initialization.
1191         (common_handle_option): Do not handle options covered by the
1192         default initialization.
1193         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1194         fields.
1195         (CL_REPORT): New.
1196         * opts.sh: Generate variable declarations, handle CL_REPORT.
1197         * toplev.c: Remove automatically defined variables.
1198         (f_options): Removed.
1199         (print_switch_values): Use cl_options instead of f_options.
1200         * toplev.h (version_flag): Declaration removed.
1201
1202 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1203
1204         * config/sparc/sparc.h: Correct comment about availability of
1205         little endian option.
1206
1207         * config.gcc: Remove sparc64-*-aout*.
1208         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1209         * config/sparc/sp64-aout.h: Remove.
1210         * config/sparc/aout.h: Remove.
1211
1212 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1213
1214         * config/s390/s390.c: Include "tree-gimple.h".
1215         (s390_gimplify_va_arg): New function.
1216         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1217         (s390_va_arg): Remove.
1218         * config/s390/s390-protos.h (s390_va_arg): Remove.
1219         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1220
1221 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1222
1223         * basic-block.h (could_fall_through): Declare.
1224         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1225         Fail if the source already has a fallthrough edge to the exit
1226         block pointer.
1227         (could_fall_through): New function.
1228         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1229         edge to the exit block pointer.
1230         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1231         not called before reload has completed.
1232         Handle special case of first block having a fall-through exit edge.
1233         (cfg_layout_finalize): Don't call it before reload or if we have
1234         rtl epilogues.
1235         (fixup_reorder_chain): A fall through to the exit block does not
1236         require the block to come last.  Add sanity checks.
1237         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1238         edges to the exit block.
1239         * function.c (cfglayout.h): #include.
1240         (thread_prologue_and_epilogue_insns): If we have neither return nor
1241         epilogue, but a fall through to the exit block from mid-function,
1242         force a non-fall-through exit.
1243         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1244
1245 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1246
1247         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1248         for power5 and rs64a.  Correct condition for default.  Correct power3,
1249         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1250
1251 2004-06-13  Steven Bosscher <stevenb@suse.de>
1252
1253         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1254         Revert previous change, don't use CALL_P.
1255
1256 2004-06-13  Jason Merrill  <jason@redhat.com>
1257
1258         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1259         * tree-gimple.h: From here.
1260
1261 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1262
1263         Fix PR tree-optimization/15979
1264         Fix PR tree-optimization/15981
1265         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1266         try to insert values undefined along some path.
1267
1268 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1269
1270         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1271         are available everywhere too.
1272
1273 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1274
1275         * fold-const.c (fold_checksum_tree <case 't'>): Only
1276         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1277         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1278         EXPR is an INTEGERAL_TYPE or a scalar float type.
1279
1280 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1281
1282         * tree-sra.c (tree_sra): Update documentation.
1283
1284 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1285
1286         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1287         function_types_compatible_p, type_lists_compatible_p): Remove
1288         flags parameter.
1289         * c-tree.h (comptypes): Likewise.
1290         (COMPARE_STRICT): Remove.
1291         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1292         callers changed.
1293
1294 2004-06-13  Eric Christopher  <echristo@redhat.com>
1295
1296         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1297         Remove unused code.
1298         * c-typeck.c (comptypes): Add location in standard we're checking.
1299
1300 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1301
1302         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1303         version 3.3.4.
1304
1305 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1306
1307         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1308         index by machine mode.
1309         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1310         tables inside the loop over machine modes.
1311         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1312         expand_divmod): Index shift*_cost by the appropriate machine mode.
1313
1314 2004-06-12  Eric Christopher  <echristo@redhat.com>
1315
1316         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1317         * config/s390/s390.md: Ditto.
1318         * config/s390/s390.c: Ditto.
1319         (s390_frame_info): Conditionalize frame and setup info on
1320         TARGET_TPF_PROFILING.
1321         (s390_arg_frame_offset): Ditto.
1322
1323 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1324
1325         * fold-const.c (omit_two_operands): New function.
1326         * tree.h (omit_two_operands): Prototype here.
1327         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1328         C99 unordered comparison builtins to the appropriate tree nodes.
1329         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1330         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1331         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1332         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1333         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1334         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1335         omit_two_operands function to build the required COMPOUND_EXPRs.
1336
1337 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1338             Andreas Jaeger  <aj@suse.de>
1339
1340         * gcse.c (record_set_info): Use predicates like REG_P.
1341         (mems_conflict_for_gcse_p): Likewise.
1342         (load_killed_in_block_p): Likewise.
1343         (hash_expr_1): Likewise.
1344         (insert_set_in_table): Likewise.
1345         (gcse_constant_p): Likewise.
1346         (hash_scan_set): Likewise.
1347         (hash_scan_insn): Likewise.
1348         (canon_list_insert): Likewise.
1349         (record_last_mem_set_info): Likewise.
1350         (record_last_set_info): Likewise.
1351         (compute_hash_table_work): Likewise.
1352         (mark_set): Likewise.
1353         (mark_clobber): Likewise.
1354         (mark_oprs_set): Likewise.
1355         (compute_transp): Likewise.
1356         (find_avail_set): Likewise.
1357         (cprop_insn): Likewise.
1358         (do_local_cprop): Likewise.
1359         (cprop): Likewise.
1360         (find_implicit_sets): Likewise.
1361         (find_bypass_set): Likewise.
1362         (bypass_conditional_jumps): Likewise.
1363         (insert_insn_end_bb): Likewise.
1364         (pre_insert_copy_insn): Likewise.
1365         (compute_transpout): Likewise.
1366         (next_ls_expr): Likewise.
1367         (invalidate_any_buried_refs): Likewise.
1368         (compute_ld_motion_mems): Likewise.
1369         (reg_set_info): Likewise.
1370         (reg_clear_last_set): Likewise.
1371         (find_moveable_store): Likewise.
1372         (compute_store_table): Likewise.
1373         (find_loads): Likewise.
1374         (store_killed_in_insn): Likewise.
1375         (insert_insn_start_bb): Likewise.
1376         (reg_set_between_after_reload_p): Likewise.
1377         (reg_used_between_after_reload_p): Likewise.
1378         (is_jump_table_basic_block): Likewise.
1379         (gcse_after_reload): Likewise.
1380         (hash_scan_set_after_reload): Likewise.
1381         (compute_hash_table_after_reload): Likewise.
1382
1383 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1384
1385         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1386         (INSN_P): Don't look at the rtx code class, just explicitly
1387         check for one of the tree RTX_INSN codes.
1388
1389 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1390
1391         * c-typeck.c (default_function_array_conversion): Use
1392         build_pointer_type not TYPE_POINTER_TO.
1393
1394 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1395
1396         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1397         * configure, config.in: Regenerate.
1398         * system.h: Unconditionally define bool as unsigned char,
1399         BOOL_BITFIELD as unsigned int.
1400         * domwalk.h: Use BOOL_BITFIELD.
1401
1402 2004-06-12  Andreas Jaeger  <aj@suse.de>
1403
1404         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1405         * libgcc-darwin.ver: Likewise.
1406
1407 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1408
1409         * reload.c (find_reloads): Force reload for pseudo registers on big
1410         endian machines.
1411
1412 2004-06-11  Steven Bosscher <stevenb@suse.de>
1413
1414         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1415         Don't try to mark anything control dependent on the entry or
1416         exit blocks.
1417
1418 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1419
1420         Fix Bug 15899
1421         Fix Bug 15460
1422         * tree.h (SSA_NAME_VALUE): New macro.
1423         (struct tree_ssa_name): Add value_handle member.
1424         * tree-ssa-pre.c: Replaced.
1425         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1426         (struct cst_ann_d): New.
1427         (struct expr_ann_d): New.
1428         (union tree_ann_d): Add cst_ann, expr_ann.
1429         * tree-dfa.c (create_cst_ann): New function.
1430         (create_expr_ann): Ditto.
1431         * tree-flow-inline.h (cst_ann): New function.
1432         (expr_ann): Ditto.
1433         (get_cst_ann): Ditto.
1434         (get_expr_ann): Ditto..
1435
1436 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1437
1438         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1439         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1440         _U_Qfcmp library function.
1441         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1442         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1443
1444         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1445         unspec used for loading address from DLT.
1446         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1447         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1448         Don't use short code sequence when loading the address of a nonlocal
1449         label.
1450         (nonlocal_goto): New expander.
1451         (indirect_goto): New jump pattern for nonlocal gotos.
1452         (short_jump): Remove extra whitespace.
1453         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1454         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1455         pattern.
1456
1457 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1458
1459         * expmed.c (synth_mult): Add an additional MODE argument for the
1460         machine mode of the multiplication.  Update recursive calls.  Use
1461         mode instead of word_mode for determining operation costs.
1462         (choose_mult_variant): Update calls to synth_mult with "mode".
1463
1464 2004-06-11  Richard Henderson  <rth@redhat.com>
1465
1466         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1467         and makes_aliased_stores.
1468
1469 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1470
1471         * doc/install.text (--enable-shared): Fix typo.
1472
1473 2004-06-11  Richard Henderson  <rth@redhat.com>
1474
1475         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1476         argument.  Use internal post for call to gimplify_expr.  Tidy
1477         rounded type size computation.
1478         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1479         get_initialized_tmp_var.
1480
1481 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1482
1483         * doc/install.texi (--enable-shared): Update libobjc's shared library
1484         status.  Remove reference to libf2c.
1485
1486 2004-06-11  Jason Merrill  <jason@redhat.com>
1487
1488         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1489         * config/i386/i386.c (ix86_va_arg): Remove.
1490         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1491         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1492         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1493         * config/alpha/alpha.c (alpha_va_arg): Remove.
1494         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1495         * config/sparc/sparc.c (sparc_va_arg): Remove.
1496
1497         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1498         assignment might throw.
1499         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1500         expressions.
1501
1502 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1503
1504         PR 15886:
1505         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1506
1507 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1508
1509         * doc/install.texi (Prerequisites): Update documentation of
1510         required versions of autoconf and automake.  Remove mention of
1511         libf2c.
1512
1513 2004-06-11  Jason Merrill  <jason@redhat.com>
1514
1515         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1516         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1517
1518 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1519
1520         * typeclass.h: Add GPL plus exception license.  Add include
1521         guard.
1522
1523 2004-06-10  Jason Merrill  <jason@redhat.com>
1524
1525         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1526         of an aggregate_value_p type.
1527
1528 2004-06-10  Jeff Law  <law@redhat.com>
1529
1530         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1531         code when we are in gimple form.
1532
1533 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1534
1535         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1536         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1537         (highest_ssa_version): Remove.
1538         * tree-outof-ssa.c (new_temp_expr_table): Replace
1539         highest_ssa_version with num_ssa_names.
1540         (dump_replaceable_exprs): Likewise.
1541         (rewrite_vars_out_of_ssa): Likewise.
1542         * tree-ssa-ccp.c (initialize): Likewise
1543         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1544         * tree-ssa-dce.c (tree_dce_init): Likewise.
1545         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1546         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1547         (dump_var_map): Likewise.
1548         * tree-ssa.c (verify_ssa): Likewise.
1549         (kill_redundant_phi_nodes): Likewise.
1550         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1551         * tree-ssanames.c: Include tree-flow.h
1552         (ssa_names): New varray.
1553         (init_ssa_names): Initialize ssa_names.
1554         Reserve the first slot of the ssa_names table.
1555         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1556         Assign version numbers using num_ssa_names.
1557
1558 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1559
1560         * doc/sourcebuild.texi (Front End): Add details of more
1561         installation documentation required.
1562
1563 2004-06-10  Brian Booth  <bbooth@redhat.com>
1564
1565         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1566         of V_MAY_DEF and V_MUST_DEF.
1567         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1568         num_vdefs to num_v_may_defs.
1569         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1570         to v_may_def.
1571         (redirect_immediate_uses): Ditto.
1572         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1573         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1574         Also add code to sum up the number of v_must_defs.
1575         (vdefs_disappeared_p): Replace with...
1576         (v_may_defs_disappeared_p): This.
1577         (v_must_defs_disappeared_p): New function.
1578         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1579         Also add code to mark new variables found in V_MUST_DEFs for
1580         renameing.
1581         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1582         vdef_ops to v_may_def_ops.
1583         (get_vdef_ops): Replace with...
1584         (get_v_may_def_ops): This.
1585         * tree-flow-inline.h (get_vdef_ops): Replace with...
1586         (get_v_may_def_ops): This.
1587         (get_v_must_def_ops): New function.
1588         (get_vdef_result_ptr): Replace with...
1589         (get_v_may_def_result_ptr): This.
1590         (get_vdef_op_ptr): Ditto with...
1591         (get_v_may_def_op_ptr); This.
1592         (get_v_must_def_op_ptr): New function.
1593         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1594         to v_may_def. Also add code to mark statements with
1595         V_MUST_DEFs as definition sites.
1596         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1597         add code to register new V_MUST_DEFs made by the statement.
1598         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1599         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1600         add check for V_MUST_DEFs.
1601         (find_replaceable_in_bb): Ditto.
1602         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1603         to v_may_def. Also add code to dump V_MUST_DEFs.
1604         * tree-sra.c (mark_all_vdefs): Replace with...
1605         (mark_all_v_may_defs): This.
1606         (mark_all_v_must_defs): New function.
1607         (create_scalar_copies): Replace call to mark_all_vdefs with
1608         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1609         (scalarize_structures): Rename occurences of vdef to v_may_def.
1610         Also add a check for V_MUST_DEFs.
1611         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1612         * tree-ssa-alias.c (global_var): Update comment.
1613         (compute_may_aliases): Ditto.
1614         (compute_points_to_and_addr_escape): Rename occurences of vdef
1615         to v_may_def. Also add code to mark variables in V_MUST_DEF
1616         operands as being written to.
1617         (group_aliases): Update comment.
1618         (maybe_create_global_var): Ditto.
1619         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1620         Also add a check for V_MUST_DEFs on GIMPLE registers.
1621         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1622         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1623         to v_may_def. Also add code to mark all V_MUST_DEF operands
1624         VARYING.
1625         (initialize): Ditto.
1626         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1627         code to update SSA_NAMEs in V_MUST_DEFs.
1628         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1629         to v_may_def.
1630         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1631         occurences of vdef to v_may_def. Also add code to mark statements
1632         with V_MUST_DEFs as necessary.
1633         (propagate_necessity): Rename occurences of vdef to v_may_def.
1634         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1635         occurences of vdef to v_may_def. Also add code to mark operands
1636         in V_MUST_DEFs for renaming.
1637         (eliminate_redundant_computations): Rename occurences of vdef
1638         to v_may_def.
1639         (record_equivalences_from_stmt): Rename occurences of vdef
1640         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1641         (optimize_stmt): Remove unnesessary variable vdefs. Update
1642         comment.
1643         (register_definitions_for_stmt): Rename occurences of vdef
1644         to v_may_def. Also add code to register definitions made with
1645         V_MUST_DEFs.
1646         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1647         (fix_stmt_v_may_defs): This.
1648         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1649         (dse_optimize_stmt): Ditto.
1650         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1651         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1652         used in virtual operators.
1653         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1654         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1655         renaming.
1656         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1657         definitions.
1658         (build_vdefs): Renamed to...
1659         (build_v_may_defs): This.
1660         (build_v_must_defs): New variable.
1661         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1662         v_may_def_ops.
1663         (append_vdef): Replace with...
1664         (append_v_may_def): This.
1665         (append_v_must_def): New function.
1666         (NUM_FREE): Increment for V_MUST_DEF
1667         (optype_freelist): Increment its size for V_MUST_DEF
1668         (allocate_vdef_optype): Replace with...
1669         (allocate_v_may_def_optype): This.
1670         (allocate_v_must_def_optype): New function.
1671         (free_vdefs): Replace with...
1672         (free_v_may_defs): This.
1673         (free_v_must_defs): New function.
1674         (remove_vdefs): Replace with...
1675         (remove_v_may_defs): This.
1676         (remove_v_must_defs): New function.
1677         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1678         add code to initialize build_v_must_defs.
1679         (finalize_ssa_vdefs): Replace with...
1680         (finalize_ssa_v_may_defs): This.
1681         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1682         (finalize_ssa_v_must_defs): New function.
1683         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1684         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1685         (verify_start_operands): Rename occurences of vdef to v_may_def.
1686         Also add check for build_v_must_defs.
1687         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1688         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1689         killing definitions.
1690         (get_expr_operands): Update comment and use opf_kill_def for
1691         killing definitions.
1692         (add_stmt_operand): Replace code that appends VDEFs with code
1693         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1694         otherwise.
1695         (add_call_clobber_ops): Update comments.
1696         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1697         (v_may_def_optype_d): This.
1698         (v_must_def_optype_d): New structure.
1699         (VDEF_OPS): Replace with...
1700         (V_MAY_DEF_OPS): This.
1701         (STMT_VDEF_OPS): Same with...
1702         (STMT_V_MAY_DEF_OPS): This.
1703         (NUM_VDEFS): And...
1704         (NUM_V_MAY_DEFS): This.
1705         (VDEF_RESULT_PTR): As well as...
1706         (V_MAY_DEF_RESULT_PTR): This.
1707         (VDEF_RESULT): Same goes for...
1708         (V_MAY_DEF_RESULT): This.
1709         (VDEF_OP_PTR): And...
1710         (V_MAY_DEF_OP_PTR): This.
1711         (VDEF_OP): And...
1712         (V_MAY_DEF_OP): This.
1713         (V_MUST_DEF_OPS): New macro.
1714         (STMT_V_MUST_DEF_OPS): Ditto.
1715         (NUM_V_MUST_DEFS): Ditto.
1716         (V_MUST_DEF_OP_PTR): Ditto.
1717         (V_MUST_DEF_OP): Ditto.
1718         (remove_vdefs): Replace signature with...
1719         (remove_v_may_defs): This.
1720         (remove_v_must_defs): New function signature.
1721         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1722         with calls to remove_v_may_defs and remove_v_must_defs.
1723         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1724         Also add code that marks left occurences of operands in V_MUST_DEFs.
1725         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1726         to v_may_def. Also add check for V_MUST_DEFs.
1727         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1728
1729 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1730
1731         PR target/15653
1732         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1733         insn.
1734
1735 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1736
1737         PR web/15263
1738         * doc/install.texi: Remove superfluous linebreak.
1739
1740 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1741
1742         * builtins.c (expand_builtin): Fall back to library function call for
1743         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1744         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1745         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1746         IMAGPART_EXPR respectively.
1747
1748 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1749
1750         * sh.c (dump_table): New argument start.  Changed caller.
1751         (fixup_mova): New function.
1752         (find_barrier): Use it.
1753         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1754         If the label a mova refers to is above the mova itself, change
1755         the mova into a load.
1756         * sh.md (*casesi_worker): Rename to:
1757         (casesi_worker_1).
1758         (casesi_worker_2): New insn.
1759
1760 2004-06-10  Jason Merrill  <jason@redhat.com>
1761
1762         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1763         hook signature.
1764         * tree-gimple.h: Adjust.
1765         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1766         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1767         Use fold_convert.
1768         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1769         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1770         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1771         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1772         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1773         Gimplify valist rather than calling stabilize_va_list.
1774
1775 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1776
1777         * Makefile.in (df.o): Remove fibheap dependency.
1778         * df.h: Do not include sbitmap.h.
1779         (struct ref): New field "data".
1780         (DF_REF_DATA): New accessor macro.
1781         (struct df): Field "dom" removed.
1782         (df_analyze_subcfg): New function.
1783         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1784         (transfer_function): ... new type.
1785         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1786         (iterative_dataflow): ... new function.
1787         (enum set_representation, struct dataflow): New.
1788         * df.c: Do not include fibheap.h.
1789
1790         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1791         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1792         prune_to_subcfg, df_bb_modify): New functions.
1793         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1794         df_refs_update, df_reg_table_realloc, df_ref_create,
1795         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1796         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1797         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1798
1799         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1800         (df_rd_transfer_function, df_ru_transfer_function,
1801         df_lr_transfer_function): Type of bitmaps changed to void *.
1802         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1803         (hybrid_search): ... new function.
1804         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1805         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1806         a worklist.  Do not process basic blocks unnecessarily.
1807
1808 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1809
1810         * fold-const.c (fold_abs_const): Make extern.
1811         * tree.h (fold_abs_const): Prototype here.
1812         * builtins.c (fold_builtin_fabs): New function to transform
1813         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1814         (fold_builtin_abs): New function to transform abs, labs, llabs
1815         and imaxabs builtins into ABS_EXPR tree nodes.
1816         (expand_builtin): Fall back to a function call for abs, labs,
1817         llabs and imaxabs builtins that survive constant folding.
1818         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1819         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1820
1821 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1822
1823         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1824         leaf function without unwind info at RP 0.
1825
1826 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1827
1828         PR c++/14791
1829         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1830         (fileptr_type_node): Define.
1831         * tree.c (build_common_tree_nodes_2): Initialize
1832         fileptr_type_node to ptr_type_node.
1833         * c-common.c (c_common_nodes_and_builtins): For C++, make
1834         fileptr_type_node a distinct type copy.
1835         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1836         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1837         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1838         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1839         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1840         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1841         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1842         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1843         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1844         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1845         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1846         the above *FILEPTR* types instead of *PTR*.
1847
1848 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1849
1850         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1851         match.
1852
1853 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1854
1855         * fold-const.c (fold_not_const): New function.
1856         (fold) <ABS_EXPR>: Don't bother testing wins.
1857         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1858         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1859
1860 2004-06-09  Richard Henderson  <rth@redhat.com>
1861
1862         PR middle-end/15228
1863         * function.c (assign_parms): Always set_mem_align with the computed
1864         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1865
1866 2004-06-09  Richard Henderson  <rth@redhat.com>
1867
1868         PR opt/15108
1869         * tree-tailcall.c (find_tail_calls): Don't check early for
1870         tail_recursion failure.
1871
1872 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1873
1874         Move SSA_NAME annotations into tree_ssa_name.
1875
1876         * tree-dfa.c (create_ssa_name_ann): Remove.
1877         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1878         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1879         (struct ssa_name_ann_d): Remove.
1880         (union tree_ann_d): Update.
1881         (ssa_name_ann_t): Remove.
1882         * tree-ssa-alias.c: (get_ptr_info): New local function.
1883         Replace references to ssa_name_ann_t with struct ptr_info_def.
1884         * tree-ssa-operands.c (get_expr_operands): Likewise.
1885         * tree.h (SSA_NAME_PTR_INFO): Define.
1886         (struct ptr_info_def): Declare.
1887         (struct tree_ssa_name): Add field 'ptr_info'.
1888
1889 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1890
1891         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1892         misplaced ')'.
1893
1894 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1895
1896         * config/i386/k6.md: Rewrite using the DFA model.
1897         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1898         cost of load-operation insns for the K6.
1899         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1900         (ia32_multipass_dfa_lookahead): Likewise.
1901
1902 2004-06-09  Richard Henderson  <rth@redhat.com>
1903
1904         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1905         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1906
1907 2004-06-09  Richard Henderson  <rth@redhat.com>
1908
1909         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1910
1911 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1912
1913         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1914         (CPP_ID_DATA_H): New.
1915         (gtype-desc.o): Update dependencies.
1916         (GTFILES): Use CPP_ID_DATA_H.
1917
1918 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1919
1920         Revert:
1921         PR c++/15815
1922         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1923         * doc/extend.texi: Deprecate #pragma interface and #pragma
1924         implementation.
1925
1926 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1927
1928         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1929
1930 2004-06-09  Richard Henderson  <rth@redhat.com>
1931
1932         * basic-block.h (struct edge_def): Add goto_locus.
1933         * tree-cfg.c (make_goto_expr_edges): Set it.
1934         (disband_implicit_edges): Use it.
1935         * tree-pretty-print.c (dump_implicit_edges): Print it.
1936
1937 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1938
1939         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1940
1941 2004-06-08  Jason Merrill  <jason@redhat.com>
1942
1943         Gimplify VA_ARG_EXPR into simpler forms.
1944         * target.h: Add gimplify_va_arg_expr hook.
1945         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1946         * fold-const.c (build_fold_addr_expr)
1947         (build_fold_addr_expr_with_type): Move from gimplify.c.
1948         * tree.h: Declare them.
1949         * gimplify.c (gimplify_and_add): New fn.
1950         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1951         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1952         (gimplify_expr): Use build_fold_*.
1953         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1954         don't know how to gimplify it.
1955         * builtins.c (std_gimplify_va_arg_expr): New fn.
1956         (dummy_object): New static fn.
1957         (gimplify_va_arg_expr): New fn.
1958         (stabilize_va_list): Use build_fold_*.
1959         * tree-gimple.h: Declare new fns.
1960         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1961         (ix86_gimplify_va_arg): New fn.
1962         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1963         (ia64_gimplify_va_arg): New fn.
1964         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1965         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1966         * alias.c (get_varargs_alias_set): Just return 0 for now.
1967
1968         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1969
1970 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1971
1972         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1973         of convert.
1974         * tree-inline.c (setup_one_parameter): Likewise.
1975         * tree-sra.c (csc_build_component_ref): Likewise.
1976         * tree-ssa-ccp.c (ccp_fold): Likewise.
1977         * tree-ssa-copy.c (cprop_operand): Likewise.
1978         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1979         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1980
1981 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1982
1983         PR rtl-optimization/15521:
1984         * sched-int.h (in_post_call_group_p): Change type to enum.
1985         * sched-deps.c (sched_analyze_insn):
1986         (sched_analyze): When in_post_call_group_p is post_call_initial,
1987         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1988         and also reset in_post_call_group_p to post_call.
1989         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1990         initialize in_post_call_group_p as post_call_initial.
1991         (init_deps): initialize in_post_call_group_p to not_post_call.
1992
1993 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1994
1995         PR ada/6637
1996         * doc/install.texi: List ada, libada as options to --enable-shared
1997
1998 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1999
2000         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2001         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2002         config.in entries.
2003         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2004         if hard links are not available.
2005         * configure: Regenerate.
2006         * config.in: Regenerate.
2007
2008 2004-06-08  Per Bothner  <per@bothner.com>
2009
2010         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
2011
2012 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2013
2014         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2015         Correct formatting.
2016
2017 2004-06-08  James E Wilson  <wilson@specifixinc.com>
2018
2019         PR target/15790
2020         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2021
2022 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2023
2024         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2025         POINTER_TYPE and INTEGER_TYPE.
2026
2027 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
2028
2029         * modulo-sched.c: Compile only when INSN_SCHEDULING is
2030         defined.
2031
2032 2004-06-08  Jeff Law  <law@redhat.com>
2033
2034         * doc/contrib.texi: Add entries for Stefan Olsson and
2035         Ola Ronnerup.
2036
2037 2004-06-08  DJ Delorie  <dj@redhat.com>
2038
2039         * toplev.c (floor_log2_wide): Replace loop with faster bit
2040         operations.
2041         (exact_log2_wide): Define in terms of the above.
2042         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2043         available.
2044
2045 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2046
2047         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2048         Make sure that we are in INDIRECT mode when getting the
2049         stub name.
2050
2051 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2052
2053         * h8300.md (extendqisi2_h8300): Add constraints.
2054         (ldm_h8300s_4_normal): Fix typo.
2055
2056 2004-06-08  Richard Henderson  <rth@redhat.com>
2057
2058         * gimple-low.c (struct lower_data): Replace the_return_label and
2059         one_return_stmt with return_statements.
2060         (lower_function_body): Process the entire list of return_statements.
2061         (lower_return_expr): Check source value before unifying return_exprs.
2062         * gimplify.c (gimplify_return_expr): Force the use of a temporary
2063         for !aggregate_value_p.
2064         * tree-gimple.c: Update RETURN_EXPR grammer.
2065
2066 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
2067
2068         PR target/15598
2069         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2070
2071 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2072
2073         PR rtl-optimization/15717
2074         * config/i386/i386.c (legitimate_constant_p): Do not allow
2075         x - symbol_ref.
2076
2077 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
2078
2079         * gimplify.c (copy_if_shared_r): Revert:
2080         2004-05-21  Richard Henderson  <rth@redhat.com>
2081         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2082
2083 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2084
2085         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2086         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
2087         (init_expmed): Initialize these cost arrays as appropriate.
2088         (store_bit_field, extract_bit_field): Correct whitespace.
2089         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2090         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2091         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2092         word_mode or compute_mode as appropriate.
2093
2094 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2095
2096         PR target/15783
2097         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2098         parameter.  Enumerate the registers inside the PARALLEL.
2099         (function_arg): Adjust call to function_arg_union_value.
2100         (function_value): Likewise.
2101
2102         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2103
2104 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2105
2106         * real.c (real_copysign): New function to implement libm's copysign.
2107         * real.h (real_copysign): Prototype here.
2108         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2109         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
2110         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2111         fold_builtin_isdigit): Add function prototypes.
2112         (fold_builtin_copysign): New function to fold copysign, copysignf
2113         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
2114         constant arguments at compile-time using real_copysign.  Fold
2115         copysign(X,Y) as fabs(X) if Y is always non-negative.
2116         (fold_builtin_1): Correct minor whitespace/style issues.  Call
2117         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2118
2119 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2120
2121         * tree.c (iterative_hash_expr): Use real_hash.
2122
2123 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2124
2125         PR c/14765
2126         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2127         NULL_TREE.
2128
2129 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2130
2131         PR c++/15815
2132         * doc/extend.texi: Deprecate #pragma interface and #pragma
2133         implementation.
2134
2135 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2136
2137         PR middle-end/15666
2138         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2139         builtin decl as well.
2140
2141 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2142
2143         PR c/14649
2144         * c-typeck.c (require_constant_value, require_constant_elements):
2145         Move declarations to the top of the file.
2146         (build_function_call): If we require a constant value, fold with
2147         fold_initializer.  If the result is a constant, and the function
2148         wasn't called using __builtin_foo, issue a pedantic warning.
2149         (build_unary_op): If we require a constant value, fold tree with
2150         fold_initializer.
2151         (build_binary_op): Use require_constant_value to determine whether
2152         to call fold or fold_initializer.
2153
2154 2004-06-07  Richard Henderson  <rth@redhat.com>
2155
2156         * gimple-low.c (struct lower_data): Add the_return_label and
2157         one_return_stmt.
2158         (lower_function_body): Initialize and use them.
2159         (lower_return_expr): New.
2160         (lower_stmt): Call it.
2161         * gimplify.c (gimplify_return_expr): Force the argument to be either
2162         null or a result_decl.
2163         * tree-gimple.c: Update gimple grammer to match.
2164         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2165         coalescing of result_decls.
2166
2167 2004-06-07  Richard Henderson  <rth@redhat.com>
2168
2169         PR rtl-opt/15193
2170         * expmed.c (extract_bit_field): Fix vector_extract return.
2171
2172         * config/i386/i386.md (negv4sf2): New pattern.
2173
2174 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2175
2176         PR c++/15337
2177         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2178         message.
2179
2180 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2181
2182         * config.in: Regenerate.
2183
2184 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2185
2186         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2187         SWITCH_LABELS are always sorted.
2188
2189 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2190
2191         * hooks.c (hook_int_void_1): New generic hook.
2192         * hooks.h (hook_int_void_1): Add prototype.
2193         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2194         Define to hook_int_void_1.
2195         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2196         with dummies for the new one.
2197
2198 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2199
2200         * tree.h (lvalue_or_else): Delete function prototype.
2201         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2202
2203 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2204
2205         PR target/14542
2206         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2207         a live change of a register after peephole replacement.
2208
2209 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2210
2211         PR c/13519
2212         * c-typeck.c (composite_type, common_pointer_type): New functions.
2213         (common_type): Split parts into composite_type and
2214         common_pointer_type.  Ensure that arithmetic operations return
2215         unqualified types without attributes.  Don't make composite type
2216         of signed enum and compatible integer be unsigned.
2217         (build_conditional_expr, build_binary_op): Use
2218         common_pointer_type.
2219         * c-decl.c (merge_decls): Use composite_type.
2220         * c-tree.h (composite_type): Declare.
2221
2222 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2223
2224         PR target/14457
2225         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2226         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2227         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2228         (inhibit_libc): Must define.
2229         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2230         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2231         ("xorhi3"): Likewise.
2232
2233 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2234
2235         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2236         always_inline pass.
2237
2238 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2239
2240         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2241         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2242
2243 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2244
2245         * regclass.c (init_reg_sets): Check for missing registers in target
2246         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2247
2248 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2249
2250         * Makefile.in (MKDEPS_H): New shorthand.
2251         (c-opts.o): Update dependencies.
2252         * c-opts.c: Include mkdeps.h.
2253         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2254         not cpp_add_dependency_target.
2255
2256 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2257
2258         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2259         * config/v850/v850.md: Convert to DFA scheduler description.
2260
2261 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2262
2263         PR fortran/15478
2264         * doc/install.texi: Document GMP as prerequisite. Document
2265         --with-gmp and --with-gmp-dir configure options.
2266         * fortran/gfortran.texi: Remove section "Compiling and testing",
2267         remove TOC reference to it.
2268
2269 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2270
2271         * combine.c(simplify_shift_const): Check shift amount is a
2272         CONST_INT.
2273
2274 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2275
2276         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2277         opening asm_out_file.
2278         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2279         reading asm_out_file. Replace fflush after reading asm_out_file
2280         with fseek.
2281         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2282         default and add to HOST_HOOKS_INITIALIZER.
2283         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2284         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2285         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2286         to set mmi.offset padding.
2287          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2288         $(srcdir)/config/i386/winnt.c.
2289         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2290         (i[34567]86-*-uwin*): Likewise.
2291         *i[34567]86-*-interix3*): Likewise.
2292         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2293         * config/i386/host-mingw32.c: New file.
2294         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2295         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2296         (extern_head): Likewise.
2297         (struct export_list) Likewise.
2298         (export_head): Likewise.
2299         (i386_pe_record_external_function): Use ggc_alloc.
2300         (i386_pe_record_exported_symbol): Likewise.
2301         Include "gt-winnt.h" at end.
2302         * doc/hostconfig.texi: Document
2303         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2304
2305 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2306
2307         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2308         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2309         trailing whitespace before EOLs and before TABs.
2310         (MAX_CODE_ALIGN): Remove unused macro.
2311         (CALL_USED_REGISTERS): Reformat and add comments.
2312
2313 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2314
2315         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2316         to enumerate -lmudflap* and dependencies when linking.
2317
2318 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2319
2320         PR target/15822
2321         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2322
2323 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2324
2325         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2326         * genconditions.c (write_header): Back out removal of reload.h.
2327
2328 2004-06-04  Jan Hubicka  <jh@suse.cz>
2329
2330         Re-apply hopefully fixed patch:
2331         * i386.md (UNSPECV_EH_RETURN): Kill.
2332         (eh_return): Use jump_insn.
2333         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2334
2335 2004-06-04  Jeff Law  <law@redhat.com>
2336
2337         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2338
2339 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2340
2341         * except.c (for_each_eh_region): New function.
2342         * except.h (for_each_eh_region): Add a prototype for it.
2343         * tree-cfg.c (update_eh_labels): New function, callback for
2344         for_each_eh_region.
2345         (label_for_bb): Make global static, unfortunately.
2346         (cleanup_dead_labels): Also update label references for
2347         exception regions.
2348
2349 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2350
2351         * config/mips/mips.c (struct irix_section_align_entry): Fix
2352         GTY marker.
2353
2354 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2355
2356         * toplev.c (check_global_declarations): Don't ask for
2357         DECL_ASSEMBLER_NAME unless the function really is declared
2358         static and not defined.
2359
2360 2004-06-03  Matt Austern  <austern@apple.com>
2361
2362         PR c++/15428
2363         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2364         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2365         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2366         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2367         documentation to reflect the new macro name and to clarify its
2368         meaning.
2369
2370 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2371
2372         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2373
2374 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2375
2376         * config/darwin.c (machopic_indirect_data_reference): Copy
2377         the SYMBOL_REF_DECL from the original RTX for the new
2378         non-lazy pointer RTX.
2379
2380 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2381
2382         * tree.h: Remove include of version.h
2383         * c-cppbuiltin.c: Include version.h
2384         * diagnostic.c: Include version.h
2385         * dwarf2out.c: Include version.h
2386         * toplev.c: Include version.h
2387         * vmsdbgout.c: Include version.h
2388         * Makefile.in: Remove dependency on version.h from TREE_H, and
2389         add dependencies to required .o targets
2390
2391 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2392
2393         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2394         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2395         (TARGET_H): Add insn-modes.h.
2396         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2397         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2398         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2399         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2400         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2401         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2402         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2403         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2404         CFGLAYOUT_H.
2405         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2406         Replace ra.h with RA_H.
2407         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2408         insn-recog.o): Replace resource.h with RESOURCE_H.
2409         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2410         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2411         with SCHED_INT_H.
2412         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2413         ra-rewrite.o): Replace df.h with DF_H.
2414         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2415         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2416         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2417         (insn-conditions.o): Remove unused reload.h.
2418         * cfglayout.h: Add include guard.  Include basic-block.h.
2419         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2420         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2421         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2422         basic-block.h.
2423         * genconditions.c:  Remove reload.h.
2424         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2425         hard-reg-set.h, insn-modes.h.
2426         * resource.h: Add include guard.  Include hard-reg-set.h.
2427         * sched-int.h:  Add include guard.  Include insn-attr.h,
2428         basic-block.h, rtl.h.
2429         * target.h: Add include guard.  Include insn-modes.h.
2430         * tree-ssa-live.h: Include partition.h.
2431
2432 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2433                 Kenneth Zadeck <zadeck@naturalbridge.com>
2434
2435         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2436         (add_var_to_ssa_edges_worklist): Add value argument.
2437         Update callers.
2438         Use new worklist.
2439         (process_ssa_edge_worklist): New function.
2440         (tree_ssa_ccp): Move worklist processing core to
2441         process_ssa_edge_worklist, and just call that for the two worklists.
2442
2443 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2444
2445         * basic-block.c (tail_recursion_label_list): Don't declare.
2446         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2447         accordingly.
2448         * cfgbuild.c (find_label_refs): Remove.
2449         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2450         * cfgcleanup.c (tail_recursion_label_p): Remove.
2451         (merge_blocks_move): Do not check for tail recursion.
2452         (try_optimize_cfg): Likewise.
2453         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2454         * cfgrtl.c (tail_recursion_label_list): Remove.
2455         * except.c (remove_unreachable_regions): Don't handle
2456         CALL_PLACEHOLDER insns.
2457         (convert_from_eh_region_ranges_1, can_throw_internal,
2458         can_throw_external): Likewise.
2459         * function.c (free_after_compilation): Don't clear
2460         x_tail_recursion_label.
2461         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2462         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2463         (reorder_blocks_1): Likewise.
2464         * function.h (struct function): Remove x_tail_recursion_label
2465         member.  Don't define tail_recursion_label.
2466         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2467         * print-rtl.c (print_rtx): Likewise.
2468         * rtl.def (CALL_PLACEHOLDER): Remove.
2469         * rtl.h (sibcall_use_t): Remove enum.
2470         (optimize_sibling_and_tail_recursive_calls,
2471         replace_call_placeholder): Remove function prototypes.
2472         * stmt.c (tail_recursion_args): Remove.
2473         (optimize_tail_recursion): Remove.
2474         (expand_return): Don't check for possible tail recursion.
2475         * tree.h (optimize_tail_recursion): Remove prototype.
2476
2477 2004-06-02  Jan Hubicka  <jh@suse.cz>
2478
2479         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2480         return_stmt.
2481
2482 2004-06-02  Jason Merrill  <jason@redhat.com>
2483
2484         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2485         Do include c-parse.in.
2486
2487 2004-06-02  Eric Christopher  <echristo@redhat.com>
2488
2489         * c-typeck.c (common_type): Don't lose type qualifiers
2490         when creating new variants.
2491
2492 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2493
2494         PR tree-optimization/14042
2495         PR tree-optimization/14729
2496         PR tree-optimization/14736
2497         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2498         Check the type which the pointer points to
2499         instead of the pointer types.
2500
2501 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2502
2503         PR tree-optimization/15738.
2504         * builtins.c (fold_builtin_strchr): Transform
2505         strrchr (s, '\0') to strchr (s, '\0').
2506
2507 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2508
2509         * i386.c (ix86_adjust_cost): Don't increase the cost for
2510         load+operation for PROCESSOR_PENTIUMPRO, it is already
2511         modelled in the DFA description
2512
2513 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2514
2515         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2516         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2517         (ALIAS_H, EMIT_RTL_H): New.
2518         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2519         (cfgcleanup.o): Add EMIT_RTL_H.
2520         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2521         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2522         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2523         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2524         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2525         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2526         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2527         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2528         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2529         set_mem_size): Move to emit-rtl.h.
2530         * emit-rtl.h: New.
2531         * alias.h: New.
2532
2533 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2534
2535         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2536         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2537         Adjust recursive calls to self.
2538         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2539
2540 2004-06-01  Richard Henderson  <rth@redhat.com>
2541             Andrew Pinski  <pinskia@physics.uc.edu>
2542
2543         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2544         (primary): Handle offsetof.  Add error productions for faux functions.
2545         Move component_ref objc checking to build_component_ref.
2546         (reswords): Add offsetof.
2547         (rid_to_yy): Add offsetof.
2548         * c-tree.h (build_offsetof): Declare.
2549         * c-common.h (objc_is_public): Declare.
2550         * c-typeck.c (build_component_ref): Check objc_is_public.
2551         (build_offsetof): New.
2552         * stub-objc.c (objc_is_public): New.
2553         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2554         from is_public.
2555         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2556         * doc/extend.texi (Offsetof): Move from C++ section to C section
2557         and rewrite for __builtin_offsetof.
2558
2559 2004-06-01  Peter Barada  <peter@the-baradas.com>
2560             Peter Jakubek  <peter@laseranimation.com>
2561
2562         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2563         a scratch to perform an add to memory.
2564
2565 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2566
2567         PR target/14018
2568         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2569         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2570         m68k_align_funcs): Remove.
2571         (override_options): Remove code to handle -malign-* options.
2572         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2573         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2574         (m68k_align_loops_string, m68k_align_jumps_string,
2575         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2576         m68k_align_funcs): Remove definitions.
2577
2578 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2579
2580         PR target/15626
2581         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2582         by the Sun linker in conjunction with the Sun assembler.
2583         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2584
2585 2004-06-01  Jeff Law  <law@redhat.com>
2586
2587         * stmt.c (expand_decl): Be more selective about calling
2588         mark_reg_pointer.
2589
2590 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2591
2592         PR objc/7993
2593         * objc-act.c (is_private): Do not emit the 'instance variable %s
2594         is declared private' error.
2595         (is_public): Emit the error after calling is_private.
2596         (lookup_objc_ivar): If the instance variable is private, return 0
2597         - the instance variable is invisible here.
2598
2599 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2600
2601         * doc/invoke.texi (-static-libgcc): Explicitly mention
2602         non-GNU linkers.
2603
2604 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2605
2606         PR target/12968
2607         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2608
2609 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2610
2611         PR c/15749
2612         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2613         misuses of structures with flexible array members if
2614         in_system_header.
2615
2616 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2617
2618         PR target/15693
2619         * config/sparc/sparc.c (compare_operand): New predicate.
2620         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2621         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2622         operand is a ZERO_EXTRACT and the second operand is not zero,
2623         force the former to a register.
2624         (cmpdi expander): Likewise.
2625
2626 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2627
2628         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2629         looks at.
2630         * alias.c (alias_invariant_size): Make alias_invariant_size
2631         static, fix GTY marker.
2632
2633 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2634
2635         PR tree-optimization/15743.
2636         * builtins.c (fold_builtin_1): Fold index() and rindex().
2637
2638 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2639
2640         PR middle-end/15069
2641         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2642         into "X < 0" (where C is the signbit) if X's type is a full mode.
2643
2644 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2645
2646         * pa.md: Disable the peephole2 patterns that generate indexed
2647         floating-point stores when indexing is disabled.
2648
2649 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2650
2651         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2652         (pp_c_right_bracket): Likewise.
2653         (pp_c_star): Likewise.
2654         (pp_c_ampersand): Define.
2655         * c-pretty-print.h (pp_c_left_bracket): Declare.
2656         (pp_c_right_bracket): Likewise.
2657         (pp_c_star): Likewise.
2658         (pp_c_ampersand): Likewise.
2659
2660 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2661
2662         * config/sol2.h (__enable_execute_stack): ANSIfy function
2663         definition.
2664
2665 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2666
2667         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2668         HAVE_DOS_BASED_FILESYSTEM.
2669
2670 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2671
2672         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2673         Only look at case labels if the immediate dominator is also
2674         the only predecessor.  Don't look for more case labels if the
2675         first seen is a case range.
2676
2677 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2678
2679         * builtins.c: Add a prototype for fold_builtin_strchr().
2680
2681 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2682
2683         Revert this patch:
2684         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2685
2686         * combine.c (gen_binary): Remove.
2687         (known_cond, simplify_shift_const
2688         find_split_point, combine_simplify_rtx,
2689         simplify_if_then_else, simplify_set,
2690         simplify_logical, expand_field_assignment,
2691         extract_left_shift, force_to_mode,
2692         if_then_else_cond, apply_distributive_law,
2693         simplify_and_const_int, simplify_shift_const,
2694         gen_lowpart_for_combine, simplify_comparison,
2695         reversed_comparison): Replace with
2696         simplify_gen_binary, simplify_gen_relational or
2697         distribute_and_simplify_rtx.
2698         (distribute_and_simplify_rtx): New function.
2699
2700 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2701
2702         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2703         when generating PIC code.
2704
2705 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2706
2707         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2708         (c_expand_body): here.
2709         (c_expand_decl): Move to ...
2710         * c-common.c (c_expand_decl): Here and remove check for nested
2711         functions.
2712         * c-common.h (c_expand_decl): Add prototype.
2713         * c-tree.h (c_expand_decl): Remove.
2714
2715 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2716
2717         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2718         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2719         fold_mathfn_compare, fold_inf_compare, fold,
2720         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2721         Use constant_boolean_node where appropriate.  Don't bother using
2722         fold_convert on the second argument to omit_one_operand.
2723
2724 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2725
2726         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2727         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2728         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2729         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2730         Add missing (but documented) tree nodes to the index.
2731
2732 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2733
2734         PR tree-optimization/14819
2735         * builtins.c (fold_builtin_strchr): New.
2736         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2737         with fold_builtin_strchr().
2738
2739 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2740
2741         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2742         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2743         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2744         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2745         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2746         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2747         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2748         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2749         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2750         formatting.
2751
2752 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2753
2754         * gimplify.c (sort_case_labels): New.  Split out from...
2755         (gimplify_switch_expr): ...here.  Use it.
2756         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2757         the SWITCH_EXPR created here before leaving the function.
2758         * tree.c (sort_case_labels): Add prototype.
2759
2760 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2761
2762         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2763         of BOOLEAN_TYPE.
2764
2765 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2766
2767         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2768         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2769         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2770         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2771         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2772         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2773         comment typos.  Follow spelling conventions.
2774
2775 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2776
2777         * gengtype-yacc.y: Add NESTED_PTR token.
2778         (option): Record `nested_ptr' option.
2779         * gengtype-lex.l: Handle `nested_ptr' keyword.
2780         * gengtype.c (walk_type): Process `nested_ptr' option.
2781         * gengtype.h (struct nested_ptr_data): New.
2782         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2783         * stringpool.c (struct string_pool_data): Make 'entries' point to
2784         ht_identifier instead of tree.
2785         (gt_pch_save_stringpool): Don't adjust pointers.
2786         (gt_pch_restore_stringpool): Call ht_load.
2787
2788 2004-05-29  Jason Merrill  <jason@redhat.com>
2789
2790         * gimplify.c (gimplify_expr): Don't build a statement list
2791         if no gimplification was necessary.
2792
2793 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2794
2795         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2796         and %> as well as %'.
2797         * c-format.c: Use %< and %>.
2798         (gcc_diag_char_table, gcc_cdiag_char_table,
2799         gcc_cxxdiag_char_table): Update.
2800
2801 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2802
2803         * c-typeck.c (common_type): Correct comment.
2804
2805 2004-05-29  Peter Barada  <peter@the-baradas.com>
2806
2807         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2808         * config/m68k/m68k.c (const_method): Likewise.
2809         * config/m68k/m68k.c (const_int_cost): Likewise.
2810         * config/m68k/m68k.c (const_int_cost): Likewise.
2811         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2812
2813 2004-05-29  Peter Barada  <peter@the-baradas.com>
2814
2815         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2816         addressing.
2817         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2818         movsi,movhi,movqi insn patterns.
2819
2820 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2821
2822         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2823
2824         PR target/15720
2825         * config/darwin.c (machopic_indirect_call_target): Copy
2826         the SYMBOL_REF_DECL from the original RTX for the new
2827         stub RTX.
2828
2829 2004-05-28  DJ Delorie  <dj@redhat.com>
2830
2831         * stor-layout.c (place_field): Revert erroneous commit.
2832
2833 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2834
2835         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2836         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2837         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2838         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2839         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2840         vec_ste): Remove type checks for integral parameters and literals
2841         from '..._args_eq' macros.
2842
2843 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2844
2845         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2846
2847 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2848
2849         * testsuite/g++.dg/charset/function.cc: New.
2850
2851         * testsuite/gcc.dg/charset/function.c: New.
2852
2853         * c-decl.c (c_make_fname_decl): Free return value from
2854         fname_as_string.
2855
2856         * cp/decl.c (cp_make_fname_decl): Free return value from
2857         fname_as_string.
2858
2859         * c-common.c (fname_as_string): Translate if necessary.
2860
2861 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2862
2863         * stringpool.c: Add comments to PCH saving/restoring routines.
2864
2865 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2866
2867         * c-common.c (c_estimate_num_insns_1): Kill.
2868         (c_estimate_num_insns): Kill.
2869         * c-common.h (c_estimate_num_insns): Kill.
2870
2871         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2872         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2873         Remove comment about not checking for
2874         _POSIX_PRIORITY_SCHEDULING.
2875         * gthr-posix.c: Likewise.
2876
2877 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2878             Roger Sayle  <roger@eyesopen.com>
2879
2880         PR rtl-optimization/15649
2881         Add LTGT_EXPR and improve pretty-printing of unordered
2882         comparisons.
2883         * c-common.c (c_common_truthvalue_conversion):
2884         Handle LTGT_EXPR.
2885         * c-typeck.c (build_binary_op): Likewise.
2886         * dojump.c (do_jump): Likewise.
2887         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2888         * predict.c (tree_predict_by_opcode): Likewise.
2889         * real.c (real_compare): Likewise.
2890         * tree-cfg.c (verify_expr): Likewise.
2891         * tree-inline.c (estimate_num_insns_1): Likewise.
2892         * tree-pretty-print.c (dump_generic_node): Likewise.
2893         Handle ORDERED_EXPR, UNORDERED_EXPR.
2894         (op_symbol): Print unordered comparisons differently
2895         than ordered ones.
2896         * tree.def (LTGT_EXPR): New '<' tree code.
2897         * doc/c-tree.texi (Expressions): Document floating-point
2898         comparison nodes.
2899
2900         Fold comparisons between floating point values.
2901         * fold-const.c (enum comparison_code): New, from
2902         #define'd constants.  Define compcodes for unordered
2903         comparisons and for invalid transformations.
2904         (invert_tree_comparison): Add "honor_nans" parameter.
2905         (fold_truthop): Revamp to work on floating-point types too.
2906         (comparison_to_compcode): Support unordered comparisons.
2907         Use new enum comparison_code.
2908         (compcode_to_comparison): Likewise.
2909         (combine_compcodes): New function.
2910         (invert_truthvalue): Let invert_tree_comparison decide
2911         whether it is valid to fold the comparison.  Fold ORDERED
2912         and UNORDERED even if flag_unsafe_math_optimizations is off,
2913         and the remaining even if flag_unsafe_math_optimizations
2914         is off but we are under -fno-trapping-math.
2915         (fold_relational_const): Integer modes do not honor NaNs.
2916
2917 2004-05-28  Paul Brook  <paul@codesourcery.com>
2918
2919         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2920
2921 2004-05-28  Paul Brook  <paul@codesourcery.com>
2922
2923         * config/arm/arm.c (thumb_force_lr_save): New function.
2924         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2925         thumb_output_function_prologue): Use it.
2926         (thumb_expand_prologue): Set lr_save_eliminated.
2927
2928 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2929
2930         * config/mips/mips.md (extendsidi2): Tie the source and destination
2931         of the register alternative.  Split it into nothing.
2932
2933 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2934
2935         * rtl.h (skip_consecutive_labels): Declare.
2936         * emit-rtl.c (skip_consecutive_labels): New function.
2937         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2938         * jump.c (follow_jumps): Say what null return values mean.
2939
2940 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2941
2942         PR target/13250
2943         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2944
2945 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2946
2947         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2948         libgcc-std.ver.
2949         * config/sh/libgcc-std.ver: New file.
2950
2951 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2952
2953         * except.c: Revert change of 2004-05-26.
2954         * config/i386/i386.md: Revert change of 2004-05-27.
2955
2956 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2957
2958         * configure.ac: Remove --enable-tree-browser option.
2959         Define TREEBROWSER when ac_tree_checking is defined.
2960         * configure: Rebuilt.
2961
2962 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2963
2964         * expr.c (store_constructor): Restore sanity check on
2965         the size of the type before clearing.
2966
2967 2004-05-27  Jan Hubicka  <jh@suse.cz>
2968
2969         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2970
2971 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2972
2973         * combine.c (gen_binary): Remove.
2974         (known_cond, simplify_shift_const
2975         find_split_point, combine_simplify_rtx,
2976         simplify_if_then_else, simplify_set,
2977         simplify_logical, expand_field_assignment,
2978         extract_left_shift, force_to_mode,
2979         if_then_else_cond, apply_distributive_law,
2980         simplify_and_const_int, simplify_shift_const,
2981         gen_lowpart_for_combine, simplify_comparison,
2982         reversed_comparison): Replace with
2983         simplify_gen_binary, simplify_gen_relational or
2984         distribute_and_simplify_rtx.
2985         (distribute_and_simplify_rtx): New function.
2986         * simplify-rtx.c (simplify_binary_operation):
2987         Use nonzero_bits to simplify ANDs where we are
2988         turning off bits already known to be off in OP0.
2989
2990 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2991
2992         PR target/14478
2993         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2994
2995 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2996
2997         PR middle-end/14084
2998         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2999         to size of decl.
3000
3001 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
3002
3003         PR/14924
3004         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3005
3006 2004-05-26  Roger Sayle  <roger@eyesopen.com>
3007
3008         * tree.h: Fix comment typo.
3009
3010 2004-05-27  Steven Bosscher  <stevenb@suse.de>
3011
3012         * gimplify.c (compare_case_labels): New function.
3013         (gimplify_switch_expr): Sort case labels, and make sure the
3014         last label in the label vector is the default case.
3015         * tree-cfg.c (group_case_labels): New function.
3016         (build_tree_cfg): Cleanup redundant labels and group case labels
3017         before creating edges.
3018         (cleanup_dead_labels): Handle GOTO_EXPRs.
3019         (find_case_label_for_value): Use a binary search to find the
3020         case label for the given value.
3021         * tree-gimple.c: Mention that labels are sorted, and that the
3022         last label must be the default.
3023
3024 2004-05-27  Jan Hubicka  <jh@suse.cz>
3025
3026         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3027
3028 2004-05-27  Jan Hubicka  <jh@suse.cz>
3029
3030         * i386.md (UNSPECV_EH_RETURN): Kill.
3031         (eh_return): Use jump_insn.
3032         (eh_return_si, eh_return_di): Change pattern to jump instruction.
3033
3034 2004-05-26  Jan Hubicka  <jh@suse.cz>
3035
3036         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
3037         not loop optimizing.
3038
3039 2004-05-26  Jan Hubicka  <jh@suse.cz>
3040
3041         * except.c (can_throw_internal):  Notice RESX instructions.
3042
3043 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
3044
3045         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3046         of the two sizes to assemble_integer.
3047
3048 2004-05-25  Paul Brook  <paul@codesourcery.com>
3049
3050         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3051         pointless #ifdef.
3052
3053 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3054
3055         * Makefile.in (top_builddir): Define to .
3056
3057 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
3058
3059         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3060         top-level detects, except when in-tree ld is being cross-built.
3061         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
3062         then AS only if target is host.
3063         * configure: Rebuilt.
3064
3065 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
3066
3067         * global.c (global_alloc): Call make_accurate_live_analysis.
3068         (record_one_conflict): Remove dead code.
3069         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3070         (bb_info): New structure.
3071         (BB_INFO, BB_INFO_BY_INDEX): New macros.
3072         (allocate_bb_info, free_bb_info, mark_reg_change,
3073         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3074         modify_bb_reg_pav, calculate_reg_pav,
3075         make_accurate_live_analysis): New functions.
3076
3077 2004-05-25  Devang Patel  <dpatel@apple.com>
3078
3079         * alias.c (init_alias_analysis): Use ggc_calloc instead of
3080         xrealloc.
3081         (end_alias_analysis): Use ggc_free instead fo free.
3082
3083 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
3084
3085         PR target/15546
3086         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3087         as needed to be outputted.
3088
3089 2004-05-25  Jan Hubicka  <jh@suse.cz>
3090
3091         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
3092
3093 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
3094         Mostafa Hagog  <mustafa@il.ibm.com>
3095
3096         * Makefile.in (modulo-sched.o, ddg.o): New.
3097         * ddg.h, ddg.c, modulo-sched.c: New files.
3098         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3099         internals to "dupicate_insn".
3100         (duplicate_insn): New function.
3101         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3102         declarations.
3103         * common.opt (fmodulo-sched): New flag.
3104         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3105         Remove static and forward declaration.
3106         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3107         functions.
3108         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3109         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3110         declarations.
3111         * flags.h (flag_modulo_sched): New flag.
3112         * opts.c (common_handle_option): Handle modulo-sched flag.
3113         * params.def (max-sms-loop-number, sms-max-ii-factor,
3114         sms-dfa-history, sms-loop-average-count-threshold): New
3115         parameters.
3116         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3117         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3118         parameters.
3119         * passes.c ("sms", "sms-vcg"): New dumps.
3120         (rest_of_handle_sched): Call sms_schedule.
3121         * rtl.h (sms_schedule): New declaration.
3122         * timevar.def (TV_SMS): New.
3123         * toplev.c (flag_modulo_sched): Initialize.
3124         (f_options): Handle -fmodulo-sched option.
3125         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3126         * docs/passes.texi: Document new SMS pass.
3127
3128 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3129
3130         * Makefile.in (OBJS): Add rtlhooks.o.
3131         (rtlanal.o): Depend on function.h.
3132         (cse.o): Depend on rtlhooks-def.h.
3133         (combine.o): Depend on rtlhooks-def.h.
3134         (rtlhooks.o): New rule.
3135         * combine.c: Include rtlhooks-def.h.
3136         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3137         num_sign_bit_copies, cached_num_sign_bit_copies,
3138         num_sign_bit_copies1): Move most of the code to rtlanal.c.
3139         (reg_nonzero_bits_for_combine,
3140         reg_num_sign_bit_copies_for_combine): New functions holding
3141         the remnants of the above.
3142         (combine_rtl_hooks): New.
3143         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3144         * cse.c: Include rtlhooks-def.h.
3145         (cse_rtl_hooks): New.
3146         (cse_main): Set rtl_hooks instead of gen_lowpart.
3147         * emit-rtl.c (gen_lowpart): Remove.
3148         (gen_lowpart_general): Move to rtlhooks.c.
3149         * rtl.h (nonzero_bits, num_sign_bit_copies,
3150         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3151         (gen_lowpart_general): Remove.
3152         (gen_lowpart): Temporarily redefine as a macro.
3153         * rtlanal.c: Include function.h.
3154         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3155         num_sign_bit_copies, cached_num_sign_bit_copies,
3156         num_sign_bit_copies1): New, from combine.c.
3157         * rtlhooks.c: New file.
3158         * rtlhooks-def.h: New file.
3159
3160 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
3161
3162         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3163         to support 32-bit -mint8 mode.
3164
3165         * doc/invoke.texi (-mint8): Added documentation for the -mint8
3166         option in the AVR architecture.
3167
3168 2004-05-24  Mike Stump  <mrs@apple.com>
3169
3170         * doc/install.texi: Document that dejagnu 1.4.4 is required.
3171
3172 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3173
3174         * intl.h (open_quote, close_quote): New.
3175         * intl.c (open_quote, close_quote): New.
3176         (gcc_init_libintl): Set them.
3177         * pretty-print.c: Include "intl.h".
3178         (pp_base_format_text): Support 'q' format flag and %` and %'
3179         formats.  Use ' instead of ` in comments.
3180         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3181         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3182         foramt_types_orig): Describe these new formats.
3183         (decode_format_attr, check_function_format,
3184         check_format_info_main): Use these new formats.
3185         (status_warning): Use ATTRIBUTE_GCC_DIAG.
3186         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3187         check these formats to 3.5.
3188
3189 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3190
3191         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3192         (BACKEND): Reflect this.
3193         (LIBDEPS): Move CPPLIB before LIBIBERTY.
3194         (LIBS): Likewise.
3195
3196 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
3197
3198         PR tree-optimization/14197
3199         * builtins.c: Include "tree-gimple.h"
3200         (readonly_data_expr): Use get_base_address.  Make sure to call
3201         decl_readonly_section only on trees it can handle.
3202         * tree-gimple.c (get_base_address): Accept STRING_CST and
3203         CONSTRUCTOR expressions.
3204         * Makefile.in: Update dependencies.
3205
3206 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3207
3208         Move libcpp to the toplevel.
3209         * Makefile.in: Remove references to libcpp files,
3210         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
3211         and change hashtable.h to that.
3212         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3213         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3214         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3215         * configure: Regenerate.
3216         * config.in: Regenerate.
3217         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3218         * cppcharset.c: Removed.
3219         * cpperror.c: Removed.
3220         * cppexp.c: Removed.
3221         * cppfiles.c: Removed.
3222         * cpphash.c: Removed.
3223         * cpphash.h: Removed.
3224         * cppinit.c: Removed.
3225         * cpplex.c: Removed.
3226         * cpplib.c: Removed.
3227         * cpplib.h: Removed.
3228         * cppmacro.c: Removed.
3229         * cpppch.c: Removed.
3230         * cpptrad.c: Removed.
3231         * cppucnid.h: Removed.
3232         * cppucnid.pl: Removed.
3233         * cppucnid.tab: Removed.
3234         * hashtable.c: Removed.
3235         * hashtable.h: Removed.
3236         * line-map.c: Removed.
3237         * line-map.h: Removed.
3238         * mkdeps.c: Removed.
3239         * mkdeps.h: Removed.
3240         * stringpool.h: Include symtab.h instead of hashtable.h.
3241         * tree.h: Include symtab.h instead of hashtable.h.
3242         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3243
3244 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3245
3246         * gcc.c (struct prefix_list): Add forward declaration.
3247         (do_spec_path): New function, extracted from...
3248         (do_spec_1) <'D'>: ... here.  Drop support for
3249         SPACE_AFTER_L_OPTION.
3250         (do_spec_1) <'I'>: Use do_spec_path.
3251         (process_command): Do not store the 'include' suffix
3252         in include_prefixes.
3253         * system.h: Poison SPACE_AFTER_L_OPTION.
3254
3255 2002-05-23  Roger Sayle  <roger@eyesopen.com>
3256
3257         * fold-const.c (non_lvalue): Explicitly list the tree codes that
3258         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3259
3260 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3261
3262         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3263         Update based on printed manual.  Enable setting of offsets for
3264         FSFPRINT and move it to gcc-common.texi.
3265         * doc/gcc.texi: Update FSF printing details.
3266         * doc/gccint.texi: Remove FSF printing details.
3267
3268 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
3269
3270         * config/rs6000/t-rs6000: Remove the disabling -Werror.
3271
3272 2004-05-22  Roger Sayle  <roger@eyesopen.com>
3273
3274         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3275         expand_builtin_strrchr, expand_builtin_strpbrk,
3276         expand_builtin_mempcpy, expand_builtin_memcmp,
3277         expand_builtin_strcmp, expand_builtin_strncmp,
3278         expand_builtin_strcat, std_expand_builtin_va_start,
3279         std_expand_builtin_va_arg, expand_builtin_va_copy,
3280         expand_builtin_signbit, fold_builtin_cabs,
3281         fold_builtin_logarithm, fold_builtin_mempcpy,
3282         fold_builtin_signbit, fold_builtin_isascii,
3283         fold_builtin_toascii, fold_builtin_isdigit,
3284         fold_builtin_1, build_function_call_expr,
3285         simplify_builtin_strchr, simplify_builtin_strrchr,
3286         simplify_builtin_strpbrk, simplify_builtin_strncpy,
3287         simplify_builtin_memcmp, simplify_builtin_strcmp,
3288         simplify_builtin_strncmp, simplify_builtin_strncat,
3289         simplify_builtin_strspn, simplify_builtin_strcspn,
3290         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3291         to build with calls to build2, build3 or omit_one_operand.
3292
3293 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3294
3295         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3296         section when generating EABI code.
3297
3298 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3299
3300         PR 15546
3301         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3302         Call mark_decl_referenced on the SYMBOL_REF_DECL.
3303
3304 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
3305
3306         * c-common.c (c_common_truthvalue_conversion): Handle
3307         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3308         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3309         i.e. set the type to truthvalue_type_node and return.
3310
3311 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
3312
3313        * tree.h (struct tree_decl): Add possibly_inlined bit.
3314         (DECL_POSSIBLY_INLINED): New accessor macro.
3315         * cgraph.h: Remove declaration of cgraph_inline_hash.
3316         * cgraph.c: Remove definition of cgraph_inline_hash.
3317         (hash_node): Revert to hashing DECL_UID.
3318         (eq_node): Take two pointers to cgraph_node structures.
3319         Compare DECL_UIDs.
3320         (cgraph_remove_node): Pass the node directly to htab_find_slot.
3321         (cgraph_varpool_hash_node): Rename hash_varpool_node;
3322         hash on DECL_UID.
3323         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3324         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3325         (cgraph_node): Allocate a temporary node on the stack, fill in
3326         its DECL field, and pass that to htab_find_slot.
3327         (cgraph_varpool_node): Likewise.
3328         (cgraph_function_possibly_inlined_p): If global info is ready,
3329         return the DECL_POSSIBLY_INLINED bit.
3330         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3331         instead of mucking with cgraph_inline_hash.
3332
3333 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3334
3335         * doc/contrib.texi: Add g77 contributors.
3336
3337 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
3338
3339         * calls.c (initialize_argument_information): Forbid sibcalls if a
3340         callee-copied argument is stored in the current function's frame.
3341
3342 2004-05-22  Eric Christopher  <echristo@redhat.com>
3343
3344         * fix-header.c (read_scan_file): Update for add_path change.
3345
3346 2004-05-22  Ben Elliston  <bje@au.ibm.com>
3347
3348         * c.opt (Wmissing-include-dirs): New.
3349         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3350         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3351         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3352         * c-incpath.h (add_path): Add fourth (bool) argument.
3353         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3354         (add_standard_paths): Likewise.
3355         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3356         is used and the directory was user-supplied via -I.
3357         (add_path): Set p->user_supplied_p.  Remove duplicated code by
3358         using add_cpp_dir_path ().
3359         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3360         (struct cpp_dir): Add user_supplied_p.
3361         * doc/invoke.texi (Warning Options): Document new option.
3362
3363 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
3364
3365         * fold-const.c (fold_read_from_constant_string): Convert result to
3366         requested type.
3367
3368 2004-05-21  Richard Henderson  <rth@redhat.com>
3369
3370         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3371         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3372         Don't mark VA_ARG_EXPRs volatile here.
3373         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3374
3375 2004-05-21  Richard Henderson  <rth@redhat.com>
3376
3377         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3378         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3379
3380 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3381
3382         * fold-const.c (fold, fold_relational_hi_lo,
3383         nondestructive_fold_binary_to_constant,
3384         fold_read_from_constant_string): Use fold_convert instead of convert.
3385         * builtins.c (simplify_builtin, simplify_builtin_strstr,
3386         simplify_builtin_strchr, simplify_builtin_strrchr,
3387         simplify_builtin_strpbrk): Use fold_convert instead of convert.
3388
3389 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
3390
3391         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3392         is NULL.
3393
3394 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
3395
3396         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3397         override sparc.h definition.
3398
3399 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3400
3401         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3402         get_unwidened, get_narrower): Replace build with build2.
3403         * fold-const.c (negate_expr, associate_trees, size_binop,
3404         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3405         pedantic_omit_one_operand, distribute_bit_expr,
3406         make_bit_field_ref, optimize_bit_field_compare,
3407         decode_field_reference, range_binop, make_range,
3408         build_range_check, fold_range_test, fold_truthop,
3409         optimize_minmax_comparison, extract_muldiv_1,
3410         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3411         fold_inf_compare, fold_single_bit_test, fold,
3412         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3413         Likewise replace build with either build2 or build3.
3414
3415 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3416
3417         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3418         * calls.c (prepare_call_address): Don't test
3419         NO_RECURSIVE_FUNCTION_CSE.
3420         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3421         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3422         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3423         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3424         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3425         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3426         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3427         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3428         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3429         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3430         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3431         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3432         Likewise.
3433         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3434         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3435         * doc/tm.texi (Costs): Remove documentation for
3436         NO_RECURSIVE_FUNCTION_CSE.
3437
3438 2004-05-20  Paul Brook  <paul@codesourcery.com>
3439
3440         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3441         * unwind-dw2.c (extract_cie_info): Ditto.
3442         (_Unwind_FrameState): Change retaddr_column to word type.
3443
3444 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3445
3446         PR middle-end/3074
3447         * fold-const.c (strip_compound_expr): Delete function.
3448         (count_cond): Delete function.
3449         (fold_binary_op_with_conditional_arg): Only perform transformations
3450         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3451         when a is constant.  This greatly simplifies this routine.
3452
3453         * tree.c (saved_expr_p): Delete function.
3454         * tree.h (saved_expr_p): Delete function prototype.
3455
3456 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3457
3458         * common.opt (ftree-loop-optimize): Remove.
3459
3460 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3461
3462         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3463         (NM_FOR_TARGET): Use := and $(shell).
3464         (mainversion): Remove unused variable.
3465
3466 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3467
3468         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3469         sequence containing the insn to be deleted, always reemit it.
3470
3471 2004-05-20  Richard Henderson  <rth@redhat.com>
3472
3473         PR 15454
3474         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3475         * function.c (expand_function_start): Expand static_chain_decl by hand.
3476         * gimplify.c (create_tmp_var_name): Export.
3477         * tree-gimple.h (create_tmp_var_name): Declare.
3478
3479 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3480
3481         * rs6000.c (print_operand) <case 'z'>: Call
3482         mark_decl_referenced before assemble_name.
3483
3484 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3485
3486         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3487         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3488         (cgraph_varpool_node): Hash on the pointer to the decl, not
3489         the DECL_UID.  Fixes 64-bit bootstrap failure.
3490
3491 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3492
3493         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3494         we don't earlyclobber operands used in the second insn.
3495
3496 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3497
3498         * tree-mudflap.c: Formatting fixes.
3499
3500 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3501
3502         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3503         * gengtype.c (open_base_files): Include reload.h in ifiles.
3504         * reload.h (reg_equiv_memory_loc_varray): Declare.
3505         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3506         (init_reload): Initialize it.
3507         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3508         reg_equiv_memory_loc_varray to size 0.
3509         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3510         growing reg_equiv_memory_loc_varray to the desired size.
3511         * passes.c (rest_of_handle_old_regalloc): Likewise.
3512         * reload.c: Amend comment on calling init_reload.
3513
3514 2004-05-20  Nick Clifton  <nickc@redhat.com>
3515
3516         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3517         with 'TRAMP' in the body of the macro definition.
3518
3519 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3520
3521         PR target/15383
3522         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3523         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3524         cmptf_libfunc isn't set.
3525         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3526         conventions.
3527         (ia64_sysv4_init_libfuncs): New.
3528
3529         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3530         ia64_sysv4_init_libfuncs.
3531
3532 2004-05-20  Falk Hueffner  <falk@debian.org>
3533
3534         PR other/15526
3535         * libgcc2.c (__mulvsi3): Fix overflow test.
3536
3537 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3538
3539         PR c/14171
3540         * reg-stack.c (nan): Rename to ...
3541         (not_a_num): Here.
3542         (reg_to_stack): Rename nan to not_a_num.
3543         (subst_stack_regs_pat): Likewise.
3544         (convert_regs_entry): Likewise.
3545         (convert_regs_1): Likewise.
3546
3547         * tree-cfg.c (find_case_label_for_value): Replace call to
3548         simple_cst_equal with tree_int_cst_equal.
3549
3550 2004-05-19  Jeff Law <law@redhat.com>
3551
3552         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3553         If the operand is for a use, then strip away the SSA_NAME, do not
3554         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3555         (mark_def_sites): Appropriately pass additional argument to
3556         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3557         then set the VDEF_RESULT to the VDEF_OP.
3558         (set_def_block): Strip away any SSA_NAME to get to the real
3559         underlying variable.
3560
3561         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3562         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3563         BB directly.
3564
3565 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3566
3567         PR c++/15463
3568         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3569         result of inverse.
3570
3571         PR rtl-optimization/15274
3572         * loop-iv.c (determine_max_iter, shorten_into_mode,
3573         iv_number_of_iterations): Handle constants correctly.
3574         * rtl.h (get_mode_bounds): Declaration changed.
3575         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3576         the target mode.
3577
3578         PR rtl-optimization/14692
3579         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3580         (unswitch_single_loop): Work correctly when may_unswitch_on
3581         returns a folded constant.
3582
3583         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3584         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3585         comparisons with mode bounds.
3586
3587         * function.c (struct temp_slot): Add new field prev.
3588         (free_after_compilation, init_temp_slots): Free new fields.
3589         (cut_slot_from_list, insert_slot_to_list,
3590         temp_slots_at_level, max_slot_level, move_slot_to_level,
3591         make_slot_available): New functions.
3592         (assign_stack_temp_for_type, combine_temp_slots,
3593         find_temp_slot_from_address, preserve_temp_slots,
3594         preserve_rtl_expr_result, free_temp_slots,
3595         free_temps_for_rtl_expr, pop_temp_slots): Work with
3596         the new structure of lists.
3597         (mark_all_temps_used): Removed.
3598         * function.h (struct function): Field x_temp_slots
3599         replaced by x_used_temp_slots and x_avail_temp_slots.
3600         (temp_slots): Replaced by ...
3601         (used_temp_slots, avail_temp_slots): New.
3602         * tree.h (mark_all_temps_used): Declaration removed.
3603
3604         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3605         simplify_using_assignment): Take the expression out of
3606         the expr_list wrapper.
3607
3608         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3609         infinite loops.
3610
3611 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3612
3613         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3614         costs should be based on code size when optimizing for size.
3615
3616 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3617
3618         * fold-const.c: Remove non-printable character 160.
3619
3620 2004-05-19  Nick Clifton  <nickc@redhat.com>
3621
3622         * doc/invoke.texi (ARM Options): Fix typo.
3623         Remove descrption of -mshort-load-bytes and
3624         -mno-short-load-bytes.
3625
3626         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3627         missing parenthesis.
3628         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3629         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3630
3631 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3632
3633         * expr.c (store_constructor): Build loop start and end by hand
3634         instead of via loop functions from stmt.c.
3635         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3636         Remove the code to expand them.
3637
3638         * stmt.c (loop_stack): Remove this and everything related.
3639         (struct nesting, enum nesting_desc): Update.
3640         (expand_fixup): Likewise.
3641         (expand_loop_start, expand_start_loop_continue_elsewhere,
3642         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3643         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3644         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3645         expand_exit_something): Remove.
3646         * tree.h: Remove prototypes.
3647
3648 2004-05-18  Mike Stump  <mrs@apple.com>
3649             Devang Patel  <dpatel@apple.com>
3650
3651         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3652         if this label is for eh.
3653         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3654         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3655         * dwarf2out.c (output_call_frame_info): Likewise.
3656         * output.h (default_emit_unwind_label): Likewise.
3657         * target.h (unwind_label): Likewise.
3658         * varasm.c (default_emit_unwind_label): Likewise.
3659
3660         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3661         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3662         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3663         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3664         DEBUG_RANGES_SECTION): Define.
3665
3666 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3667
3668         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3669         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3670         (cgraph_varpool_node):
3671         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3672         (cgraph_function_possibly_inlined_p): Use the decl itself for
3673         the key, not DECL_ASSEMBLER_NAME.
3674         (change_decl_assembler_name): No need to muck with the hash tables.
3675         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3676         Delete.
3677         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3678         for the key, not DECL_ASSEMBLER_NAME.
3679         * cgraph.h: Remove prototypes of deleted functions.
3680         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3681         (mark_decl_referenced): New function.
3682         * tree.h: Prototype mark_decl_referenced.
3683         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3684         mark_decl_referenced before assemble_name.
3685         * c-decl.c (finish_decl): Use mark_decl_referenced.
3686
3687 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3688             Jeff Law <law@redhat.com>
3689
3690         * tree-ssa-phiopt.c (abs_replacement): New function.
3691         (empty_block_p): New function extracted from...
3692         (candidate_bb_for_phi_optimization): Break out empty block test.
3693         (conditional_replacement): Use empty_block_p.
3694         (value_replacement): Similarly.
3695
3696         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3697         * tree-ssa-phiopt.c: Include flags.h.
3698         (conditional_replacement): Remove argument names from prototype.
3699         Minor formatting and comment fixes.
3700         (tree_ssa_phiopt): If conditional_replacement returns false, then
3701         call value_replacement.
3702         (value_replacement): New function.
3703
3704 2004-05-18  Jeff Law  <law@redhat.com>
3705
3706         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3707         from conditional_replacement.
3708         (candidate_bb_for_phi_optimization): Similarly.
3709         (conditional_replacement): Use replace_phi_with_stmt and
3710         candidate_bb_for_phi_optimization.
3711
3712         * tree-ssa-phiopt.c: Fix various formatting issues.
3713
3714 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3715
3716         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3717         s390_expand_cmpmem): Do not use expand_start_loop and
3718         expand_end_loop, instead build the loop manually.
3719
3720 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3721
3722         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3723         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3724
3725 2004-05-17  Jeff Law  <law@redhat.com>
3726
3727         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3728         * flags.h (flag_delete_null_pointer_checks): Here.
3729         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3730         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3731         (add_phi_arg, remove_phi_arg_num): Similarly.
3732         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3733         property into PHI nodes.
3734         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3735         (record_equivalences_from_phis): If all PHI arguments are known to be
3736         nonzero, then the result must be nonzero as well.
3737         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3738         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3739         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3740         as appropriate.
3741         * tree.h (PHI_ARG_NONZERO): Define.
3742         (phi_arg_d): Add nonzero flag.
3743
3744 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3745
3746         * f: Entire directory removed
3747
3748         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3749         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3750         (g77_integer_type_node, g77_uinteger_type_node)
3751         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3752         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3753         the above set of variables.
3754
3755         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3756         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3757         to g77 manual.
3758
3759 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3760
3761         PR tree-optimization/15438
3762         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3763         attributed functions as pure or const.
3764
3765 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3766
3767         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3768         from source code with errors.
3769
3770 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3771
3772         Enable tree browser for all front ends.
3773         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3774         (BACKEND): ...to here.
3775
3776 2004-05-17  Jan Hubicka  <jh@suse.cz>
3777
3778         * i386.c (construct_container): Do not produce BLKmode registers.
3779         (classify_argument): Properly compute alignment of complex types.
3780
3781 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3782
3783         PR target/15084
3784         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3785         and renamed to movdi_insv_1_rex64.
3786         (insv): Support SImode for 32bit and DImode for 64bit.
3787
3788 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3789
3790         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3791         (TARGET_SWITCHES): Remove debugg.
3792         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3793         TARGET_64BIT.
3794         (subdi3): Replace the define_expand with a define_insn, the latter
3795         renamed from subdi3_internal_3.
3796         (negdi2): Likewise negdi2_internal_2.
3797         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3798         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3799         and associated define_splits.
3800         (adddi3_internal): Renamed from adddi3_internal_3.
3801         (ashldi3_internal): Likewise ashldi3_internal4.
3802         (ashrdi3_internal): Likewise ashrdi3_internal4.
3803         (lshrdi3_internal): Likewise lshrdi3_internal4.
3804
3805 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3806
3807         * optabs.c (expand_unop): Try implementing negation using subtraction
3808         from zero.
3809
3810 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3811
3812         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3813         SAR register.
3814
3815 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3816
3817         PR target/10982
3818         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3819         (ne_zeroextractsi_shifted): New pattern.
3820         (ite_ne_zeroextractsi): New pattern.
3821         (ite_ne_zeroextractsi_shifted): New pattern.
3822
3823 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3824
3825         * c-gimplify.c (c_genericize):
3826         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3827         * c-parse.in <expr_no_commas>: Likewise.
3828         <if_prefix>: Likewise.
3829         <select_or_iter_stmt>: Likewise.
3830         * expr.c (expand_var, expand_expr_real_1): Likewise.
3831         * expr.h (expand_expr): Make it a static inline function.
3832         Move prototype for expand_expr_real up before this.
3833         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3834         Likewise.
3835         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3836         gimplify_asm_expr, gimplify_expr): Likewise.
3837         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3838         dump_function_to_file): Likewise.
3839         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3840         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3841         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3842         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3843         Likewise.
3844         * tree-optimize.c (execute_one_pass): Likewise.
3845         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3846         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3847
3848         * objc/objc-act.c (objc_build_try_enter_fragment,
3849         objc_build_try_epilogue, objc_build_catch_stmt,
3850         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3851         with lang_hooks.foo ().
3852
3853 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3854
3855         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3856         that simplify_builtin doesn't destructively modify its argument.
3857
3858 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3859
3860         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3861         implementations for ARM and Thumb.
3862         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3863
3864 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3865
3866         * prefix.c (update_path): Replace PREFIX with KEY only
3867         when it matches a full directory name in PATH.
3868
3869 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3870
3871         * arm.h (TARGET_APCS_32): Delete.
3872         (TARGET_MMU_TRAPS): Delete.
3873         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3874         define __APCS_26__.
3875         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3876         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3877         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3878         (prog_mode_type): Delete.
3879         (PROMOTE_MODE): Always promote unsigned for HImode.
3880         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3881         (MASK_RETURN_ADDR): Simplify.
3882         * arm.c (arm_prgmode): Delete.
3883         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3884         (print_multi_reg, output_return_instruction): Simplify.
3885         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3886         (arm_return_addr): Simplify.
3887         * arm.md (prog_mode): Delete.
3888         (conds): Simplify.
3889         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3890         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3891         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3892         (loadhi_shiftpredec): Delete.
3893         (peephole for post-increment on HImode load): Delete.
3894         * arm/crtn.asm: (FUNC_END): Simplify.
3895         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3896         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3897         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3898         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3899         MULTILIB_DEFAULTS as required.
3900         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3901         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3902         variables as required.
3903         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3904
3905 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3906
3907         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3908         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3909         count to 8 to handle n_reg > 2.
3910
3911 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3912
3913         * doc/extend.texi: Update WG14 URL.
3914
3915 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3916
3917         * basic-block.h (life_analysis, delete_noop_moves):
3918         Update prototypes.
3919         * bt-load.c (branch_target_load_optimize): Don't take the
3920         insns stream as an argument.  Update the life_analysis calls.
3921         * combine.c (combine_instructions): Update delete_noop_moves
3922         calls.
3923         * flow.c (notice_stack_pointer_modification): Don't take the
3924         insns stream as an argument.  Work on the flow graph.
3925         (life_analysis): Likewise.
3926         (delete_noop_moves): Likewise.
3927         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3928         (rest_of_handle_life): Update life_analysis call.
3929         (rest_of_compilation): Likewise, and also update
3930         branch_target_load_optimize call.
3931         * ra.c (reg_alloc): Update life_analysis call.
3932         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3933         the insns stream as an argument.
3934         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3935         call.
3936         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3937         prototypes.
3938         * value-profile.c (branch_prob): Update life_analysis call.
3939         * web.c (web_main): Work on the CFG, not on the insns stream.
3940
3941         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3942         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3943         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3944
3945 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3946
3947         PR c/15444
3948         * c-format.c (avoid_dollar_number): New function.
3949         (check_format_info_main): Call avoid_dollar_number when operand
3950         numbers might occur but has_operand_number == 0.
3951
3952 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3953
3954         * arm.md (all peephole2 patterns): Use predicates that validate
3955         register classes as appropriate.
3956
3957 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3958
3959         PR opt/14472
3960         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3961         ignore type conversions that do not inhibit tail calling.
3962         (find_tail_calls): Likewise.
3963
3964 2004-05-14  Jeff Law  <law@redhat.com>
3965
3966         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3967         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3968         bypassed virtuals into vars_to_rename just before into-ssa pass.
3969
3970         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3971         so that it picks up more opportunities to eliminate ABS expressions
3972         or turn them into negations.
3973
3974 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3975
3976         * passes.c (rest_of_handle_null_pointer): Remove.
3977         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3978         (rest_of_compilation): Likewise.
3979         * rtl.h (delete_null_pointer_checks): Remove prototype.
3980         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3981         Remove declarations.
3982         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3983         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3984         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3985         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3986         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3987         one_classic_gcse_pass, invalidate_nonnull_info,
3988         delete_null_pointer_checks_1, delete_null_pointer_checks,
3989         expr_reached_here_p_work): Remove.
3990         (gcse_main): Do not perform classic GCSE when optimizing for size.
3991         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3992         are never used.
3993
3994 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3995
3996         PR optimization/14466
3997         * tree-complex.c (make_temp): Remove.
3998         (gimplify_val): Replace make_temp with make_rename_temp
3999         and add NULL as the second argument.
4000         (expand_complex_div_wide): Likewise.
4001         * tree-dfa.c (make_rename_temp): New function.
4002         * tree-flow.h (make_rename_temp): Declare.
4003         * tree-sra.c (make_temp): Remove.
4004         (lookup_scalar): Replace make_temp with make_rename_temp.
4005         (create_scalar_copies): Likewise.
4006         * tree-ssa-phiopt.c (conditional_replacement): When we
4007         get non gimple create a temporary variable to hold the
4008         casted expression.
4009
4010 2004-05-14  Paul Brook  <paul@codesourcery.com>
4011
4012         * stor-layout.c (update_alignment_for_field): Use
4013         targetm.align_anon_bitfield.
4014         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
4015         (TARGET_INITIALIZER): Use it.
4016         * target.h (struct gcc_target): Add align_anon_bitfield.
4017         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
4018         (TARGET_ALIGN_ANON_BITFIELD): Define.
4019         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
4020
4021 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
4022
4023         * tree.def (documentation): Remove mention of class 'b'.
4024         (BLOCK): Now in class 'x'.
4025         * c-common.c (verify_tree): Remove case 'b'.
4026         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
4027         * calls.c (calls_function_1): Control cannot get past the switch
4028         when exp is a BLOCK.
4029         * print-tree.c (print_node): Move code for class 'b' to the class
4030         'c'/'x' switch, as case BLOCK.
4031         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
4032         (unsafe_for_reeval, substitute_placeholder_in_expr)
4033         (stabilize_reference_1): Remove case 'b'.
4034         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
4035         of something being 'b' to tests for TREE_CODE of something being
4036         BLOCK.
4037         * tree-ssa-operands.c (get_expr_operands): Likewise.
4038
4039 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4040
4041         * tree-gimple.c: Rename from tree-simple.c.
4042         * tree-gimple.h: Rename from tree-simple.h.
4043         * c-gimplify.c: Rename from c-simplify.c
4044         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
4045         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
4046         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
4047         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
4048         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
4049         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
4050         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
4051         Update.
4052
4053 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
4054
4055         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
4056
4057 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4058
4059         * tree-ssa.c (delete_tree_ssa): XFREE
4060         bitmaps allocated with BITMAP_XMALLOC.
4061
4062         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
4063         idfs_cache at the end of the function.
4064
4065         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
4066         at the end of the function.
4067
4068         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
4069         el at the end of the function.
4070
4071         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
4072         bitmaps allocated with BITMAP_XMALLOC.
4073
4074         * loop-unswitch.c (unswitch_single_loop): Free bbs at
4075         the end.
4076
4077         * final.c (shorten_branches): Free uid_shuid before
4078         reallocating it.
4079
4080         * bb-reoder.c (connect_traces): Free cold_traces at the end.
4081
4082 2004-05-13  Jeff Law  <law@redhat.com>
4083
4084         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
4085         variables.  Simplify slightly by using USE_OP/DEF_OP instead
4086         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
4087
4088         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
4089         rather than iterating through the blocks testing each bit in
4090         livein to initialize the worklist.
4091         (mark_def_sites): Remove useless checks of KILLS for virtual
4092         operands.
4093
4094         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
4095         new parameters for the statement and variable worklist as well
4096         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
4097         worklist recording interesting variables in the variable worklist
4098         and bitmap.  Handle casts between integral and boolean types.
4099         (substitute_single_use_vars): Accept new parameters for the statement
4100         and variable worklist.  When a substitution is made add a new
4101         entry to the statement worklist.  Handle casts between integral
4102         and boolean types.
4103         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
4104         worklists to children.  Iterate until the statement worklist
4105         is empty.
4106
4107 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
4108
4109         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
4110         the end of the block.
4111
4112         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
4113         with BITMAP_XMALLOC.
4114
4115         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
4116         with BITMAP_XMALLOC.
4117
4118         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4119         Free nonzero_vars at the end of the function.
4120
4121         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4122         need to generate code instead of a NOP_EXPR.
4123
4124 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
4125
4126         * gcc.c (default_compilers): Fill out initializers for new Fortran
4127         entries.
4128
4129 2004-05-13  Paul Brook  <paul@codesourcery.com>
4130
4131         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4132
4133 2004-05-13  Paul Brook  <paul@codesourcery.com>
4134
4135         * config/arm/arm.c (arm_default_short_enums): New function.
4136         (TARGET_DEFAULT_SHORT_ENUMS): Define.
4137
4138 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
4139
4140         Merge from tree-ssa-20020619-branch.
4141
4142         * Makefile.in (reload1.o-warn): Add.
4143         (tree-alias-ander.o-warn): Add.
4144         (GMPLIBS): Define.
4145         (GMPINC): Define.
4146         (BANSHEELIB): Define.
4147         (BANSHEEINC): Define.
4148         (TREE_DUMP_H): Define.
4149         (TREE_SIMPLE_H): Define.
4150         (TREE_FLOW_H): Define.
4151         (LIBDEPS): Add BANSHEELIB.
4152         (INCLUDES): Add BANSHEEINC and GMPINC.
4153         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4154         c-mudflap.o and c-pretty-print.o.
4155         (C_OBJS): Remove c-pretty-print.o.
4156         (OBJS-common): Remove sibcall.o.
4157         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4158         tree-ssa.o, tree-optimize.o, tree-simple.o,
4159         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4160         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4161         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4162         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4163         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4164         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4165         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4166         tree-tailcall.o, gimple-low.o, tree-iterator.o,
4167         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4168         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4169         tree-profile.o.
4170         (OBJC-archive): Add tree-nomudflap.o.
4171         (cc1): Add dependency on @TREEBROWSER@.
4172         (c-decl.o): Add dependency on TREE_DUMP_H.
4173         (c-dump.o): Likewise.
4174         (c-common.o): Add dependency on tree-iterator.h
4175         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4176         (gtype-desc.o): Add dependency on TREE_FLOW_H.
4177         (tree.o): Add dependency on tree-iterator.h,
4178         BASIC_BLOCK_H and TREE_FLOW_H.
4179         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4180         (langhooks.o): Add dependency on TREE_SIMPLE_H.
4181         (tree-alias-type.o, tree-alias-ander.o,
4182         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4183         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4184         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4185         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4186         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4187         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4188         tree-nested.o, tree-iterator.o, tree-dfa.o,
4189         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4190         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4191         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4192         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4193         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4194         tree-sra.o, tree-complex.o, tree-profile.o,
4195         rtl-profile.o): New rules.
4196         (function.o): Add dependency on basic-block.h
4197         (expr.o): Add dependency on tree-iterator.h.
4198         (sibcall.o): Remove.
4199         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4200         (cfg.o): Add dependency on TIMEVAR_H.
4201         (cfghooks.o): Add dependency on TREE_FLOW_H.
4202         (reg-stack.o): Add dependency on basic-block.h.
4203         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4204         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4205         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4206         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4207         tree-alias-type.h, tree-alias-common.h,
4208         tree-alias-type.c, tree-alias-common.c,
4209         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4210         rtl-profile.c and tree-nested.c.
4211         (gt-tree-alias-common.h, gt-tree-mudflap.h,
4212         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4213         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4214         gt-tree-cfg.h, gt-tree-nested.h): New rules.
4215         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4216         * basic-block.h: Include predict.h
4217         (struct edge_def): Add GTY marker.
4218         Change field 'insns' to be a union of tree and rtx.
4219         (EDGE_TRUE_VALUE): Define.
4220         (EDGE_FALSE_VALUE): Define.
4221         (EDGE_EXECUTABLE): Define.
4222         (struct bb_ann_d): Forward declare.
4223         (struct basic_block_def): Add GTY marker.
4224         Remove fields head_tree and end_tree.
4225         Add fields stmt_list, rbi and tree_annotations.
4226         (struct reorder_block_def): Define.
4227         (basic_block_info): Add GTY marker.
4228         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4229         variables instead of macros.
4230         (flow_call_edges_add): Remove declaration.
4231         (make_eh_edge): Remove declaration.
4232         (brief_dump_cfg, find_edge, tree_predicted_by_p,
4233         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4234         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4235         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4236         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4237         (try_redirect_by_replacing_jump): Modfiy return type to
4238         edge instead of bool.
4239         * bb-reorder.c (copy_bb): Call duplicate_block
4240         instead of cfg_layout_duplicate_bb.
4241         (copy_bb_p): Call can_duplicate_block_p instead of
4242         cfg_layout_can_duplicate_bb_p.
4243         * bitmap.c (bitmap_first_set_bit): Abort if word
4244         wasn't found.
4245         (bitmap_last_set_bit): Likewise.
4246         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4247         (DEF_FUNCTION_TYPE_3): Add.
4248         * builtins.c (c_strlen): Make extern.
4249         (builtin_save_expr): New.
4250         (expand_builtin_nonlocal_goto): New.
4251         (expand_builtin_constant_p): Remove.
4252         (expand_builtin_mathfn): Call builtin_save_expr instead
4253         of save_expr.
4254         (expand_builtin_mathfn_2): Likewise.
4255         (expand_builtin_strcmp): Likewise.
4256         (expand_builtin_strncmp): Likewise.
4257         (expand_builtin_strcat): Likewise.
4258         (fold_builtin_cabs): Likewise.
4259         (expand_builtin_alloca): Don't trigger if -fmudflap is
4260         given.
4261         (build_string_literal): Set TREE_INVARIANT on new node.
4262         (expand_builtin_profile_fun): New.
4263         (round_trampoline_addr): New.
4264         (expand_builtin_init_trampoline): New.
4265         (expand_builtin_adjust_trampoline): New.
4266         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4267         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4268         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4269         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4270         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4271         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4272         Handle.
4273         (fold_builtin_expect): New.
4274         (fold_builtin_isascii): Don't return non-constant results
4275         in GIMPLE form.
4276         (fold_builtin_isdigit): Likewise.
4277         (fold_builtin_1): New.
4278         (fold_builtin): Call it.
4279         (build_function_call_expr): Update call to build a new
4280         CALL_EXPR.
4281         (purge_builtin_constant_p): Remove.
4282         (simplify_builtin, simplify_builtin_memcmp,
4283         simplify_builtin_strcmp, simplify_builtin_strncmp,
4284         simplify_builtin_strpbrk, simplify_builtin_strstr,
4285         simplify_builtin_strchr, simplify_builtin_strrchr,
4286         simplify_builtin_strcat, simplify_builtin_strncat,
4287         simplify_builtin_strspn, simplify_builtin_strcspn,
4288         simplify_builtin_next_arg, simplify_builtin_va_start,
4289         simplify_builtin_sprintf): New.
4290         * builtins.def (BUILT_IN_STACK_ALLOC,
4291         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4292         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4293         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4294         BUILT_IN_PROFILE_FUNC_EXIT): Define.
4295         * c-common.c: Include tree-iterator.h and hashtab.h.
4296         (lang_statement_code_p): Declare.
4297         (lang_gimplify_stmt): Declare.
4298         (fix_string_type): Set TREE_INVARIANT for value.
4299         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4300         (c_type_hash): New.
4301         (c_common_get_alias_set): Handle multiple type nodes
4302         referring to "the same" type, currently for C90 only.
4303         (c_add_case_label): Use create_artificial_label.
4304         (finish_label_address_expr): Don't set TREE_CONSTANT on
4305         result.
4306         (c_expand_expr): Don't handle STMT_EXPR.
4307         (handle_alias_attribute): Marke aliased variables to be
4308         TREE_STATIC.
4309         (handle_nonnull_attribute): Initialize arg_num.
4310         (check_function_nonnull): Likewise.
4311         (c_walk_subtrees): New.
4312         (c_estimate_num_insns_1): Don't handle
4313         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4314         (c_decl_uninit_1): Remove.
4315         (c_decl_uninit): Remove.
4316         (c_warn_unused_result): New.
4317         * c-common.def (ASM_STMT): Change number of operands
4318         to 4.
4319         (FILE_STMT): Remove.
4320         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4321         Remove.
4322         (lang_gimplify_stmt): Add.
4323         (expand_stmt): Remove.
4324         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4325         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4326         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4327         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4328         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4329         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4330         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4331         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4332         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4333         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4334         genrtl_compound_stmt, genrtl_asm_stmt,
4335         genrtl_cleanup_stmt, c_decl_uninit): Remove.
4336         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4337         c_tree_chain_matters_p, c_warn_unused_result,
4338         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4339         Declare.
4340         * c-convert.c (convert): Make convert work when
4341         converting to compatible types across translation unit.
4342         * c-decl.c: Include langhooks.h, tree-mudflap.h,
4343         tree-simple.h, diagnostic.h and tree-dump.h
4344         (merge_decls): Initialize oldtype to NULL.
4345         (finish_decl): Use DECL_HARD_REGISTER instead of
4346         DECL_C_HARD_REGISTER.
4347         (check_bitfield_type_and_width): Check for null
4348         lang_type_specific when check the precision of an enum.
4349         (grokdeclarator): Immediately layout an ARRAY_TYPE used
4350         in a pointer-to-array declarator.
4351         (finish_struct): Clear allocated struct lang_type.
4352         (finish_enum): Set enum_min and enum_max.  Set
4353         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4354         not to the enumerators.
4355         (set_decl_nonlocal): New.
4356         (store_parm_decls): Use it via walk_tree.
4357         (c_finalize): New.
4358         (finish_function): When !targetm.have_ctors_dtors,
4359         record static constructors and destructors here...
4360         (c_expand_body_1): ... not here.
4361         (c_expand_decl): Rename from c_expand_decl_stmt.
4362         Handle all C-specific expansion semantics.
4363         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4364         STMT_LINENO.
4365         * c-format.c (handle_format_arg_attribute): Initialize
4366         format_num.
4367         * c-lang.c: Include tree-inline.h
4368         (LANG_HOOKS_EXPAND_DECL,
4369         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4370         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4371         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4372         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4373         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4374         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4375         (c_types_compatible_p): New.
4376         * c-mudflap.c: New file.
4377         * c-objc-common.c: Include tree-mudflap.h
4378         (start_cdtor, finish_cdtor): Collapse
4379         together into
4380         (build_cdtor): ...here.  Update to construct a complete tree
4381         for the function.  No need to call push_scope, pop_scope, or
4382         clear_last_expr, or set current_function_cannot_inline.
4383         (c_missing_noreturn_ok_p): Change prototype to return
4384         bool.
4385         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4386         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4387         opts.c.
4388         (c_common_post_options): Don't ever use rtl inlining.
4389         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4390         * c-pragma.c (handle_pragma_redefine_extname): Define
4391         always.
4392         (init_pragma): Activate #pragma redefine_extname for mudflap.
4393         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4394         (pp_c_initializer): Accept any type CONSTRUCTOR.
4395         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4396         COMPLEX_TYPE.
4397         (decl_name_str): New local function.
4398         (pp_c_direct_declarator): Call it.
4399         (pp_c_primary_expression): Call it.
4400         (pp_c_id_expression): Call it.
4401         (pp_c_statement): Call it.
4402         (print_c_tree): Create new pp object.
4403         * c-pretty-print.h (pp_c_tree_decl_identifier,
4404         print_c_tree): Declare.
4405         * c-semantics.c: Include langhooks.h
4406         (lang_expand_stmt, lang_expand_decl_stmt,
4407         find_reachable_label_1, find_reachable_label,
4408         expand_unreachable_if_stmt, expand_unreachable_stmt,
4409         genrtl_do_stmt_1): Remove.
4410         (begin_stmt_tree): Don't check for changed filename.
4411         Call annotate_with_locus.
4412         (finish_stmt_tree): Don't set line for end of function.
4413         (build_stmt): Don't check type nodes for
4414         side effects.
4415         (build_stmt): Set TREE_SIDE_EFFECTS.
4416         Set EXPR_LOCUS instead of STMT_LINENO.
4417         (lang_expand_stmt, lang_expand_decl_stmt,
4418         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4419         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4420         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4421         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4422         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4423         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4424         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4425         find_reachable_label_1, expand_unreachable_if_stmt,
4426         expand_unreachable_stmt): Remove.
4427         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4428         * c-simplify.c: New file.
4429         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4430         (struct lang_type): Add fields enum_min and enum_max.
4431         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4432         (c_expand_decl, c_missing_noreturn_ok_p,
4433         c_types_compatible_p): Declare.
4434         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4435         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4436         (default_function_array_conversion): Rely on build to
4437         set TREE_CONSTANT.
4438         (parser_build_binary_op, pointer_diff): Likewise.
4439         (build_unary_op, build_binary_op): Likewise.
4440         (build_array_ref):
4441         (build_external_ref): Set TREE_INVARIANT.
4442         (build_c_cast, pop_init_level): Likewise.
4443         (process_init_element): Use ASM_VOLATILE_P.
4444         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4445         (c_finish_case): Call c_do_switch_warnings.
4446         * c.opt (fdump-): Remove.
4447         * calls.c (try_to_integrate): Remove.
4448         (prepare_call_address): Replace fndecl arg with a
4449         precomputed static chain value.
4450         (emit_call_1): New argument for full call expr.
4451         (flags_from_decl_or_type): Call special_function_p.
4452         (initialize_argument_information): Add argument
4453         may_tailcall.
4454         (purge_reg_equiv_notes): New.
4455         (expand_call): Do not try to expand calls inline.
4456         (fixup_tail_calls): New.
4457         * cfg.c: Include timevar.h and ggc.h.
4458         (bb_pool, edge_pool): Remove.
4459         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4460         (entry_exit_blocks): Remove.
4461         (rbi_pool): Declare.
4462         (init_flow): Do not create pools.
4463         Allocate entry/exit block.
4464         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4465         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4466         (unlink_block): Clear b->prev_bb and b->next_bb.
4467         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4468         (dump_flow_info): Work on trees too.
4469         (dump_cfg_bb_info): New.
4470         (brief_dump_cfg): New.
4471         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4472         (find_edge): New.
4473         * cfgbuild.c (rtl_make_eh_edge): Rename from
4474         make_eh_edge.  Update all users.
4475         (find_basic_blocks): Don't call VARRAY_FREE on
4476         basic_block_info.
4477         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4478         and newpos2.
4479         (delete_unreachable_blocks): Return changed status.
4480         (merge_seq_blocks): New.
4481         * cfghooks.c: Include tree-flow.h
4482         (tree_register_cfg_hooks, ir_type): New.
4483         (redirect_edge_and_branch): Change return type to edge.
4484         (predict_edge, predicted_by_p, can_duplicate_block_p,
4485         duplicate_block, block_ends_with_call_p,
4486         block_ends_with_condjump_p, flow_call_edges_add): New.
4487         * cfghooks.h (redirect_edge_and_branch): Change return
4488         type to edge.
4489         (predict_edge, predicted_by_p, can_duplicate_block_p,
4490         duplicate_block, block_ends_with_call_p,
4491         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4492         (redirect_edge_and_branch): Change return type to edge.
4493         (struct cfg_hooks): Add fields block_ends_with_call_p,
4494         block_ends_with_condjump_p, flow_call_edges_add,
4495         predict_edge, predicted_by_p, can_duplicate_block_p and
4496         duplicate_block.
4497         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4498         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4499         (fixup_reorder_chain): Use initialize_bb_rbi.
4500         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4501         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4502         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4503         (insn_locators_initialize): Use new info about blocks.
4504         * cfglayout.h (typedef struct reorder_block_def): Moved to
4505         basic_block.h.
4506         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4507         removed.
4508         * cfgloop.c: Include tree.h and tree-flow.h.
4509         * cfgloop.h (create_loop_notes): Declare.
4510         * cfgloopmanip.c (create_loop_notes): New.
4511         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4512         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4513         and duplicate_block fields.
4514         (create_basic_block_structure): Don't look at
4515         RTX_INTEGRATED_P.
4516         (rtl_block_ends_with_call_p): New.
4517         (rtl_block_ends_with_condjump_p): New.
4518         (need_fake_edge_p): Moved from cfganal.c.
4519         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4520         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4521         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4522         (cfg_layout_rtl_cfg_hooks): Ditto.
4523         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4524         functions to be reachable.
4525         * cgraphunit.c (decide_is_function_needed):
4526         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4527         inline functions don't need to be output.
4528         (cgraph_assemble_pending_functions): Don't do anything
4529         special for nested functions.
4530         (cgraph_mark_functions_to_output): Likewise.
4531         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4532         (cgraph_analyze_function): Use estimate_num_insns.
4533         (cgraph_mark_functions_to_output): Likewise.
4534         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4535         (cgraph_expand_function): Allow functions to not be
4536         emitted.
4537         (cgraph_remove_unreachable_nodes):
4538         (cgraph_recursive_inlining_p): Simplify.
4539         (lookup_recursive_calls,
4540         cgraph_decide_recursive_inlining): New.
4541         (cgraph_decide_inlining_*): Update calls of
4542         cgraph_mark_inline.
4543         * combine.c (get_pos_from_mask): Always set *plen.
4544         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4545         ftree-based-profiling, ftree-ccp, ftree-ch,
4546         ftree-combine-temps, ftree-copyrename, ftree-dce,
4547         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4548         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4549         ftree-lrs): Add.
4550         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4551         Undefine.
4552         * configure.ac: Add --enable-tree-browser option.
4553         Add --with-libbanshee option.
4554         Add GMPLIBS and GMPINC.
4555         * configure: Regenerate.
4556         * coverage.c (tree_ctr_tables): New.
4557         (coverage_counter_alloc): Use it.
4558         (build_ctr_info_value): Ditto.
4559         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4560         (tree_coverage_counter_ref): New.
4561         * coverage.h (coverage_counter_ref): Remove declaration.
4562         (rtl_coverage_counter_ref): Declare.
4563         (tree_coverage_counter_ref): Declare.
4564         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4565         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4566         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4567         (struct cse_basic_block_data): Rename enum values to not
4568         conflict with profile.h; update all uses.
4569         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4570         in comments.
4571         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4572         * diagnostic.h (debug_output_buffer, dump_generic_node,
4573         print_generic_stmt, print_generic_stmt_indented,
4574         print_generic_expr, print_generic_decl,
4575         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4576         Declare.
4577         * dominance.c: Cache immediate dominators.
4578         * domwalk.c: New file.
4579         * domwalk.h: New file.
4580         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4581         (gen_subprogram_die): Generate a DIE for a named
4582         return value.
4583         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4584         (add_location_or_const_value_attribute): Likewise.
4585         (add_bound_info): Likewise.
4586         (gen_decl_die): Likewise.
4587         * emit-rtl.c (maybe_set_first_label_num): New.
4588         (copy_most_rtx): Don't copy the integrated flag.
4589         Copy the new return_val flag.
4590         * et-forest.c (MAX_NODES): Define.
4591         (record_path_before_1): Abort if len is greater than
4592         MAX_NODES.
4593         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4594         gen_eh_region_catch, gen_eh_region_allowed,
4595         gen_eh_region_must_not_throw, get_eh_region_number,
4596         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4597         set_eh_region_tree_label, expand_resx_expr): New.
4598         (expand_eh_region_start, expand_start_catch): Use them.
4599         (expand_end_catch): Tidy.
4600         (note_eh_region_may_contain_throw): Take region argument.
4601         (note_current_region_may_contain_throw): New.
4602         (get_exception_filter): Export.
4603         (collect_eh_region_array): Export.
4604         (remove_unreachable_regions): Check ERT_TRY based on reachability
4605         of catches, not reachability of continue_label.  Never remove
4606         ERT_MUST_NOT_THROW regions.
4607         (collect_rtl_labels_from_trees): New.
4608         (convert_from_eh_region_ranges): Use it.
4609         (connect_post_landing_pads): Handle dying cleanups.
4610         (struct reachable_info): Add callback data.
4611         (add_reachable_handler): Invoke the callback.
4612         (foreach_reachable_handler): New.
4613         (reachable_handlers): Use it.
4614         (arh_to_landing_pad, arh_to_label): New.
4615         (can_throw_internal_1): Split out from can_throw_internal.
4616         (can_throw_external_1): Similarly.
4617         * except.h: Update.
4618         * explow.c (emit_stack_save): Remove savearea mode check.
4619         (update_nonlocal_goto_save_area): New.
4620         (allocate_dynamic_stack_space): Use it.
4621         (probe_stack_range): Never emit loop notes.
4622         * expmed.c (extract_fixed_bit_field): Always propagate the
4623         target for the shift if it is a REG.
4624         * expr.c: Include tree-iterator.h
4625         (is_zeros_p): Remove.
4626         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4627         (count_type_elements): New.
4628         (mostly_zeros_p): Use them.
4629         (expr_wfl_stack): Remove.
4630         (convert_move): Do nothing if to and from are the same.
4631         (emit_block_move_via_loop): Don't emit LOOP notes.
4632         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4633         (emit_move_insn_1): Don't generate inline warnings.
4634         (expand_vars, expand_var): Split from ...
4635         (expand_expr_1): ... here.
4636         (expand_expr_real, expand_expr_real_1):  Use new macros
4637         EXPR_LOCATION and EXPR_HAS_LOCATION.
4638         * expr.h (simplify_builtin_fputs,
4639         simplify_builtin_strcpy, simplify_builtin_strncpy,
4640         expand_var, fixup_tail_calls,
4641         update_nonlocal_goto_save_area): Declare.
4642         (lookup_static_chain, expand_inline_function,
4643         mark_seen_cases): Remove.
4644         (prepare_call_address): Change type of 2nd argument to
4645         rtx.
4646         * final.c (profile_function): Update static chain test.
4647         (final): Don't look at RTX_INTEGRATED_P.
4648         * flags.h (flag_mudflap, flag_mudflap_threads,
4649         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4650         flag_tree_dce, flag_tree_combine_temps,
4651         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4652         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4653         flag_tree_points_to): Declare.
4654         (enum pta_type): Declare.
4655         * flow.c (lang_missing_noreturn_ok_p): Remove.
4656         (check_function_return_warnings): Remove.
4657         (update_life_info): Update comments.
4658         (free_basic_block_vars): Don't call VARRAY_FREE for
4659         basic_block_info.
4660         (regno_uninitialized): Remove.
4661         * fold-const.c (int_const_binop): Make extern.
4662         (non_lvalue): Rely on build to set TREE_CONSTANT.
4663         (operand_equal_p): Replace only_const argument with
4664         flags.  Allow pure functions if OEP_PURE_SAME.
4665         (fold): Use OEP_ONLY_CONST.
4666         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4667         boolean type.
4668         (fold_relational_hi_lo,
4669         nondestructive_fold_binary_to_constant,
4670         nondestructive_fold_unary_to_constant,
4671         fold_read_from_constant_string): New.
4672         * function.c (struct function): Remove calls_constant_p.
4673         (current_function_calls_constant_p): Remove.
4674         (inline_function_decl): Remove.
4675         (put_var_into_stack): Don't use it.
4676         (fix_lexical_addr): Likewise.
4677         (inline_function_decl): Remove extern declaration.
4678         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4679         (trampolines_created): Move to varasm.c.
4680         (free_after_compilation): Update for removed fields.
4681         (allocate_struct_function): Likewise.
4682         (delete_handlers, lookup_static_chain): Remove.
4683         (fix_lexical_addr): Don't consider non-local variable refs.
4684         (trampoline_address): Remove.
4685         (round_trampoline_addr): Move to builtins.c.
4686         (adjust_trampoline_addr): Remove.
4687         (expand_function_start): Update for changes to static chain
4688         and nonlocal goto handling.
4689         (initial_trampoline): Move to varasm.c.
4690         (expand_function_end): Don't build trampolines or kill
4691         unreferenced nonlocal goto labels.
4692         (free_after_compilation): Don't set it.
4693         (expand_function_end): Likewise.
4694         (setjmp_vars_warning): Rename from
4695         uninitialized_vars_warning, remove uninitialized vars warning.
4696         (uninitialized_vars_warning): Remove old comment
4697         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4698         and do not call the langhook.
4699         (expand_function_start, expand_function_end): Don't do
4700         function instrumentation here.
4701         (clear_block_marks): Rename from reorder_blocks_0, export.
4702         (blocks_nreverse): Export.
4703         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4704         of rtl.
4705         (reset_block_changes, record_block_change, finalize_block_changes,
4706         check_block_change, free_block_changes): New functions.
4707         (assign_parms): Setting of current_function_stdarg
4708         moved ...
4709         (allocate_struct_function): ... here.
4710         * function.h (struct function): Remove x_nonlocal_labels,
4711         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4712         x_context_display, x_trampoline_list, needs_context.
4713         Add static_chain_decl, nonlocal_goto_save_area.
4714         (struct function): Remove x_clobber_return_insn.
4715         Add tail_call_emit field, last_label_uid,
4716         unexpanded_var_list, dont_emit_block_notes,
4717         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4718         (clear_block_marks): Declare.
4719         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4720         (mfwrap_spec, mflib_spec): Declare.
4721         (cpp_unique_options, cc1_options): Ditto.
4722         (default_compilers): Add .F and .f90.
4723         (static_specs): Add mfwrap and mflib.
4724         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4725         CONSTANT_RTX_P.
4726         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4727         Update to match insns field in struct edge_def.
4728         * gdbinit.in (pgs, pge): Define.
4729         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4730         instead of the integrated flag.
4731         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4732         * gengtype-yacc.y (bitfieldlen): Add empty action.
4733         (struct_fields): Accept unnamed bitfields.
4734         (bitfieldlen): Split from ...
4735         (bitfieldopt): ... here.
4736         * gengtype.c (ifiles): Add tree-alias-type.h and
4737         tree-flow.h.
4738         * genrecog.c (validate_pattern): Do not handle
4739         CONSTANT_P_RTX.
4740         * gimple-low.c: New file.
4741         * gimplify.c: New file.
4742         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4743         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4744         * ifcvt.c (dead_or_predicable): Initialize local variable
4745         'earliest'.
4746         * input.h (expr_wfl_stack): Remove.
4747         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4748         (setup_initial_hard_reg_value_integration): Likewise.
4749         (initialize_for_inline): Likewise.
4750         (note_modified_parmregs): Likewise.
4751         (integrate_parm_decls): Likewise.
4752         (process_reg_param): Likewise.
4753         (save_parm_insns): Likewise.
4754         (copy_insn_list): Likewise.
4755         (copy_insn_notes): Likewise.
4756         (compare_blocks): Likewise.
4757         (find_block): Likewise.
4758         (inlining): Likewise.
4759         (function_cannot_inline_p): Likewise.
4760         (parmdecl_map): Likewise.
4761         (in_nonparam_insns): Likewise.
4762         (save_for_inline): Likewise.
4763         (FIXED_BASE_PLUS): Likewise.
4764         (expand_inline_function): Likewise.
4765         (copy_rtx_and_substitute): Don't look at map->integrating,
4766         map->inline_target, and inlining, since we are never copying
4767         for integrating.
4768         Don't abort on RTX_INTEGRATED_P.
4769         (old_fun): Remove.
4770         (output_inline_function): Remove.
4771         * integrate.h (struct inline_map): Remove fields integrating,
4772         block_map, leaf_reg_map, inline_target, and local_return_label.
4773         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4774         copy_loop_headers, never_reached_warning): Removed.
4775         (any_uncondjump_p): Reject nonlocal goto.
4776         * langhooks-def.h (lhd_types_compatible_p,
4777         lhd_expand_decl, lhd_gimplify_expr): Declare.
4778         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4779         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4780         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4781         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4782         LANG_HOOKS_GIMPLIFY_EXPR,
4783         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4784         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4785         LANG_HOOKS_GIMPLIFY_EXPR,
4786         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4787         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4788         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4789         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4790         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4791         LANG_HOOKS_DECL_UNINIT,
4792         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4793         * langhooks.c: Include tree-simple.h.
4794         (lhd_expand_decl): New.
4795         (lhd_types_compatible_p): New.
4796         (lhd_decl_uninit): Remove.
4797         (lhd_gimplify_expr): New.
4798         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4799         Remove.
4800         (struct lang_hooks_for_functions): Add field
4801         missing_noreturn_ok_p.
4802         (struct lang_hooks): Add field expand_decl,
4803         types_compatible_p, gimplify_expr and
4804         gimple_before_inlining.
4805         Remove fields decl_uninit and rtl_expand
4806         * opts.c (decode_options): Set flag_tree_ccp,
4807         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4808         flag_tree_pre, flag_tree_ter,
4809         flag_tree_live_range_split, flag_tree_sra,
4810         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4811         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4812         OPT_fmudflapth, OPT_fmudflapir,
4813         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4814         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4815         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4816         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4817         OPT_ftree_points_to_ and OPT_ftree_pre.
4818         * output.h (regno_uninitialized, find_basic_blocks,
4819         cleanup_cfg, delete_unreachable_blocks,
4820         check_function_return_warnings): Remove.
4821         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4822         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4823         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4824         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4825         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4826         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4827         Define.
4828         * passes.c (rest_of_decl_compilation):
4829         (rest_of_handle_sibling_calls): Remove.
4830         (rest_of_handle_inlining): Remove.
4831         (rest_of_handle_gcse): Do not run
4832         purge_builtin_constant_p.
4833         (rest_of_compilation): Update.
4834         Do not call copy_loop_headers.
4835         Do rtl-based profiling only when
4836         !flag_tree_based_profiling.  Register rtl-based profiling
4837         hooks.
4838         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4839         (predicted_by_p): Rename to ...
4840         (rtl_predicted_by_p): .. this one; make global
4841         (tree_predicted_by_p): New.
4842         (dump_prediction): Add FILE argument.
4843         (predict_edge): Rename to ...
4844         (rtl_predict_edge): .. this one.
4845         (tree_predict_edge): New.
4846         (combine_predictions_for_insn): Update calls of predict_edge.
4847         (predict_loops): Break out from ...
4848         (estimate_probability): ... here; update comments; move updating
4849         of unknown probabilities from ...
4850         (estimate_bb_frequencies): ... here.
4851         (combine_predictions_for_bb): New.
4852         (tree_predict_by_opcode): New.
4853         (tree_estimate_probability): New.
4854         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4855         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4856         * predict.h: Add include guard.
4857         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4858         * pretty-print.c (pp_write_text_to_stream): Make extern.
4859         * pretty-print.h (pp_write_text_to_stream): Declare.
4860         * print-rtl.c (print_rtx): Don't print the integrated flag.
4861         Print the return_val flag.
4862         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4863         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4864         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4865         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4866         * profile.c: Include cfghooks.h, tree-flow.h.
4867         (profile_hooks): New.
4868         (profile_dump_file): New.
4869         (instrument_edges): Use hooks instead of RTL-specific code.
4870         (instrument_values): Ditto.
4871         (get_exec_counts): Ditto.
4872         (compute_branch_probabilities): Ditto.
4873         (compute_value_histograms): Ditto.
4874         (branch_prob): Ditto.
4875         (find_spanning_tree): Ditto.
4876         (end_branch_prob): Ditto.
4877         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4878         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4879         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4880         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4881         (tree_register_profile_hooks): New.
4882         (rtl_register_profile_hooks): New.
4883         * ra-rewrite.c (rewrite_program): Clear variable info.
4884         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4885         * regs.h: Add include guards.
4886         * reload.c (decompose): Clear val using memset.
4887         * rtl.def (CONSTANT_P_RTX): Remove.
4888         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4889         (copy_loop_headers): Remove.
4890         (struct rtx_def): Replace the integrated flag with the
4891         return_val flag.
4892         (maybe_set_first_label_num): Declare.
4893         (init_branch_prob): Move declaration to value-prof.h.
4894         (end_branch_prob): Ditto.
4895         (branch_prob): Ditto.
4896         (never_reached_warning): Don't declare it.
4897         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4898         (hoist_insn_to_edge): Update to match field insns in
4899         struct edge_def.
4900         * sbitmap.c (sbitmap_realloc): New.
4901         * sbitmap.h (sbitmap_realloc): Declare.
4902         * sibcall.c: Remove file.
4903         * simplify-rtx.c (simplify_rtx): Do not handle
4904         CONSTANT_P_RTX.
4905         * stmt.c (parse_output_constraint): Don't warn for read-write
4906         memory operand.
4907         (tail_recursion_args): Use types_compatible_p langhook.
4908         (force_label_rtx): Don't look at inline_function_decl.
4909         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4910         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4911         (declare_nonlocal_label): Remove.
4912         (expand_goto): Don't handle nonlocal gotos.
4913         (expand_nl_handler_label): Remove.
4914         (expand_nl_goto_receivers): Remove.
4915         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4916         update_nonlocal_goto_save_area.
4917         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4918         (warn_if_unused_value): Likewise.
4919         (expand_start_loop, expand_loop_continue_here,
4920         expand_end_loop): Don't create loop notes.
4921         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4922         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4923         (expand_end_case_type): Don't do warn_switch handling.
4924         (pushcase, pushcase_range) Update add_case_node calls.
4925         (add_case_node): Add dont_expand_label argument.
4926         (same_case_target_p): Don't search rtl.
4927         (expand_start_bindings_and_block, expand_end_bindings):
4928         Don't emit block notes when dont_emit_block_notes.
4929         (using_eh_for_cleanups_p): Export.
4930         (expand_return): Allow any typed rhs.
4931         (expand_stack_alloc): New.
4932         (expand_stack_save, expand_stack_restore): New.
4933         (containing_blocks_have_cleanups_or_stack_level): New
4934         function.
4935         (asm_op_is_mem_input): New fn.
4936         (expand_asm_expr): New fn.
4937         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4938         nodes.
4939         * stor-layout.c (layout_type): Just return if type is
4940         error_mark_node.
4941         (update_alignment_for_field): Export.
4942         (variable_size): We don't care about global_bindings_p if
4943         the frontend doesn't want a list of the expressions.
4944         * system.h: Poison INTEGRATE_THRESHOLD.
4945         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4946         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4947         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4948         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4949         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4950         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4951         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4952         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4953         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4954         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4955         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4956         TV_CONTROL_DEPENDENCES): Define.
4957         * toplev.c: Include tree-alias-common.h
4958         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4959         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4960         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4961         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4962         flag_tree_combine_temps, flag_tree_ter,
4963         flag_tree_live_range_split, flag_tree_dom,
4964         flag_tree_copyrename, flag_tree_dse): Declare.
4965         (f_options): Add tree-based-profiling, tree-gvn,
4966         tree-pre, tree-ccp, tree-dce,
4967         tree-dominator-opts, tree-copyrename, tree-dse,
4968         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4969         (wrapup_global_declarations): Don't output nested inlined functions.
4970         (general_init): Call init_tree_optimization_passes.
4971         (process_options): Sorry for -ftree-based-profiling plus
4972         -ftest-coverage or -fprofile-values.
4973         * toplev.h (init_tree_optimization_passes,
4974         flag_tree_based_profiling): Declare.
4975         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4976         * tree-alias-ander.c: New file.
4977         * tree-alias-ander.h: New file.
4978         * tree-alias-common.c: New file.
4979         * tree-alias-common.h: New file.
4980         * tree-alias-type.c: New file.
4981         * tree-alias-type.h: New file.
4982         * tree-browser.c: New file.
4983         * tree-browser.def: New file.
4984         * tree-cfg.c: New file.
4985         * tree-complex.c: New file.
4986         * tree-dfa.c: New file.
4987         * tree-dump.c (dump_enable_all): New.
4988         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4989         (dump_node): Remove const from field suffix and swtch.
4990         (dump_files): Add null entry, .generic, .nested, .vcg,
4991         .xml and a match-all entry.
4992         (extra_dump_files, extra_dump_files_in_use,
4993         extra_dump_files_alloced): Declare
4994         (dump_option_value_info): Add raw, details, stats,
4995         blocks, vops, lineno, uid and all.
4996         (dump_register): New.
4997         (get_dump_file_info): New.
4998         (dump_begin): Call it.
4999         Do nothing for TDI_none.
5000         (dump_begin): Include phase number in dump filename.
5001         (dump_enable_all): New.
5002         (dump_switch_p_1): Split out from dump_switch_p.
5003         (dump_switch_p): Handle extra_dump_files.
5004         Start our scan at TDI_none + 1.
5005         If -fdump-tree-all was given, call dump_enable_all.
5006         * tree-dump.h: Include splay-tree.h.
5007         (dump_function, dump_function_to_file, dump_register):
5008         Declare.
5009         * tree-eh.c: New file.
5010         * tree-flow-inline.h: New file.
5011         * tree-flow.h: New file.
5012         * tree-inline.c: Re-write to handle inlining on GIMPLE.
5013         * tree-inline.h (walk_tree,
5014         walk_tree_without_duplicates): Move to tree.h.
5015         (estimate_num_insns): Declare.
5016         * tree-into-ssa.c: New file.
5017         * tree-iterator.c: New file.
5018         * tree-iterator.h: New file.
5019         * tree-mudflap.c: New file.
5020         * tree-mudflap.h: New file.
5021         * tree-nested.c: New file.
5022         * tree-nomudflap.c: New file.
5023         * tree-nrv.c: New file.
5024         * tree-optimize.c (dump_flags, vars_to_rename,
5025         in_gimple_form, all_passes, pass_gimple,
5026         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
5027         (execute_gimple, execute_rebuild_bind,
5028         gate_all_optimizations, execute_del_cfg,
5029         register_one_dump_file, register_dump_files, dup_pass_1,
5030         init_tree_optimization_passes, execute_todo,
5031         execute_one_pass, execute_pass_list): New.
5032         (clear_decl_rtl): Remove.
5033         (tree_rest_of_compilation): Update to use tree
5034         optimizers.
5035         * tree-outof-ssa.c: New file.
5036         * tree-pass.h: New file.
5037         * tree-phinodes.c: New file.
5038         * tree-pretty-print.c: New file.
5039         * tree-profile.c: New file.
5040         * tree-simple.c: New file.
5041         * tree-simple.h: New file.
5042         * tree-sra.c: New file.
5043         * tree-ssa-alias.c: New file.
5044         * tree-ssa-ccp.c: New file.
5045         * tree-ssa-copy.c: New file.
5046         * tree-ssa-copyrename.c: New file.
5047         * tree-ssa-dce.c: New file.
5048         * tree-ssa-dom.c: New file.
5049         * tree-ssa-dse.c: New file.
5050         * tree-ssa-forwprop.c: New file.
5051         * tree-ssa-live.c: New file.
5052         * tree-ssa-live.h: New file.
5053         * tree-ssa-loop.c: New file.
5054         * tree-ssa-operands.c: New file.
5055         * tree-ssa-operands.h: New file.
5056         * tree-ssa-phiopt.c: New file.
5057         * tree-ssa-pre.c: New file.
5058         * tree-ssa.c: New file.
5059         * tree-ssanames.c: New file.
5060         * tree-tailcall.c: New file.
5061         * tree.c: Include tree-iterator.h, basic-block.h and
5062         tree-flow.h.
5063         (tree_node_kind): Add phi_nodes and ssa names.
5064         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
5065         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
5066         (make_node_stat): Handle PHI_NODE and SSA_NAME.
5067         <'c'> Set TREE_INVARIANT.
5068         (copy_node_stat): Abort if trying to copy a
5069         STATEMENT_LIST.
5070         Clear TREE_VISITED.
5071         Clear annotation field.
5072         (build_constructor): Copy TREE_INVARIANT from vals.
5073         Don't clear TREE_CONSTANT.
5074         (expr_first, expr_last, expr_length): Remove.
5075         (staticp): Pass unknown component references to the language.
5076         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
5077         (skip_simple_arithmetic): Likewise.
5078         (stabilize_reference_1): Likewise.
5079         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
5080         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
5081         STATEMENT_LIST.
5082         (lhd_unsave_expr_now): Remove.
5083         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
5084         (recompute_tree_invarant_for_addr_expr): New.
5085         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
5086         Call recompute_tree_invarant_for_addr_expr.
5087         Set TREE_INVARIANT accordingly.
5088         (build2_stat): Don't handle CALL_EXPR.
5089         (build3_stat): Don't call build2_stat for CALL_EXPRs.
5090         (build_expr_wfl): Remove.
5091         (annotate_with_file_line, annotate_with_locus): New.
5092         (simple_cst_equal): Call simple_cst_list_equal to compare
5093         CONSTRUCTOR_ELTS pointers.
5094         (iterative_hash_expr): Don't hash types associated
5095         with conversions.  Instead hash on the signedness of the
5096         toplevel object and the operand of the conversion.
5097         (dump_tree_statistics): Call ssanames_print_statistics
5098         and phinodes_print_statistics.
5099         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
5100         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
5101         needs_to_live_in_memory): New.
5102         (initializer_zerop): Handle VECTOR_CST.  Don't check
5103         AGGREGATE_TYPE_P for CONSTRUCTOR.
5104         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
5105         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
5106         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
5107         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
5108         (CALL_EXPR): Add another operand.
5109         (EXPR_WITH_FILE_LOCATION): Remove.
5110         (SWITCH_EXPR): Add another operand.
5111         * tree.h: Update various comments.
5112         (union tree_ann_d): Forward declare.
5113         (struct tree_common): Add fields nowarning_flag,
5114         invariant_flag and visited.
5115         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
5116         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
5117         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5118         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5119         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5120         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5121         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5122         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5123         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5124         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5125         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5126         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5127         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5128         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5129         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5130         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5131         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5132         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5133         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5134         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5135         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5136         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5137         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5138         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5139         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5140         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5141         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5142         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5143         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5144         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5145         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5146         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5147         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5148         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5149         TDF_UID,): Define.
5150         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5151         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5152         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5153         EXPR_WFL_SET_LINECOL): Remove.
5154         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5155         make_phi_node, init_phinodes, fini_phinodes,
5156         release_phi_node, phinodes_print_statistics,
5157         init_ssanames, fini_ssanames, make_ssa_name,
5158         release_ssa_name, ssanames_print_statistics,
5159         annotate_with_file_line, build_empty_stmt,
5160         annotate_with_locus, expr_only, categorize_ctor_elements,
5161         count_type_elements, add_var_to_bind_expr, is_essa_node,
5162         expand_stack_alloc, expand_stack_save,
5163         expand_stack_restore, add_case_node, operand_equal_p,
5164         nondestructive_fold_unary_to_constant,
5165         nondestructive_fold_binary_to_constant,
5166         fold_read_from_constant_string, int_const_binop,
5167         strip_float_extensions, simplify_builtin, c_strlen,
5168         recompute_tree_invarant_for_addr_expr,
5169         needs_to_live_in_memory, make_vector,
5170         setjmp_vars_warning, update_alignment_for_field,
5171         expand_asm_expr, asm_op_is_mem_input,
5172         containing_blocks_have_cleanups_or_stack_level,
5173         create_artificial_label, gimplify_function_tree,
5174         get_name, unshare_expr, walk_tree,
5175         walk_tree_without_duplicates, in_gimple_form): Declare.
5176         (struct tree_exp): Add fields locus and block.
5177         (struct tree_ssa_name, struct edge_def, struct
5178         tree_phi_node, struct tree_eref_common, struct
5179         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5180         union alias_var_def, struct tree_statement_list_node,
5181         struct tree_statement_list, enum operand_equal_flag): Declare.
5182         (enum tree_node_structure_enum): Add TS_SSA_NAME,
5183         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5184         TS_STATEMENT_LIST.
5185         (union tree_node): Add fields ssa_name, phi, eref, ephi,
5186         euse and stmt_list.
5187         (function_cannot_inline_p, uninitialized_vars_warning,
5188         save_for_inline, output_inline_function, all_cases_count,
5189         check_for_full_enumeration_handling,
5190         declare_nonlocal_label): Remove.
5191         (enum tree_dump_index): Add TDI_none, TDI_tu,
5192         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5193         * unroll.c (unroll_loop): Don't clear map->inline_target.
5194         * unwind-sjlj.c (uw_install_context): Make a proper static inline
5195         function.
5196         * value-prof.c (value_prof_hooks): New.
5197         (find_values_to_profile): Rename to rtl_find_values_to_profile.
5198         Move rtl-specific bits in from branch_prob.
5199         (value_profile_transformations): Rename to
5200         rtl_value_profile_transformations.
5201         (struct value_prof_hooks): New.
5202         (rtl_value_prof_hooks): New.
5203         (rtl_register_value_prof_hooks): New.
5204         (tree_find_values_to_profile): New stub.
5205         (tree_value_profile_transformations): New stub.
5206         (tree_value_prof_hooks): New stub.
5207         (tree_register_value_prof_hooks): New stub.
5208         (find_values_to_profile): New.
5209         (value_profile_transformations): New.
5210         * value-prof.h: Add multiple inclusion guard.
5211         (struct histogram_value): Change rtx fields to void *.
5212         (rtl_register_value_prof_hooks): New declaration.
5213         (tree_register_value_prof_hooks): New declaration.
5214         (find_values_to_profile): New declaration.
5215         (free_profiled_values): New declaration.
5216         (value_profile_transformations): New declaration.
5217         (struct profile_hooks): New declaration.
5218         (init_branch_prob): Declaration moved from rtl.h.
5219         (branch_prob): Declaration moved from rtl.h.
5220         (end_branch_prob): Declaration mooved from rtl.h.
5221         (tree_register_profile_hooks): New declaration.
5222         (rtl_register_profile_hooks): New declaration.
5223         (tree_profile_hooks): New declaration.
5224         (rtl_profile_hooks): New declaration.
5225         * varasm.c: Include tree-mudflap.h.
5226         (TRAMPOLINE_ALIGNMENT): Remove.
5227         (make_decl_rtl): Call mudflap_enqueue_decl.
5228         (assemble_static_space):
5229         (assemble_trampoline_template): Set and return
5230         TRAMPOLINE_ALIGNMENT.
5231         * varray.c (element): Add GENERIC_PTR_NOGC entry.
5232         Add entry for 'tree *'.
5233         Add entry for struct edge_def *.
5234         (varray_copy): New.
5235         * varray.h (enum varray_data_enum): Add
5236         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5237         VARRAY_DATA_TREE_PTR.
5238         (union varray_data_tag): Corresponding changes.
5239         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5240         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5241         VARRAY_EDGE, VARRAY_TREE_PTR,
5242         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5243         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5244         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5245
5246         * config/*/*: Various updates for changed macros, tree
5247         codes, etc.  Check ChangeLog.tree-ssa.
5248
5249         * doc/cfg.texi: New file.
5250         * doc/tree-ssa.texi: New file.
5251         * doc/c-tree.texi: Document new codes.
5252         * doc/gccint.texi: Include new files.
5253         * doc/install.texi: Document new features.
5254         * doc/invoke.texi: Document new switches.
5255         * doc/passes.texi: Document new passes.
5256         * doc/rtl.texi: Update changed RTL codes.
5257         * doc/sourcebuild.texi: Update build instructions.
5258         * doc/standards.texi: Document Fortran changes.
5259         * doc/tm.texi: Update.
5260
5261 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
5262
5263         Replace several arrays with a struct of arrays.
5264         * combine.c (struct reg_stat): New.
5265         (init_reg_last_arrays): Renamed to...
5266         (init_reg_last): ...this.  Callers adjusted.
5267         (reg_stat): New.
5268         (combine_instructions): Allocate it and use it.
5269         (reg_last_death, reg_last_set, reg_last_set_value,
5270         reg_last_set_label, reg_last_set_table_tick,
5271         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5272         reg_last_set_mode, reg_last_set_nonzero_bits,
5273         reg_last_set_sign_bit_copies): Replace throughout
5274         with items of reg_stat.
5275
5276 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5277
5278         PR optimization/15100
5279         * combine.c (distribute_notes): Don't create a dangling
5280         REG_LIBCALL/REG_RETVAL note.
5281
5282 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5283
5284         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5285
5286         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5287         negv2si2.
5288
5289 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
5290
5291         * doc/md.texi (Standard Names): Fix typo in vec_init description.
5292
5293 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
5294
5295         * doc/gty.texi (GTY Options): Clarify example.
5296
5297 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
5298
5299         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5300         Add const qualifier to altivec vector type if one is needed.
5301
5302 2004-05-11  Paul Brook  <paul@codesourcery.com>
5303
5304         * flags.h (flag_short_enums): Update comment.
5305         * opts.c (decode_options): Set flag_short_enums to 2.
5306         * toplev.c (flag_short_enums): Update comment.
5307         (process_options): Call default_short_enums target hook.
5308
5309 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
5310
5311         PR target/14063
5312         * config/rs6000/altivec.md (altivec_dssall):
5313         Change to unspec_volatile.
5314         (altivec_dss): Likewise.
5315
5316 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
5317
5318         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5319         vnor.
5320         ("one_cmplv8hi2"): Same.
5321         ("one_cmplv4si2"): Same.
5322
5323 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5324
5325         PR target/15130
5326         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5327         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5328         into account.  Compute the correct number of general registers
5329         for the return value.  Generate a special push/pop sequence when
5330         failing to get a temporary register for non SHmedia epilogue.
5331         (sh_expand_epilogue): Add an argument to show whether it's for
5332         sibcall or not.  Set the 3rd argument of output_stack_adjust to
5333         -1 if needed.
5334         (sh_need_epilogue): Call sh_expand_epilogue with 0.
5335         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5336         with 1.
5337         (epilogue): Call sh_expand_epilogue with 0.
5338
5339 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
5340
5341         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5342         goto a cleanup label.  After the cleanup, free the allocated memory.
5343
5344 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
5345
5346         * config/rs6000/altivec.h (vec_sld): Add overloads for
5347         argument/return types of 'vector bool int', 'vector bool short'
5348         and 'vector bool char'.
5349
5350 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
5351
5352         * c-decl.c (store_parm_decls_newstyle): Correct test for a
5353         nested function.
5354
5355 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
5356
5357         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5358         treating missing ones as "".
5359         * config/mips/mips.md: Remove constraints from match_operands and
5360         match_scratches if they appear in define_expands (except reload*),
5361         define_peephole2s, define_splits or attribute specifications.
5362         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5363         constraint strings.
5364
5365 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5366
5367         * config/rs6000/rs6000.c (function_arg_boundary): Always align
5368         AltiVec vectors.
5369         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5370         vectors by refererence.  Align the same for TARGET_64BIT to a 16
5371         byte boundary.  Remove useless code.  Add function comment.
5372         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
5373         call to where it belongs.
5374         (function_arg_partial_nregs): Return true for all TARGET_32BIT
5375         -mabi=no-altivec AltiVec vectors.  Fix debug output.
5376         (rs6000_va_arg): Adjust for AltiVec change.
5377
5378 2004-05-10  Paul Brook  <paul@codesourcery.com>
5379
5380         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5381         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5382         (TARGET_DOUBLEWORD_ALIGN): Use it.
5383         (WCHAR_TYPE): Define.
5384         (WCHAR_SIZE_TYPE): Define.
5385         (SIZE_TYPE): Define.
5386
5387 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
5388
5389         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5390         when size is 8 bytes.
5391         (function_arg_advance): Account for stack space used by AltiVec
5392         args when -mabi=altivec.  Simplify alignment calculations.  For
5393         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5394         (function_arg): Similarly.
5395         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5396         not AltiVec ABI.
5397         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
5398         Correct alignment, and align before testing reg count.  Remove
5399         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5400         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5401         TARGET_FPRS here..
5402         (rs6000_function_value): .. not here before call.
5403
5404 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5405
5406         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5407
5408 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5409
5410         PR 15007
5411         * c-decl.c (current_file_decl): Rename to all_translation_units,
5412         adjust comment.
5413         (pop_scope): If popping file_scope, construct a
5414         TRANSLATION_UNIT_DECL and make it the context of all the
5415         symbols in the scope.
5416         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5417         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5418         anything to current_file_decl.
5419         (pushdecl_top_level): Likewise.
5420         (store_parm_decls_newstyle): Adjust check for nested function.
5421         (c_write_global_declarations): Update for renamed variable.
5422
5423 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5424
5425         * config/rs6000/rs6000-protos.h
5426         (rs6000_conditional_register_usage): Protoize.
5427
5428         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5429
5430         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5431         function.
5432
5433 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5434
5435         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5436         where op is a comparison operator and C1 and C2 are integer constants
5437         into a range check.
5438         (fold): Call fold_div_compare.
5439
5440 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5441
5442         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5443         problems with earlier versions of the GNU compiler.
5444
5445 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5446
5447         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5448         Declare.
5449
5450         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5451         (rs6000_hard_regno_mode_ok): New.
5452         (rs6000_init_hard_regno_mode_ok): New.
5453         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5454
5455         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5456         result.
5457
5458 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5459
5460         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5461         define as macros #ifdef __APPLE_ALTIVEC__.
5462
5463 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5464
5465         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5466         Generate appropriate parallels for vector arguments
5467         passed to vararg functions. (function_arg): make the call
5468         to rs6000_mixed_function_arg for vector args as needed.
5469
5470 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5471
5472         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5473         EABI_FLOAT_VARARGS_P.
5474
5475 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5476
5477         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5478         * config/mips/mips.c (override_options): Disable branch likely
5479         instructions if TUNE_MIPS5500.
5480
5481 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5482
5483         * config/mips/mips.c (override_options): Allow the hi and lo registers
5484         to store any integral mode, not just MODE_INTs.
5485
5486 2004-05-07  Paul Brook  <paul@codesourcery.com>
5487
5488         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5489         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5490         (TARGET_DOUBLEWORD_ALIGN): Use it.
5491         (WCHAR_TYPE): Define.
5492         (WCHAR_SIZE_TYPE): Define.
5493         (SIZE_TYPE): Define.
5494
5495 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5496
5497         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5498         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5499
5500 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5501
5502         * loop-doloop.c (doloop_valid_p): Make sure that body
5503         gets freed.
5504
5505 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5506
5507         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5508         declaration.
5509         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5510         (sparc_skip_caller_unimp): New global variable.
5511         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5512         Use it instead of SKIP_CALLERS_UNIMP_P.
5513         * config/sparc/sparc.md (call expander): Add sanity check.
5514         (call_address_struct_value_sp32): Re-sync with expander.
5515         (call_symbolic_struct_value_sp32): Likewise.
5516         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5517         of custom predicate.
5518
5519 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5520
5521         PR c++/14962
5522         * c-pragma.c (handle_pragma_redefine_extname): Only change
5523         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5524
5525 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5526
5527         * optabs.h (enum optab_index): Add new OTI_log1p.
5528         (log1p_optab): Define corresponding macro.
5529         * optabs.c (init_optabs): Initialize log1p_optab.
5530         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5531         patterns.
5532         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5533         using log1p_optab.
5534         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5535         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5536
5537         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5538
5539         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5540         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5541         Prototype here.
5542         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5543         x87's fyl2xp1 instruction.
5544         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5545         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5546         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5547         log1p  and log1pl built-ins as inline x87 intrinsics.
5548
5549 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5550
5551         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5552         * config/arm/freebsd.h: Likewise.
5553         * config/ia64/freebsd.h: Likewise.
5554         * config/sparc/freebsd.h: Likewise.
5555
5556 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5557
5558         PR optimization/15296
5559         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5560         getting last consecutive label at a branch.
5561         (relax_delay_slots): Similar, near top of loop.
5562
5563 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5564
5565         PR target/15202
5566         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5567         register to general register.
5568
5569 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5570
5571         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5572         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5573         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5574         (STACK_BOUNDARY): Delete.
5575
5576 2004-05-06  Stuart Hastings  <stuart@apple.com>
5577
5578         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5579         mistakenly clobbered by 1.423.
5580
5581 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5582
5583         * doc/invoke.texi: Document -mvr4130-align.
5584         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5585         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5586         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5587         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5588         * config/mips/mips.md: Include sched-int.h.
5589         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5590         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5591         (override_options): Enable -mvr4130-align at -O3 and above.
5592         (mips_sim_insn): New variable.
5593         (mips_sim): New structure.
5594         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5595         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5596         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5597         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5598         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5599         (mips_reorg): Call vr4130_align_insns.
5600         (vr4130_last_insn): New variable.
5601         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5602         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5603         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5604         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5605         (mips_use_dfa_pipeline_interface): Return true for the same.
5606         * config/mips/4130.md: New file.
5607         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5608         "mult;mflo" into "mtlo;macc".
5609         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5610         target of maccs.
5611         (*msac_using_macc): New pattern.
5612
5613 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5614
5615         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5616         (ir_vr55_hilo): Split into...
5617         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5618         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5619         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5620         Add various multiplication bypasses.
5621         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5622         multiplication.
5623
5624 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5625
5626         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5627         attribute to "XF".
5628
5629 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5630
5631         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5632         (fmod_optab, drem_optab): Define corresponding macros.
5633         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5634         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5635         using fmod?f3 and drem?f3 patterns.
5636         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5637         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5638         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5639         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5640         flag_unsafe_math_optimizations is set.
5641
5642         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5643         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5644
5645         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5646         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5647         Prototype here.
5648         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5649         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5650         fprem and fprem1 instructions.
5651         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5652         Rename insn definition to x86_fnstsw_1.
5653         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5654         x87 instructions.
5655         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5656         and fmodl built-ins as inline x87 intrinsics.
5657         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5658         and dreml built-ins as inline x87 intrinsics.
5659
5660 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5661
5662         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5663
5664 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5665
5666         PR driver/9822
5667         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5668
5669 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5670
5671         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5672         representation.
5673
5674 2004-05-06  Paul Brook  <paul@codesourcery.com>
5675
5676         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5677         (arm_coproc_mem_operand): ... To this.
5678         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5679         (arm_legitimate_index_p): Ditto.
5680         (vfp_mem_operand): Rename ...
5681         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5682         (vfp_secondary_reload_class): Use it.
5683         (output_move_double): Use doubleword load/store instructions.
5684         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5685         * config/arm/arm.h (TARGET_LDRD): Define.
5686         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5687         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5688         New splitter for invalid doubleword loads.
5689         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5690         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5691         * doc/md.texi: Document Uy constraint.
5692
5693 2004-05-05  Jan Hubicka  <jh@suse.cz>
5694
5695         PR opt/14980
5696         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5697         inline clones.
5698
5699 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5700
5701         PR target/15290
5702         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5703         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5704
5705 2004-05-05  Mike Stump  <mrs@apple.com>
5706
5707         * config/darwin-c.c (add_framework): Copy the directory name as it
5708         can be freed later.  Also, ensure we always allocate enough room
5709         for the cached framework information.
5710         (find_subframework_header): Keep track of the directory where the
5711         subframework header was found.
5712         (framework_construct_pathname): Speed up by not trying to re-add a
5713         framework.
5714         * cppfiles.c (search_path_exhausted): Arrange for the missing
5715         header callback to be able to set the directory where the header
5716         was found.
5717         (cpp_get_dir): Add.
5718         * cpplib.h (missing_header_cb): Add a parameter.
5719         (cpp_get_dir): Add.
5720
5721 2004-05-03  Mike Stump  <mrs@apple.com>
5722
5723         * doc/invoke.texi (Directory Options): Document -iquote.
5724         * doc/cpp.texi: Likewise.
5725         * doc/cppopts.texi: Likewise.
5726         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5727         (c_common_handle_option): Likewise.
5728         * c.opt (iquote): Add.
5729         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5730         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5731
5732         * c-opts.c (case OPT_I): Deprecate -I- support.
5733         * doc/invoke.texi: Likewise.
5734         * doc/cpp.texi: Likewise.
5735         * doc/cppopts.texi: Likewise.
5736
5737 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5738
5739         * basic-block.h (free_basic_block_vars): Update prototype.
5740         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5741         argument.
5742         (life_analysis): Update call.
5743         * ifcvt.c (if_convert): Likewise.
5744         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5745         * passes.c (rest_of_handle_final): Likewise.
5746         (rest_of_compilation): Likewise.
5747         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5748
5749         * emit-rtl.c (next_real_insn): Use INSN_P.
5750         (prev_real_insn): Likewise.
5751
5752 2004-05-05  Eric Christopher  <echristo@redhat.com>
5753
5754         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5755         representation.
5756
5757 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5758
5759         * config/rs6000/rs6000.c (build_opaque_vector_type):
5760         New function.
5761         (rs6000_init_builtins): Use it.
5762
5763 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5764
5765         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5766         (func_table): Change type from char ** to vms_func_ref.
5767         (write_rtnbeg):  Update to reflect func_table change.  Use
5768         fde->funcdef_number instead of rtnnum in output.
5769         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5770
5771 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5772             Richard Henderson  <rth@redhat.com>
5773
5774         PR target/14899
5775
5776         * c-common.c (vector_types_convertible_p): New function.
5777         * c-typeck.c (comptypes): Recurse on vector types.
5778         (convert_for_assignment): Use vector_types_convertible_p.
5779         (digest_init): Use vector_types_convertible_p to check
5780         validness of constant vector initializers; otherwise treat
5781         them as scalars.
5782         * tree.c (make_or_reuse_type): New.
5783         (build_common_tree_nodes): Use it.
5784         * cp/call.c (standard_conversion): Likewise.
5785         * cp/typeck.c (comptypes): Recurse on vector types.
5786         (convert_for_assignment): Use vector_types_convertible_p.
5787
5788 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5789
5790         * config/mips/mips.c (override_options): Default to no
5791         generation of branch-likely operations when tuning for
5792         CPUs where they tend to have a negative performance impact
5793         (e.g., SB-1).
5794
5795 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5796
5797         * expr.c (store_constructor_field): Don't call store_constructor
5798         if bitsize is not a multiple of a byte.
5799
5800 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5801
5802         * reload1.c (inherit_piecemeal_p): New function.
5803         (emit_reload_insns): When reloading a group of hard registers, use
5804         inherit_piecemeal_p to decide whether the values of individual hard
5805         registers can be inherited.
5806
5807 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5808
5809         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5810         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5811         * config/t-linux (LIB2ADDEHDEP): Likewise.
5812
5813 2004-05-04  Paul Brook  <paul@codesourcery.com>
5814
5815         * config/arm/crti.asm: Push an even number of registers.
5816         * config/arm/crtn.asm: And restore them.  Load via sp.
5817
5818 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5819
5820         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5821         Collect overhead information.
5822         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5823         parameter and pass it through.
5824         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5825         MEM_STAT_DECL parameter and pass it through.
5826         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5827         MEM_STAT_DECL parameter and pass it through.
5828
5829 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5830
5831         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5832
5833         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5834
5835         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5836         rs6000_hard_regno_nregs.
5837
5838 2004-05-03  Eric Christopher  <echristo@redhat.com>
5839
5840         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5841         prologue insn instead of setting up call.
5842         (s390_emit_epilogue): Ditto.
5843         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5844         (define_constants): Add numbers for above patterns.
5845
5846 2004-05-03  Eric Christopher  <echristo@redhat.com>
5847
5848         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5849         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5850         * config/s390/s390-protos.h: Prototype.
5851
5852 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5853
5854         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5855         assignment.
5856
5857 2004-05-03  Eric Christopher  <echristo@redhat.com>
5858
5859         * config/mips/mips.md: Fix branch length attribute definition.
5860
5861 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5862
5863         * config.gcc: Remove --enable-altivec support.
5864
5865         * config/rs6000/altivec-defs.h: Remove.
5866
5867 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5868
5869         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5870         * fixinc/fixincl.x: Regenerate.
5871
5872 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5873
5874         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5875         definition.
5876         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5877         float_truncate insn.
5878         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5879         (logb?f2): Reimplement expanders with float_truncate insn.
5880
5881 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5882
5883         PR 14718
5884         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5885         force_type_die for CONST_DECL.
5886
5887 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5888             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5889
5890         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5891         tm-dwarf2.h to tm_file.
5892         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5893         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5894         (ASM_DEBUG_SPEC): Delete.
5895
5896 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5897
5898         * optabs.h (enum optab_index): Add new OTI_expm1.
5899         (expm1_optab): Define corresponding macro.
5900         * optabs.c (init_optabs): Initialize expm1_optab.
5901         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5902         patterns.
5903         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5904         using expm1_optab.
5905         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5906         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5907
5908         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5909         to implement expm1, expm1f and expm1l built-ins as inline x87
5910         intrinsics.
5911
5912 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5913
5914         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5915         * config/frv/frv.md (*return_true, *return_false): New patterns.
5916
5917 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5918
5919         * rtl.h (PHI_NODE_P): Remove.
5920
5921 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5922
5923         PR middle-end/14988
5924         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5925         when passed -2 as 'align'.
5926         (put_var_into_stack): Use 'bool' as the type for the three local
5927         predicates.  Adjust calls to put_reg_into_stack.
5928         When passed a CONCAT, instruct put_reg_into_stack to use
5929         a consecutive stack slot for the second part.
5930         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5931         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5932         parameters.  Retrieve the register mode from 'reg'.
5933         When consecutive_p is true, instruct assign_stack_local_1 to use
5934         BITS_PER_UNIT alignment.
5935         (put_addressof_into_stack): Use 'bool' as the type for the two
5936         local predicates. Adjust call to put_reg_into_stack.
5937
5938 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5939
5940         * fold-const.c (fold_convert_const, fold): Add missing
5941         FIX_ROUND_EXPR case.
5942
5943 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5944
5945         * configure.ac (FLEX, BISON): Only use tools from the build tree
5946         if build equals host.
5947         * configure: Rebuilt.
5948
5949         * config/frv/frv-protos.h (frv_expand_epilogue,
5950         frv_expand_fdpic_call): Add bool argument.
5951         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5952         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5953         (frv_expand_epilogue): Use new argument to decide whether to emit
5954         return instruction or copy the return address to LR.
5955         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5956         sibcalls.
5957         (sibcall_operand): New.
5958         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5959         PLUS nor LABEL_REF.  Add sibcall_operand.
5960         * config/frv/frv.md (call, call_value): Pass false to
5961         frv_expand_fdpic_call.
5962         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5963         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5964         sibcall_value_internal, sibcall_value_fdpicdi): New.
5965         (return_unsigned_true, return_unsigned_false): New.
5966         (epilogue): Adjust call to frv_expand_epilogue.
5967         (sibcall_epilogue): New.
5968
5969         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5970         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5971         before redefining them.
5972
5973 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5974
5975         * builtins.c (fold_fixed_mathfn): New function.
5976         (fold_builtin_lround, fold_builtin): Use it.
5977
5978 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5979
5980         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5981         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5982
5983 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5984
5985         * config/cris/cris.h: Revert my "fix comment typos" patch.
5986
5987 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5988
5989         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5990
5991 2004-05-01  Falk Hueffner  <falk@debian.org>
5992
5993         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5994         builtin_insll): Disallow 0 as first input operand.
5995
5996 2004-05-01  Falk Hueffner  <falk@debian.org>
5997
5998         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5999
6000 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
6001
6002         PR middle-end/15054
6003         * expr.c (expand_expr_real): Do not call preserve_temp_slots
6004         on a TARGET_EXPR temp.
6005         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
6006         TARGET_EXPR temp slots.
6007
6008 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
6009
6010         * simplify-rtx.c (simplify_ternary_operation): When
6011         converting an IF_THEN_ELSE to a relational op, return
6012         correct mode.
6013
6014 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6015
6016         * builtins.c (fold_builtin_round): Fix comment typo.
6017         (fold_builtin_lround): New function.
6018         (fold_builtin): Use it.
6019
6020 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
6021
6022         PR target/11608
6023         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
6024         more like the one in config/dbxelf.h.
6025
6026 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
6027
6028         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
6029         and adjust definition accordingly.
6030         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
6031         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
6032         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
6033         VECTOR_TYPE.
6034
6035 2004-04-30  Jason Merrill  <jason@redhat.com>
6036
6037         PR c++/14587
6038         * config/i386/winnt.c (associated_type): Look for attributes on
6039         the TYPE_MAIN_VARIANT of *this.
6040         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
6041         apply the attributes to the variants.
6042
6043 2004-04-30  Paul Brook  <paul@codesourcery.com>
6044
6045         * config.gcc: Simplify arm --with-{cpu,tune} test.
6046         * config/arm/arm-cores.def: Document whitespace restrictions.
6047
6048 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6049
6050         PR other/1963
6051         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
6052
6053 2004-04-30  Brian Ford  <ford@vss.fsi.com>
6054             DJ Delorie  <dj@redhat.com>
6055
6056         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6057         (DWARF2_DEBUGGING_INFO): Define to enable.
6058         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
6059         DWARF2.
6060         * configure.ac (Target-specific assembler checks)
6061         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
6062         relocs.
6063         * configure: Regenerate.
6064         * config.in: Likewise.
6065
6066         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6067         (ASM_OUPUT_DWARF_OFFSET): Define.
6068
6069 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6070
6071         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
6072         (s390_emit_call): New function prototype added.
6073         (s390_tls_get_offset): Function removed.
6074         * config/s390/s390.c (s390_function_ok_for_sibcall,
6075         s390_call_saved_register_used_p): New functions.
6076         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
6077         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
6078         (s390_emit_tls_call_insn): New function.
6079         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
6080         emit_call_insn.
6081         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
6082         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
6083         added.
6084         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
6085         register number used to hold the target address for sibcalls.
6086         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
6087         New expanders.
6088         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
6089         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
6090         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
6091         Expanders removed.
6092         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
6093         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
6094         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
6095         ("epilogue"): Changed the call to s390_emit_epilogue to use the
6096         new parameter.
6097
6098 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
6099
6100         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
6101         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
6102         reg-stack.c, varasm.c, config/alpha/ev4.md,
6103         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
6104         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
6105         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
6106         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
6107         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
6108         config/ia64/itanium2.md, config/ip2k/ip2k.c,
6109         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
6110         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
6111         comment typos.
6112
6113 2004-04-30  Paul Brook  <paul@codesourcery.com>
6114
6115         * config.gcc: Default ep9312 to hard-float.
6116         * config/arm/arm-cores.def: Add ARCH field.
6117         * config/arm/arm.c (FL_FOR_ARCH*): Define.
6118         (arm_arch_cirrus): New variable.
6119         (all_cores): Set and use arch.
6120         (all_architectures): Ditto.
6121         (arm_arch_name): New variable.
6122         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6123         Set and use arm_arch_cirrus.
6124         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6125         (enum processor_type): Update ARM_CORE define.
6126         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
6127         (CPP_SPEC): Remove %(cpp_cpu_arch).
6128         (CPP_ARCH_DEFAULT_SPEC): Remove.
6129         (CPP_CPU_ARCH_SPEC): Remove.
6130         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6131         (FPUTYPE_DEFAULT): Don't define here.
6132
6133 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
6134
6135         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6136         updates too.
6137
6138 2004-04-30  Paul Brook  <paul@codesourcery.com>
6139
6140         * arm.c (arm_needs_doubleword_align): Use mode alignment.
6141
6142 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
6143
6144         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6145         vec_sububs.
6146         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6147         duplicates.
6148
6149 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6150
6151         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6152         atan2?f3 expanders.
6153
6154 2004-04-29  Nick Clifton  <nickc@redhat.com>
6155
6156         Bug 14093
6157         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6158         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6159         Delete static from definition.
6160         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6161
6162 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
6163
6164         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6165         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6166         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6167         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6168
6169 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
6170
6171         * commom.opt (Wfatal-errors): Add it.
6172         * diagnostic.c (flag_fatal_errors): Define it.
6173         (diagnostic_action_after_output): Check for flag_fatal_errors.
6174         * flags.h (flag_fatal_errors): Declare it.
6175         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6176         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6177
6178 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
6179
6180         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6181         blocks which have kill flag set.
6182
6183 2004-04-29  Ben Elliston  <bje@au.ibm.com>
6184
6185         * configure.ac (--with-as): Abort if user-supplied assembler
6186         cannot be executed.
6187         (--with-ld): Likewise for the linker.
6188         * configure: Regenerate.
6189
6190 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6191
6192         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6193         isn't NULL before using it.
6194
6195 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
6196
6197         PR target/15189
6198         * config/mips/mips.md (load_df_low): Use default length.
6199         (load_df_high, store_df_high): Likewise.
6200
6201 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6202
6203         * config/mips/mips.md, config/mips/sb1.md,
6204         config/rs6000/rs6000.c: Fix comment typos.
6205
6206 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
6207
6208         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6209         Fix comment typos.
6210
6211 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
6212
6213         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6214         (delete_if_ordinary): Use above macro.
6215         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6216         Update copyright.
6217         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6218
6219 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
6220
6221         * c-decl.c (get_parm_info): Use the correct tag keywords when
6222         warning about type declarations in prototypes.
6223
6224 2004-04-29  Paul Brook  <paul@codesourcery.com>
6225
6226         * config.gcc: Pull list of cores from arm-cores.def.
6227
6228 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6229
6230         * combine.c (combine_simplify_rtx): Adjust call to use
6231         simplify_relational_operation.  Do not use SELECT_CC_MODE
6232         when a comparison already has a MODE_CC mode.
6233
6234 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
6235
6236         (simplify_set): simplify_relational_operation may now
6237         return another relational expression.
6238         * cse.c (fold_rtx): simplify_relational_operation now
6239         takes of computing the comparison mode.
6240         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6241         remove dead code.
6242         (do_compare_rtx_and_jump): Likewise.
6243         * integrate.c (subst_constants): simplify_relational_operation
6244         may now return another relational expression.
6245         * simplify-rtx.c (simplify_gen_relational): Move most code to
6246         the new simplify_relational_operation and
6247         simplify_relational_operation_1 functions.
6248         (simplify_relational_operation): Rewritten.
6249         (simplify_relational_operation_1): New function.
6250         (simplify_ternary_operation): simplify_relational_operation
6251         may now return another relational expression.
6252         (simplify_rtx): Remove unnecessary temp variable.
6253
6254 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
6255
6256         * reg-stack.c (swap_to_top): New function.
6257         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6258         swap_to_top().
6259         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6260         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6261         UNSPEC_FSCALE_EXP.
6262
6263         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6264         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6265         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6266         x87's fscale insn.
6267         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6268         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6269         patterns.
6270
6271 2004-04-28  Serge Belyshev  <1319@bot.ru>
6272
6273         PR 14944
6274         * coverage.c (read_counts_file): Fix usage of warning () call.
6275         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6276
6277 2004-04-28  Ben Elliston  <bje@au.ibm.com>
6278
6279         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6280         options with "-" in the option index.
6281         (SPARC Options): Likewise.
6282         (M32R/D Options): Likewise.
6283
6284 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6285
6286         * convert.c (convert_to_integer): Convert (long)round -> lround,
6287         etc.
6288
6289 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
6290
6291         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6292         Return false if we do not have fp register.
6293         (addrs_ok_for_quad_peep): Rename to ...
6294         (mems_ok_for_quad_peep): this.
6295         Add check for volatile memory.
6296         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6297         Rename to ...
6298         (mems_ok_for_quad_peep): this.
6299         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6300         to peephole2's.
6301         (lfq_power2): New instruction.
6302         (stfq_power2): Likewise.
6303
6304 2004-04-28  Jan Hubicka  <jh@suse.cz>
6305
6306         PR c/15004
6307         * function.c (do_warn_unused_parameter): Break out form ...
6308         (expand_function_end): ... here; warn only when not using cgraphunit.
6309         * function.h (do_warn_unused_parameter): Declare.
6310         * cgraphunit.c: Include function.h.
6311         (cgraph_finalize_function): Do unused parameter warning.
6312         * Makefile.in (cgraphunit.o): Depend on function.h
6313
6314 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6315
6316         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6317         calling install-info on $(DESTDIR)$(infodir)/dir already being
6318         present.
6319
6320 2004-04-28  Paul Brook  <paul@codesourcery.com>
6321
6322         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6323
6324 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6325
6326         * gcse.c (find_moveable_store): Do not accept store insns with
6327         REG_EH_REGION note.
6328
6329 2004-04-28  Paul Brook  <paul@codesourcery.com>
6330
6331         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6332         * function.c (assign_temp): Ditto.
6333         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6334
6335 2004-04-28  Paul Brook  <paul@codesourcery.com>
6336
6337         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6338
6339 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
6340
6341         * var-tracking.c (variable_different_p): Add a parameter
6342         compare_current_location, compare current location of variable parts
6343         if it is true.
6344         (dataflow_set_different_1): Pass compare_current_location == false.
6345         (dataflow_set_different_2): Pass compare_current_location == false.
6346         (emit_notes_for_differences_1): Pass compare_current_location == true.
6347
6348 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
6349
6350         * config/s390/s390.md ("casesi"): Mark jump table access as
6351         non-trapping and unchanging.
6352
6353 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6354
6355         PR debug/14829
6356         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
6357         callers.
6358         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6359         number for indexing hard_regno_nregs array.
6360
6361 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
6362
6363         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6364         * config/darwin-crt2.c: Only have contents on __ppc__.
6365
6366 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
6367
6368         * config/xtensa/xtensa.c (call_insn_operand): Check
6369         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6370         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6371         * config/xtensa/xtensa.md (call, call_value): Likewise.
6372
6373 2004-04-27  Wu Yongwei  <adah@sh163.net>
6374
6375         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6376         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6377         (__gthread_mutex_init_function): Replace CreateMutex with
6378         initialization of custom mutex using CreateSemaphore.
6379         (__gthread_mutex_lock): Use InterlockedIncrement.
6380         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6381         (__gthread_mutex_unlock): Use InterlockedDecrement and
6382         ReleaseSemaphore to unlock
6383         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6384         __gthread_mutex_lock, __gthread_mutex_trylock,
6385         __gthread_mutex_unlock): Adjust to match inline versions in
6386         gthr-win32.h.
6387
6388 2004-04-27  Paul Brook  <paul@codesourcery.com>
6389
6390         * config/arm/arm.c (arm_promote_prototypes): New function.
6391         (TARGET_PROMOTE_PROTOTYPES): Use it.
6392
6393 2004-04-27  Paul Brook  <paul@codesourcery.com>
6394
6395         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6396
6397 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
6398
6399         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6400         correctly output .pdesc directive before .end.
6401
6402 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6403
6404         Bug 14927
6405         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6406         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6407
6408 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6409
6410         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6411         * config/pa/pa-hpux10.h: Likewise.
6412         * config/pa/pa-hpux11.h: Likewise.
6413
6414 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6415
6416         * doc/invoke.texi (Overall Options): Document default for -o
6417         for PCH files.
6418
6419 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6420
6421         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6422         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6423         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6424
6425 2004-04-26  Paul Brook  <paul@codesourcery.com>
6426
6427         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6428
6429 2004-04-26  Paul Brook  <paul@codesourcery.com>
6430
6431         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6432
6433 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6434
6435         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6436         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6437         X % -1 as 0.
6438
6439 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6440
6441         PR bootstrap/15141
6442         * except.c (connect_post_landing_pads): Delete insns after the
6443         barrier when generating a unwind_resume_libfunc call.
6444
6445 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6446
6447         PR/c++ 15119
6448         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6449         for TARGET_EXPR.
6450
6451 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6452
6453         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6454         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6455         inhibit_libc is defined.
6456
6457 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6458
6459         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6460         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6461         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6462         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6463         (mips_adjust_cost): Move later in file, next to other sched hooks.
6464         (mips_macc_chains_last_hilo): New variable.
6465         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6466         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6467         * config/mips/mips.md (may_clobber_hilo): New attribute.
6468
6469 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6470             Bruce Korb  <bkorb@gnu.org>
6471
6472         * fixinc/inclhack.def (aix_syswait_2): New fix.
6473         * fixinc/fixincl.x: Regenerate.
6474         * fixinc/tests/base/sys/wait.h: Update for new test.
6475
6476 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6477
6478         PR target/14960
6479         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6480         to non_fixed_size, and leave out fixed_size from the sum.
6481         (generate_set_vrsave): Correct clobbers.
6482         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6483         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6484         (rs6000_libcall_value): Likewise.
6485         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6486         (FUNCTION_ARG_REGNO_P): Likewise.
6487
6488 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6489
6490         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6491         is a CONST_INT.
6492         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6493         with NARROW_OP1 instead of OP1.
6494
6495 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6496
6497         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6498         and __s390x__ hosts.
6499
6500 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6501
6502         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6503         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6504         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6505         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6506         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6507         * builtins.c (expand_builtin_fork_or_exec): New.
6508         (expand_builtin): Call it.
6509         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6510         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6511         * c-common.c (PID_TYPE): New macro.
6512         (c_common_nodes_and_builtins): Initialize pid_type_node.
6513         * calls.c (special_function_p): Do not handle fork and exec.
6514         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6515         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6516         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6517         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6518         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6519         * tree.h (enum tree_index): Add TI_PID_TYPE.
6520         (pid_type_node): New macro.
6521         (ECF_FORK_OR_EXEC): Removed.
6522
6523 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6524
6525         PR optimization/13985
6526         * cfgloopmanip.c (fix_loop_placements): New prototype.
6527         Call fix_bb_placements on the preheader of loops that have
6528         been reparented.
6529         (remove_path): Adjust call to fix_loop_placements.
6530
6531 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6532
6533         * config/darwin7.h: New file.
6534         * config.gcc (*-*-darwin*): Add darwin7.h if the
6535         version is greater than 6.
6536         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6537         (MATH_LIBRARY): Wrap in ifdefs.
6538
6539 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6540
6541         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6542         loading iWMMXt registers with a frame pointer.  Use post-increment
6543         without a frame pointer.
6544         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6545
6546 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6547
6548         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6549         mode" rather than "-funit-at-a-time" since -O2 enables it
6550         without requiring -f* options.  Refer to -fprofile-generate and
6551         -fprofile-use correctly.  Move -funit-at-a-time among options
6552         enabled by -O.  Add information about unit-at-a-time caveats.
6553
6554 2004-04-22  Per Bothner  <per@bothner.com>
6555
6556         * line-map.h (struct line_maps):  New field highest_line.
6557         (linemap_position_for_column):  Make non-inline function.
6558         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6559         * line-map.c (linemap_init):  Clear highest_line field.
6560         (linemap_add):  Set highest_line field.
6561         (linemap_line_start):  Minor optimization - use highest_line field.
6562         Reduce maximum column hint to 10000.  Update highest_line field.
6563         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6564         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6565         line_table->highest_line.
6566         (saved_line):  Remove unused field.
6567         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6568         Use  line_table's highest_line field instead of cpp_reader's line.
6569         * cpplib.c (start_directive):  Likewise use highest_line field.
6570         (do_line, do_linemarker):  Likewise just use newest map.
6571         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6572         * cpperror.c (cpp_error):  Likewise use highest_line field.
6573         * cppfiles.c (open_file_failed:  Likewise.
6574         (cpp_make_system_header):  Likewise use newest map and highest_line.
6575         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6576         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6577         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6578         _cpp_lex_direct):  Likewise use highest_line.
6579         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6580         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6581         and use newest map.
6582         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6583         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6584         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6585
6586 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6587
6588         PR bootstrap/14992
6589         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6590         * config/linux.h (USE_LD_AS_NEEDED): Define.
6591         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6592         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6593         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6594         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6595         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6596         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6597         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6598
6599 2004-04-22  Per Bothner  <per@bothner.com>
6600
6601         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6602         Fixes PR preprocessor/15067.
6603
6604 2004-04-23  Andreas Schwab  <schwab@suse.de>
6605
6606         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6607         avoid aliasing warning.
6608
6609 2004-04-22  Jan Hubicka  <jh@suse.cz>
6610             Mostafa Hagog <mustafa@il.ibm.com>
6611
6612       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6613       * cfgloopanal.c (expected_loop_iterations): Change the return value
6614
6615 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6616
6617         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6618         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6619         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6620         traces.
6621
6622 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6623
6624         Revert
6625         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6626
6627                 * var-tracking.c (variable_part_different_p): Variable parts
6628                 differ when the most recent locations differ.
6629
6630 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6631
6632         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6633         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6634         (embedded_pic_offset): Delete.
6635         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6636         MASK_* constants.
6637         (TARGET_EMBEDDED_PIC): Delete.
6638         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6639         (ASM_SPEC): Remove -membedded-pic.
6640         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6641         (ASM_OUTPUT_CASE_LABEL): Likewise.
6642         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6643         * config/mips/windiss.h (ASM_SPEC): Likewise.
6644         * config/mips/mips.c (struct machine_function): Remove
6645         embedded_pic_fnaddr_rtx.
6646         (TARGET_ENCODE_SECTION_INFO): Remove override.
6647         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6648         (override_options): Remove -membedded-pic handling.
6649         (print_operand): Remove handling of '%S'.
6650         (mips_select_section: Remove -membedded-pic handling.
6651         (mips_encode_section_info): Delete.
6652         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6653         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6654         -membedded-pic handling.
6655         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6656
6657 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6658
6659         * var-tracking.c (frame_base_decl): Remove useless GTY.
6660
6661 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6662
6663         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6664         user wants altivec and e500 instructions.
6665
6666 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6667
6668         PR target/14813
6669         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6670         in .init_array section to ...
6671         * config/ia64/crtbegin.asm: Here.
6672
6673         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6674         and hidden if HAVE_INITFINI_ARRAY is defined.
6675
6676 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6677
6678         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6679         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6680         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6681         (fp_register_operand, lo_operand): New.
6682         (mips_rtx_costs): Add TUNE_SB1 support.
6683         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6684         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6685         (mips_multipass_dfa_lookahead): New.
6686         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6687         TUNE_SB1): New.
6688         (TARGET_SWITCHES): Add -mfp-exceptions support.
6689         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6690         (BRANCH_COST): Fix whitespace.
6691         * config/mips/mips.md: Include sb1.md.
6692         * config/mips/sb1.md: New file.
6693         * doc/invoke.texi: Document -mfp-exceptions.
6694
6695         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6696         comment.
6697         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6698         (fixincl.o-warn): Delete.
6699
6700 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6701
6702         * config/rs6000/rs6000 (print_operand) ['z']:
6703         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6704
6705 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6706
6707         * config.gcc: Support --with-arch=iwmmxt for ARM.
6708
6709 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6710
6711         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6712         in two more places; remove unneeded force_reg
6713
6714 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6715
6716         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6717         for TARGET_MACHO.
6718         (print_operand): For TARGET_MACHO check to see if we need a stub
6719         and output one if we need it.
6720
6721         PR debug/15033
6722         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6723         rtl.
6724
6725 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6726
6727         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6728         (vall_value_gp): Likewise.
6729
6730 2004-04-20  DJ Delorie  <dj@redhat.com>
6731
6732         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6733         variables stored in word registers, then in memory.
6734
6735 2004-04-20  Eric Christopher  <echristo@redhat.com>
6736
6737         * cp/parser.c (cp_parser_declaration): Move translate
6738         up before tokens are lexed.
6739
6740 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6741
6742         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6743         (asin_optab, acos_optab): Define corresponding macros.
6744         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6745         * genopinit.c (optabs): Implement asin_optab and acos_optab
6746         using asin?f2 and acos?f2 patterns.
6747         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6748         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6749         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6750         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6751
6752         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6753         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6754         acos, acosf and acosl built-ins as inline x87 intrinsics.
6755
6756 2004-04-20  Paul Brook  <paul@codesourcery.com>
6757
6758         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6759
6760 2004-04-20  Paul Brook  <paul@codesourcery.com>
6761
6762         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6763
6764 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6765
6766         Revert part of 2004-04-17 change that moved -frename-registers
6767         to -O1.  -frename-registers is buggy.
6768
6769         * toplev.c (flag_rename_registers): Initialize to 0.
6770         * doc/invoke.texi (Optimize options): Move -frename-registers
6771         to "Not triggered by any -O level" section.  Adjust commentary
6772         accordingly.
6773
6774 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6775
6776         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6777
6778 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6779
6780         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6781         for mflo and mfhi instructions.
6782         (mips_output_move): Remove mflo and mfhi handling.
6783         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6784         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6785         Likewise various define_peephole2s.
6786         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6787         alternatives.
6788         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6789         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6790         (mfhilo_di, mfhilo_si): New patterns.
6791
6792 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6793
6794         * function.c (assign_parms): Force
6795         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6796
6797 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6798
6799         * var-tracking.c (variable_part_different_p): Variable parts differ
6800         when the most recent locations differ.
6801
6802 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6803
6804         * rtl.h (reg_set_last): Delete declaration.
6805         * rtlanal.c (reg_set_last): Delete.
6806
6807 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6808
6809         * fold-const.c (fold_convert): Make function extern/public.
6810         * tree.h (fold_convert): Prototype here.
6811         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6812         expand_builtin_strrchr, expand_builtin_strpbrk,
6813         expand_builtin_mempcpy, expand_builtin_bcopy,
6814         expand_builtin_bzero, expand_builtin_memcmp,
6815         expand_builtin_strcmp, expand_builtin_strncmp,
6816         stabilize_va_list, expand_builtin_sprintf,
6817         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6818         fold_builtin_exponent, fold_builtin_mempcpy,
6819         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6820         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6821         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6822
6823 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6824
6825         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6826         (move_from_CR_gt_bit): New.
6827         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6828         E500.
6829         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6830         E500.
6831
6832         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6833         (tstsfeq_gpr): Same.
6834         (cmpsfgt_gpr): Same.
6835         (tstsfgt_gpr): Same.
6836         (cmpsflt_gpr): Same.
6837         (tstsflt_gpr): Same.
6838         (e500_cceq_ior_compare): New.
6839         (e500_flip_gt_bit): New.
6840
6841         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6842         (print_operand): Add 'c' and 'D'.
6843         (rs6000_generate_compare): Rewrite to generate correct rtl.
6844         (rs6000_emit_sCOND): Handle E500.
6845         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6846         (output_e500_flip_gt_bit): New.
6847
6848         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6849         Protoize.
6850
6851 2004-04-19  Eric Christopher  <echristo@redhat.com>
6852
6853         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6854
6855 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6856
6857         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6858         fix information.
6859
6860 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6861
6862         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6863         download URL.
6864
6865 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6866
6867         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6868         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6869
6870 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6871
6872         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6873         (fold_builtin): Update caller to match.
6874
6875         PR bootstrap/15009
6876         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6877
6878         PR bootstrap/14999
6879         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6880
6881 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6882
6883         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6884
6885         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6886         (expand_mult_highpart_optab): Likewise.
6887         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6888
6889 2004-04-19  Paul Brook  <paul@codesourcery.com>
6890
6891         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6892         floatunssisf2, floatunssidf2): New patterns.
6893
6894 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6895
6896         PR other/14918
6897         * doc/invoke.texi (-fprofile-generate): Document requirement to
6898         use -fprofile-generate when linking.
6899
6900         * doc/extend.texi (Strong Using): Warn users against using this
6901         feature.
6902
6903 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6904
6905         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6906         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6907         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6908         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6909         constant.  Propogate change throughout file.
6910         (struct machine_function): Remove insns_len.
6911         (mips_string_length, mips16_strings, string_constants): Delete.
6912         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6913         when generating mips16 code.  Remove special mips16 treatment of
6914         string constants.
6915         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6916         to have the form LABEL+CONSTANT.
6917         (mips_symbolic_address_p): Fix comment.
6918         (m16_usym8_4, m16_usym5_4): Delete.
6919         (mips_output_function_epilogue): Remove mips16 string handling.
6920         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6921         (mips_select_section, mips_encode_section_info): Remove mips16
6922         string handling.
6923         (struct mips16_constant_pool): New.
6924         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6925         sorted into order of ascending mode size.  Keep track of the highest
6926         possible start address, taking padding and the masking of the base PC
6927         value into account.
6928         (dump_constants_1): New function, split out from dump_constants.
6929         Handle vector constants.  Use gen_consttable_{int,float} rather than
6930         separate functions for each mode.
6931         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6932         rather than separate functions for each alignment.
6933         (mips_find_symbol): Delete.
6934         (mips16_insn_length): New function, split out from
6935         mips16_lay_out_constants.
6936         (mips16_rewrite_pool_refs): New function.
6937         (mips16_lay_out_constants): Rework. Remove string handling.
6938         Always create an inline constant pool.
6939         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6940         (UNSPEC_ALIGN): New constants.
6941         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6942         (UNSPEC_ALIGN_[248]): Delete.
6943         (consttable_int, consttable_float, align): New patterns.
6944         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6945
6946 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6947
6948         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6949         __unn_args_eq.
6950
6951 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6952
6953         PR target/14715
6954         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6955         with STARTING_FRAME_OFFSET.
6956
6957 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6958
6959         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6960         * config/mips/mips.c (macc_msac_operand): New function.
6961         * config/mips/mips.md (*msac): Move after *macc.
6962         (*msac2): New.  Generalize macc-related peepholes so that they apply
6963         to msac too.
6964
6965 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6966
6967         * opts.c (decode_options): Do not enable flag_rename_registers
6968         and flag_web at -O3.
6969         * toplev.c (flag_rename_registers): Initialize
6970         flag_rename_registers and flag_web to
6971         AUTODETECT_FLAG_VAR_TRACKING.
6972         (default_debug_hooks): New global.
6973         (process_options): Initialize default_debug_hooks.  Warn if
6974         -fvar-tracking specified but not supported by the current
6975         debug format.  Do not run var tracking at -O0 or if not
6976         supported by the current debug format, even if
6977         -fvar-tracking was given.  If -fno-rename-registers
6978         is not specified, always run register renaming if var
6979         tracking is supported by the default debugging information
6980         format for the target, and we are at -O1 or higher; similarly
6981         for -fweb, but only at -O2 or higher.
6982         * doc/invoke.texi (Optimize Options): Document this.
6983
6984 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6985
6986         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6987         * configure: Regenerate.
6988
6989 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6990
6991         * gcc.c (used_arg): Check whether an option has been removed.
6992
6993 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6994
6995         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6996         debugging on Solaris 7 and up.
6997
6998 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6999
7000         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
7001         IRIX 5 port.
7002         Remove -save-temps workaround, handled automatically.
7003         Require GNU binutils 2.15 for debugging.
7004         Remove SGI make warnings since GNU make is now required.
7005         (Specific, mips-sgi-irix6): Some markup fixes.
7006         Describe MIPSpro C problems and workarounds.
7007         Mention working O32 ABI support.
7008         Recommend GNU as 2.15 for O32 with debugging.
7009         Remove description of fixed structure pass/return bug.
7010
7011 2004-04-16  DJ Delorie  <dj@redhat.com>
7012
7013         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
7014         TYPE_FIELDS.
7015         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
7016
7017 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7018
7019         * pa.md: Remove unnecessary declarations for asm_out_file.
7020
7021         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
7022         SAR register.  Fix comment.
7023         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
7024         (%cr11).
7025
7026         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
7027
7028 2004-04-16  Nick Clifton  <nickc@redhat.com>
7029
7030         * config/arm/arm.c (arm_override_options): Revert previous patch.
7031         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
7032         be safely built.
7033
7034 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7035
7036         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
7037         bug.
7038         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
7039         TARGET_DEFAULT): Changed. Ditto.
7040         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
7041         TARGET_ENDIAN_DEFAULT): Added. Ditto.
7042         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
7043         (TARGET_ENDIAN_DEFAULT): Added.
7044
7045 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7046
7047         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
7048         ATTR_CONST_NOTHROW_LIST.
7049
7050 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7051
7052         PR/middle-end 14915
7053         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
7054         BITS_BIG_ENDIAN.
7055
7056 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
7057
7058         * ra-debug.c (ra_print_rtx): Add break's to case legs.
7059
7060 2004-04-14  James E Wilson  <wilson@specifixinc.com>
7061
7062         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
7063
7064 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
7065
7066         * libada-mk.in: New file.
7067         * configure.ac: Create libada-mk from libada-mk.in.
7068         * configure: Regenerate.
7069
7070 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
7071
7072         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
7073         (logb_optab, ilogb_optab): Define corresponding macros.
7074         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
7075         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
7076         using logb?f2 and ilogb?i2 patterns.
7077         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
7078         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
7079         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
7080         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7081
7082         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
7083         and UNSPEC_XTRACT_EXP.
7084
7085         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
7086         patterns to implement fxtract x87 instruction.
7087         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
7088         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
7089         intrinsics.
7090         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
7091         x87's fxtract insn.
7092
7093 2004-04-14  Eric Christopher  <echristo@redhat.com>
7094
7095         * config/mips/t-elf: Enable multilibs by default.
7096
7097 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
7098
7099         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
7100         previous fix to check HAVE_return at runtime too.
7101
7102 2004-04-14  Nick Clifton  <nickc@redhat.com>
7103
7104         * config/arm/arm.c (arm_override_options): If the user has not
7105         specified an ABI, then default to AAPCS for the iWMMXt processor.
7106         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
7107         * config/arm/t-xscale-coff: Likewise.
7108
7109 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7110
7111         * builtins.c (fold_builtin_isdigit): New.
7112         (fold_builtin): Handle BUILT_IN_ISDIGIT.
7113         * defaults.h: Add TARGET_DIGIT0 and sort.
7114         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
7115
7116 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7117
7118         * builtins.c (fold_builtin_cabs, fold_builtin): Use
7119         `mathfn_built_in' to determine the new builtin.
7120         * fold-const.c (fold): Likewise.
7121
7122 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
7123
7124         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7125         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7126         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7127         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7128         (ASM_SPEC): Update accordingly.
7129         * config/mips/mips.c: Update after above renaming.
7130         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7131         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7132
7133 2004-04-13  James E Wilson  <wilson@specifixinc.com>
7134
7135         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7136         increment errorcount and return false instead of true.
7137
7138 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
7139
7140         * optabs.c (expand_twoval_unop): Reorder function arguments.
7141         * builtins.c (expand_builtin_mathfn_3): Update calls to
7142         expand_twoval_unop.
7143
7144         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7145         and UNSPEC_TAN_TAN. Add missing comment.
7146
7147         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7148         patterns to implement fptan x87 instruction.
7149         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7150         and tanl built-ins as inline x87 intrinsics. Define corresponding
7151         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7152         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7153         x87's fptan insn.
7154
7155 2004-03-13  Richard Henderson  <rth@redhat.com>
7156
7157         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7158         for LABEL_REFs.
7159
7160         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7161         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7162         * doc/invoke.texi: Update to match.
7163
7164         * varasm.c (unlikely_text_section): Use assemble_align instead of
7165         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
7166         correct alignment argument.
7167
7168 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7169
7170         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7171         after setting reg_last_reload_reg for optional output reloads.
7172
7173 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7174
7175         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7176         Definition of these two macros are corrected by adding
7177         matchine right paren.
7178
7179 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
7180
7181         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7182
7183 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7184
7185         * config/i386/i386.c (output_387_reg_move): New function.
7186         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7187         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7188         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7189         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7190         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7191
7192 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7193
7194         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7195         TYPE_DECL.
7196         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7197         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7198         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7199         Use skip_simple_arithmetic to find SAVE_EXPR.
7200         (force_type_save_exprs, force_type_save_exprs_1): New functions.
7201         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7202         Properly chain multiple pointers.
7203         (copy_tree_r): Copy a TYPE_DECL.
7204         * tree.c (variably_modified_type_p): Add some missing tests and
7205         make some other minor changes.
7206         * tree.h (force_type_save_exprs): New declaration.
7207
7208 2004-04-12  Roger Sayle  <roger@eyesopen.com>
7209
7210         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7211         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
7212         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
7213         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
7214         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
7215         x%-1 into 0 (or x&0 if x has side-effects).
7216
7217 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7218
7219         * config/rs6000/rs6000.md: Document why a pattern is not
7220         available.
7221
7222         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7223         of floats on the E500.
7224         (branch_positive_comparison_operator): Do not allow NE even on the
7225         E500.
7226
7227 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
7228
7229         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7230         in_text_unlikely_section to in_unlikely_text_section.
7231
7232 2004-04-11  Roger Sayle  <roger@eyesopen.com>
7233
7234         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
7235         calling convention to allow a NULL_TREE to be returned.  Factor
7236         sanity checks from callers, return NULL_TREE when appropriate.
7237         (fold): Handle COMPOUND_EXPR operands of binary expressions
7238         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
7239         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
7240         calls to fold_binary_op_with_conditional_arg.
7241
7242 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7243
7244         * config/mips/iris5.h (current_section_flags):  Add
7245         in_unlikely_executed_text and default case.
7246
7247 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
7248
7249         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7250         failure on solaris. Place ifdef HAVE_return around gen_ret call.
7251         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7252         HAVE_return and place it around the place where it is needed.
7253
7254 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
7255
7256         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7257         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7258         and NORMAL_TEXT_SECTION_NAME.
7259         (unlikely_text_section): Check targetm.have_named_sections
7260         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7261         instead of SECTION_FORMAT_STRING.
7262         * config/mips/iris5.h (current_section_name): Add
7263         in_unlikely_executed_text case and move the abort into the switch.
7264         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7265         (NORMAL_TEXT_SECTION_NAME): Remove.
7266         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7267         (SECTION_FORMAT_STRING): Remove.
7268         * defaults.h (SECTION_FORMAT_STRING): Remove.
7269         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7270         (SECTION_FORMAT_STRING): Remove.
7271
7272 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7273
7274         * c-typeck.c (common_type): Prefer long long to long when same
7275         precision.
7276
7277 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
7278
7279         PR 14887
7280         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7281         mode argument.
7282         * config/ia64/ia64.c (ia64_hpux_file_end): Check
7283         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7284
7285 2004-04-09  Roger Sayle  <roger@eyesopen.com>
7286
7287         * simplify-rtx.c (mode_signbit_p): New function to check whether
7288         an RTX is an immediate constant that represents the most significant
7289         bit of a given machine mode.
7290         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7291         C is the sign bit.
7292         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7293         when C2 is the sign bit.
7294         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7295         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7296         sign bit.
7297
7298 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7299
7300         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7301         TYPE_MODE.
7302
7303 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
7304
7305         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7306         of TREE_READONLY for types.
7307
7308 2004-04-09  Caroline Tice  <ctice@apple.com>
7309
7310         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
7311         (struct basic_block_def):  Add new field, partition.
7312         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
7313         definitions.
7314         (partition_hot_cold_basic_blocks): Add extern function
7315         declaration.
7316         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
7317         include statements.
7318         (N_ROUNDS): Increase the maximum number of rounds by 1.
7319         (branch_threshold): Add array value for new round.
7320         (exec_threshold): Add array value for new round.
7321         (push_to_next_round_p): New function.
7322         (add_unlikely_executed_notes): New function.
7323         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7324         (mark_bb_for_unlikely_executed_section): New function.
7325         (add_labels_and_missing_jumps): New function.
7326         (add_reg_crossing_jump_notes): New function.
7327         (fix_up_fall_thru_edges): New function.
7328         (find_jump_block): New function.
7329         (fix_crossing_conditional_branches): New function.
7330         (fix_crossing_unconditional_branches): New function.
7331         (fix_edges_for_rarely_executed_code): New function.
7332         (partition_hot_cold_basic_blocks): New function.
7333         (find_traces):  Add an extra round for partitioning hot/cold
7334         basic blocks.
7335         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
7336         and only cold blocks, into the last (extra) round of collecting traces.
7337         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
7338         over crossing edges.
7339         (bb_to_key):  Add code to correctly identify cold blocks when
7340         doing partitioning.
7341         (connect_traces): Modify to connect all the non-cold traces first, then
7342         go back and connect up all the cold traces.
7343         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
7344         * cfg.c (entry_exit_blocks): Add initialization for partition field in
7345         entry and exit blocks.
7346         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7347         if we are doing hot/cold partitioning.
7348         * cfgcleanup.c (cfglayout.h): Add new include statement.
7349         (try_simplify_condjump): Modify to not attempt on blocks with jumps
7350         that cross section boundaries.
7351         (try_forward_edges): Likewise.
7352         (merge_blocks_move_predecessor_nojumps): Likewise.
7353         (merge_blocks_move_successor_nojumps): Likewise.
7354         (merge_blocks_move): Likewise.
7355         (try_crossjump_to_edge): Modify to not attempt after we have done
7356         the block partitioning.
7357         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7358         cross section boundaries.
7359         (try_optimize_cfg): Likewise.
7360         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7361         jumps that cross section boundaries.
7362         * cfglayout.c (flags.h): Add new include statement.
7363         (update_unlikely_executed_notes):  New function.
7364         (fixup_reorder_chain):  Add code so when a new jumping basic block is
7365         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7366         updated appropriately.
7367         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
7368         introduced by this optimization.
7369         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
7370         extern function declaration.
7371         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7372         list of notes that can be deleted.
7373         (create_basic_block_structure):  Add initialization for partition field.
7374         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
7375         section boundaries.
7376         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
7377         cross section boundaries.
7378         (commit_one_edge_insertion): Add code so newly created basic block
7379         ends up in correct (hot or cold) section.  Modify to disallow
7380         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7381         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
7382         crosses section boundaries.
7383         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7384         cross section boundaries.
7385         (force_nonfallthru_and_redirect): Modify to make sure new basic block
7386         ends up in correct section, with correct notes attached.
7387         * common.opt (freorder-blocks-and-partition):  Add new flag for this
7388         optimization.
7389         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
7390         the end of functions are written into the correct (hot or cold)
7391         section.
7392         (dbx_source_file): Add code so writing debug file information
7393         doesn't incorrectly change sections.
7394         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7395         in partitioning hot/cold basic blocks into separate sections.
7396         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7397         section partitioning.
7398         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7399         conditional branches can span all of memory.
7400         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7401         unconditional branches can span all of memory.
7402         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7403         (final_scan_insn):  Add code to check for NOTE instruction indicating
7404         whether basic block belongs in hot or cold section, and to make sure
7405         the current basic block is being written to the appropriate section.
7406         Also added code to ensure that jump table basic blocks end up in the
7407         correct section.
7408         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7409         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7410         one of the branches has a jump that crosses between sections.
7411         (find_if_case_2): Likewise.
7412         (ifcvt): Modify to not attempt to mark loop exit edges after
7413         hot/cold partitioning has occurred.
7414         * opts.c (decode_options): Code to handle new flag,
7415         flag_reorder_blocks_and_partition; also to turn it off if
7416         flag_exceptions is on.
7417         (common_handle_option): Code to handle new flag,
7418         flag_reorder_blocks_and_partition.
7419         * output.h (unlikely_text_section): New extern function declaration.
7420         (in_unlikely_text_section): New extern function declaration.
7421         * passes.c (rest_of_handle_stack_regs):  Add
7422         flag_reorder_blocks_and_partition as an 'or' condition for calling
7423         reorder_basic_blocks.
7424         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7425         as an 'or' condition for calling reorder_basic_blocks.
7426         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7427         * print-rtl.c (print_rtx): Add code for handling new note,
7428         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7429         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7430         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7431         cross between section boundaries.
7432         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7433         indicating the basic block containing it belongs in the cold section.
7434         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7435         between hot and cold sections.
7436         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7437         initialize this flag, and to tie it to the command-line option
7438         freorder-blocks-and-partition.
7439         * varasm.c (cfglayout.h):  Add new include statement.
7440         (unlikely_section_label_printed):  New global variable, used for
7441         determining when to output section name labels for cold sections.
7442         (in_section):  Add in_unlikely_executed_text to enum data structure.
7443         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7444         NORMAL_TEXT_SECTION_NAME macros.
7445         (unlikely_text_section):  New function.
7446         (in_unlikely_text_section):  New function.
7447         (function_section):  Add code to make sure beginning of function is
7448         written into correct section (hot or cold).
7449         (assemble_start_function):  Add code to make sure stuff is written to
7450         the correct section.
7451         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7452         to an if statement that was checking 'in_text_section'.
7453         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7454         condition to an if statement that was checking 'in_text_section'.
7455         (default_section_type_flags_1):  Add check: if in cold section
7456         flags = SECTION_CODE.
7457         * config/darwin.c (darwin_asm_named_section):  Modify to use
7458         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7459         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7460         specifically for the i386.
7461         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7462         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7463         text string to something more informative.
7464         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7465         (SECTION_FORMAT_STRING):  Add new definition.
7466         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7467         '!in_unlikely_text_section' as an 'and' condition to an if statement
7468         that was already checking '!in_text_section'.
7469         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7470         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7471         sure these are properly defined for linux on ppc.
7472         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7473         for this new flag.
7474         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7475         reg_note.
7476         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7477         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7478         these new macros.
7479
7480 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7481
7482         * function.c (gen_mem_addressof): When changing the RTX from a REG
7483         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7484
7485 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7486
7487         PR target/14888
7488         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7489         truncxfdf2_noop): Provide dummy "fmov" implementations.
7490
7491 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7492
7493         * gcc.c (default_compilers): Add missing initializers.
7494
7495         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7496         Return 1 if file was successfully mapped.
7497
7498 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7499
7500         PR pch/13419
7501         PR pch/14137
7502         Radar #: 3315288
7503         * doc/invoke.texi (Precompiled Headers): Suggest -o
7504         to put an output file in a particular place.  Be more detailed
7505         about which options affect PCH validity and which options
7506         might not work.
7507         * c-pch.c (pch_matching): New.
7508         (MATCH_SIZE): New.
7509         (struct c_pch_validity): New field 'match'.
7510         (pch_init): Handle pch_matching.
7511         (c_common_valid_pch): Check pch_matching.
7512
7513         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7514
7515 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7516
7517         * doc/invoke.texi (Precompiled Headers): Warn about known
7518         problems.
7519
7520 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7521
7522         PR c++/14808
7523         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7524         to 1 if ASM_OUTPUT_DEF is defined.
7525         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7526         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7527         Set to non-zero iff not a one_only decl.
7528
7529 2004-04-08  Paul Brook  <paul@codesourcery.com>
7530
7531         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7532
7533 2004-04-08  Paul Brook  <paul@codesourcery.com>
7534
7535         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7536         PROMOTE_FOR_CALL_ONLY.
7537         * config/arm/arm-protos.h (arm_function_value): Declare.
7538         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7539         (TARGET_PROMOTE_PROTOTYPES): Return false.
7540         (arm_function_value): New function.
7541         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7542         (FUNCTION_VALUE): Call arm_function_value.
7543         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7544         (PROMOTE_FUNCTION_MODE): ... to this.
7545         (PROMOTE_FOR_CALL_ONLY): Remove.
7546         * config/mmix/mmix.h: Likewise.
7547         * config/s390/s390.h: Likewise.
7548         * config/sparc/sparc.h: Likewise.
7549         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7550         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7551         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7552         (PROMOTE_FOR_CALL_ONLY): Remove.
7553
7554 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7555
7556         PR ada/14538
7557         * ada/5rosinte.adb: Remove fake mprotect() body.
7558         * ada/5rosinte.ads: Add SA_SIGINFO.
7559         * ada/5rtpopsp.adb: Rewrite to use new interface.
7560         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7561         is tested before more complex ones which mix UNIX and embedded
7562         systems in the conditional.
7563
7564 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7565
7566         PR ada/14665
7567         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7568         filenames which end in .exe or have versioning suffixes like VMS.
7569
7570 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7571
7572         PR target/10129
7573         * config/darwin.c (darwin_encode_section_info): When the decl has
7574         a DECL_INITIAL, it is only defined also when it is not a common.
7575
7576 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7577
7578         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7579         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7580
7581 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7582
7583         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7584         global register variables.
7585
7586 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7587
7588         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7589         rpc_xdr_lvalue_cast_b): New fixes.
7590         * fixinc/fixincl.x: Regenerate.
7591         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7592
7593 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7594
7595         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7596         to power4 and power5 entries.
7597
7598 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7599
7600         * c-common.h (pending_lang_change): Mark for PCH.
7601
7602 2004-04-07  Caroline Tice  <ctice@apple.com>
7603
7604         * gcc.c (main): Move 'break' in main loops (on an error)
7605         to wait until error processing has occurred.
7606
7607 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7608
7609         * config.gcc: Stop changing enable_threads midstream.
7610         Replace uses of enable_threads_flag with enable_threads.
7611         * configure.ac: Replace uses of enable_threads_flag with
7612         enable_threads.  Improve autoconf quotation in one place.
7613         * configure: Regenerate.
7614
7615 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7616
7617         * builtins.c: Implement support for sincos function.
7618         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7619         BUILT_IN_COS{,F,L}.
7620         (expand_builtin_mathfn_3): New function.
7621         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7622         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7623         flag_unsafe_math_optimization is set.
7624
7625         * optabs.h (enum optab_index): Add new OTI_sincos.
7626         (sincos_optab): Define corresponding macro.
7627
7628         * optabs.c (init_optabs): Initialize sincos_optab.
7629         (expand_twoval_unop): New function.
7630
7631         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7632         patterns.
7633
7634         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7635         and UNSPEC_SINCOS_SIN.
7636
7637         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7638         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7639         built-ins as inline x87 intrinsics. Define splits for
7640         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7641         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7642         sincos patterns.
7643         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7644         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7645
7646         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7647         x87's fsincos insn.
7648
7649 2004-04-06  Devang Patel  <dpatel@apple.com>
7650
7651         PR 14467
7652         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7653
7654 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7655
7656         * doc/install.texi: Update HP-UX 11 installation procedure.
7657
7658 2004-04-06  Paul Brook  <paul@codesourcery.com>
7659
7660         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7661
7662 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7663
7664         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7665         when the TLS address is generated by a function call.
7666         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7667         (tls_local_dynamic): Likewise.
7668
7669 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7670
7671         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7672         and TYPE_VOLATILE.
7673
7674 2004-04-05  Caroline Tice  <ctice@apple.com>
7675
7676         * gcc.c (combine_flag): New global variable, for new driver option.
7677         (struct compiler): Add two new fields, to be used when
7678         combining multiple input files in a single pass (IMA).
7679         (default_compilers):  Add values for the new fields to all
7680         compiler entries. Modify the "@c" compiler entry for doing IMA
7681         properly with "-save-temps" and the "combine" flag.
7682         (option_map):  Add new driver option, "--combine", to tell driver
7683         to pass multiple input files to compiler at one time.
7684         (have_o_argbuf_index): New global variable.
7685         (store_arg): Modify to assign value to have_o_argbuf_index.
7686         (struct infile):  Add three new fields, to help with IMA.
7687         (display_help): Add help for new "combine" option.
7688         (process_command): Remove local variable have_o; add code to check
7689         for new "combine" option; remove assignment to combine_inputs.
7690         (do_spec_1):  Modify to deal with IMA better.
7691         (main): Make variable 'lang_n_infiles' local to entire function
7692         rather than to a single block.  Use flag combine_flag to
7693         determine whether to do IMA or not; Modify loop initializing
7694         infiles to deal properly with linker files.
7695         Add code for doing preprocessing in presence of
7696         IMA with "-save-temps" flag.  Modify "main" loop to handle
7697         multiple input files, in multiple languages, with or without
7698         preprocessing,  gracefully.
7699         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7700         re-set it to same directory it's previously been set to (avoid
7701         irritating, meaningless warning messages when doing IMA with
7702         save-temps).
7703         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7704         remove documentation about IMA that is no longer accurate; Add
7705         documentation explaining what "-combine" does.
7706         * ada/lang-specs.h: Add initialization values for new fields in
7707         "struct compiler".
7708         * cp/lang-specs.h: Likewise.
7709         * f/lang-specs.h: Likewise.
7710         * java/lang-specs.h: Likewise.
7711         * objc/lang-specs.h: Likewise.
7712         * treelang/lang-specs.h: Likewise.
7713
7714 2004-04-05  David Edelsohn
7715
7716         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7717         symbol handling.
7718
7719 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7720             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7721
7722         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7723         * pa.md: Use replace_equiv_address to retain the attributes of the
7724         memory operands used in the split and peephole2 patterns for optimizing
7725         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7726
7727 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7728
7729         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7730         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7731         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7732         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7733         PARM_DECL.
7734         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7735         for a type.
7736         * print-tree.c (print_node): Properly handle side-effects, readonly,
7737         and constant flags.
7738         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7739         and TREE_CONSTANT if not a type.
7740         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7741         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7742         (NON_TYPE_CHECK): New macro.
7743         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7744
7745 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7746
7747         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7748         to DWARF2_DEBUG unconditionally.
7749         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7750
7751 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7752             Nathanael Nerode  <neroden@gcc.gnu.org>
7753
7754         PR target/14548
7755         * config.host: Set the shell variable host_can_use_collect2.
7756         Set it to yes by default, and to no for alpha*-dec-*vms*,
7757         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7758         * configure.ac: Set and substitute the shell variable collect2.
7759         Give an error if use_collect2 is yes and host_can_use_collect2 is
7760         no.
7761         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7762         uses.  Initialize to @collect2@.
7763         (STAGESTUFF): Remove $(USE_COLLECT2).
7764         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7765         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7766         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7767         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7768         * configure: Regenerate.
7769
7770 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7771
7772         * simplify-rtx.c (simplify_binary_operation): Constant fold
7773         DIV, MOD, UDIV and UMOD using div_and_round_double.
7774
7775 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7776
7777         PR c++/14804
7778         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7779         RECORD_TYPEs.
7780
7781 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7782
7783         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7784         documentation.
7785
7786 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7787
7788         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7789         updating the REG_EQUAL note on an insn's libcall_insn.
7790
7791 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7792
7793         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7794
7795 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7796
7797         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7798         with reorder_operands_p.
7799
7800 2004-04-03  Jan Hubicka  <jh@suse.cz>
7801
7802         * md.texi (vec_set, vec_extract, vec_init): Document.
7803
7804 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7805
7806        * opts.c (decode_options): Do function inlining with very small
7807        max-inline-insns-* parameters when optimizing for size.
7808
7809 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7810
7811         * config/i386/i386.h (TARGET_NOCONA): New macro.
7812         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7813         (processor_type): Add PROCESSOR_NOCONA.
7814
7815         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7816
7817         * config/i386/i386.c (nocona_cost): New variable.
7818         (m_NOCONA): New macro.
7819         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7820         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7821         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7822         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7823         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7824         x86_decompose_lea, x86_arch_always_fancy_math_387,
7825         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7826         x86_ext_80387_constants, x86_four_jump_limit):
7827         (override_options): Add nocona_cost to processor_target_table.
7828         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7829         (incdec_operand): Prevent inc/dec generation for Nocona too.
7830         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7831
7832 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7833
7834         * rtlanal.c (find_reg_note): Manually
7835         unswitch the loop.
7836
7837 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7838
7839         * genemit.c (gen_split): Change prototype of generated code.
7840         * genrecog.c (write_action): Adjust prototype for and calls to
7841         gen_split_*.
7842         * gensupport.c (struct queue_elem): Add split field.
7843         (queue_pattern): Return a value.  Clear the split field.
7844         (process_rtx): Maintain an association between an insn and the
7845         split generated from it for a define_insn_and_split.
7846         (process_one_cond_exec): Generate a new split for a
7847         define_insn_and_split.
7848         * config/arm/arm-protos.h (arm_split_constant): Add insn
7849         parameter.
7850         (emit_constant_insn): New function.
7851         (arm_gen_constant): Use it.
7852         * config/arm/arm.md: Adjust calls to arm_split_constant.
7853
7854 2004-04-02  Jan Hubicka  <jh@suse.cz>
7855
7856         * cgraph.c: Add overall comment.
7857         (cgraph_inline_hash): New global variable.
7858         (cgraph_create_node): Break out from ...
7859         (cgraph_node): ... here.
7860         (cgraph_edge): New function.
7861         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7862         (cgraph_remove_edge): Accept edge, intead of source and destination.
7863         (cgraph_redirect_edge_callee): New.
7864         (cgraph_remove_node): Update all new datastructures.
7865         (cgraph_record_call, cgraph_remove_call): Kill.
7866         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7867         (dump_cgraph): ... here.
7868         (cgraph_function_possibly_inlined_p): Use new hashtable.
7869         (cgraph_clone_edge, cgraph_clone_node): New.
7870         * cgraph.h: Include hashtab.h
7871         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7872         fields, add inlined_to pointer.
7873         (cgraph_node): Add pointer to next_clone.
7874         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7875         (cgraph_remove_call, cgraph_record_call): Kill.
7876         (cgraph_inline_hash): Declare.
7877         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7878         cgraph_redirect_edge_callee): Declare.
7879         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7880         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7881         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7882         * cgraphunit.c: Add overall comment.
7883         (cgraph_optimize_function): Kill.
7884         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7885         (cgraph_finalize_function): Update call of cgraph_remove_node
7886         (record_call_1): Record call sites.
7887         (cgraph_create_edges): Accept node instead of decl argument.
7888         (error_found): New static variable.
7889         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7890         (cgraph_analyze_function): Update for new datastructures.
7891         (cgraph_finalize_compilation_unit): Plug memory leak.
7892         (cgraph_optimize_function): Kill.
7893         (cgraph_expand_function): Do not use cgraph_optimize_function.
7894         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7895         cgraph_inlined_callees): Kill.
7896         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7897         clones.
7898         (estimate_growth): Simplify.
7899         (cgraph_clone_inlined_nodes): New function.
7900         (cgraph_mark_inline_edge): Re-implement.
7901         (cgraph_mark_inline): Likewise.
7902         (cgraph_check_inline_limits): Simplify.
7903         (cgraph_recursive_inlining_p): New.
7904         (update_callee_keys): Break out from ...
7905         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7906         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7907         Likewise.
7908         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7909         list.
7910         (cgraph_preserve_function_body_p): New predicate.
7911         (cgraph_optimize): Verify cgraph.
7912         * function.h (struct function): Add fields saved_tree/saved_args.
7913         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7914         * toplev.c (rest_of_compilation): Do not free cfun.
7915         * tree-inline.c: Include function.h
7916         (struct inline_data): Add saving_p field; replace decl/current_decl by
7917         node/current_node.
7918         (insert_decl_map): New function.
7919         (copy_body_r): Handle saving; update cgraph datastructure.
7920         (copy_body): Handle recursive inlining.
7921         (initialize_inlined_parameters): Likewise.
7922         (expand_call_inline): Propagate node attributes; update cgraph.
7923         (optimize_inline_calls): Verify that datastructure still match.
7924         (save_body): New function.
7925         * tree-inline.h (save_body): New.
7926         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7927         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7928         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7929
7930 2004-04-01  Serge Belyshev  <1319@bot.ru>
7931
7932         PR target/14702
7933         * config/i386/i386.md: fix source operand constraints in
7934         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7935
7936 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7937
7938         * fold-const.c (folda): Preserve types of comparisons.
7939
7940 2004-04-01  Richard Henderson  <rth@redhat.com>
7941
7942         * toplev.c (backend_init): Move init_optimization_passes call ...
7943         (lang_dependent_init): ... here.
7944
7945 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7946             Jakub Jelinek  <jakub@redhat.com>
7947
7948         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7949         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7950         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7951         * configure: Rebuilt.
7952         * config.in: Rebuilt.
7953         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7954         (stage2-start, stage3-start, stage4-start): Likewise.
7955         (stageprofile-start, stagefeedback-start): Likewise.
7956
7957 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7958
7959         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7960         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7961         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7962         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7963         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7964         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7965         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7966         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7967         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7968         * config/sparc/t-linux: Removed.
7969
7970 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7971
7972         PR c++/14755
7973         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7974         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7975
7976 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7977
7978         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7979         * stor-layout.c (layout_decl): Likewise.
7980         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7981         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7982         * print-tree.c (print_node): Handle various used of unsigned_flag.
7983         * tree.def (BIT_FIELD_REF): Update comment.
7984         * tree.h (TREE_UNSIGNED): Deleted.
7985         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7986
7987 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7988
7989         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7990         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7991         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7992         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7993         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7994         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7995         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7996         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7997         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7998         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7999         REAL_TYPE, not INTEGER_TYPE.
8000         (layout_type, case VECTOR_TYPE): Simplify code.
8001         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
8002         * tree.h: Update comments.
8003         (STRIP_NOPS): Use TYPE_UNSIGNED.
8004         (TYPE_UNSIGNED): New macro.
8005         (TYPE_TRAP_SIGNED): Remove now redundant check.
8006         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
8007
8008 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8009
8010         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
8011
8012 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
8013
8014         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
8015         Add darwin-fpsave.asm, darwin-vecsave.asm,
8016         and darwin-world.asm.
8017         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
8018         as the asm files contain altivec instructions.
8019         * config/rs6000/darwin-fpsave.asm: New file.
8020         * config/rs6000/darwin-vecsave.asm: New file.
8021         * config/rs6000/darwin-world.asm: New file.
8022
8023 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
8024
8025         * gengtype-yacc.y (option, stringseq): Add missing
8026         terminating semicolon.
8027
8028 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
8029
8030         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
8031         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
8032         tls_dtprel_ha_32, tls_dtprel_ha_64,
8033         tls_dtprel_lo_32, tls_dtprel_lo_64,
8034         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
8035         tls_tprel_ha_32, tls_tprel_ha_64,
8036         tls_tprel_lo_32, tls_tprel_lo_64,
8037         tls_got_tprel_32, tls_got_tprel_64,
8038         tls_tls_32, tls_tls_64): Replace register_operand with
8039         gpc_reg_operand.
8040
8041 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
8042
8043         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
8044         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
8045         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
8046         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
8047         *ctrdi_internal6): Replace register_operand with
8048         nonimmediate_operand.
8049
8050 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
8051
8052         * fold-const.c (fold): Reassociate multiply expression
8053         with an adjacent non-multiply expression to use
8054         architecture's multiply-add instruction.
8055
8056 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
8057
8058         * gengtype.c (create_option): New function.
8059         * gengtype.h: Prototype it.
8060         * gengtype-yacc.y (stringseq): New rule.
8061         (option): Use create_option.  Add new bare ID production.  Use
8062         stringseq, not STRING directly.
8063
8064         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
8065         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
8066         * varray.h, config/alpha/alpha.c:
8067         Use new shorter form of GTY markers.
8068
8069         * doc/gty.texi: Rewrite.
8070
8071 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
8072
8073         * config/darwin.c (machopic_function_base_name):
8074         Remove current_name and getting the name of the
8075         current function.
8076
8077 2004-03-30  Nick Clifton  <nickc@redhat.com>
8078
8079         * config/arm/arm.md (thumb_jump): Reduce the backward branch
8080         range, and increase the forward branch range, to allow for
8081         the fact that the PC will be off by 4.
8082
8083 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
8084
8085         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
8086
8087 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8088
8089         * config/rs6000/rs6000.c (output_vec_const_move):
8090         Find all cases of EASY_VECTOR_15_ADD_SELF.
8091         (easy_vector_constant_add_self): Accept
8092         all vector constant loadable by vsplt* and vadd*.
8093         (easy_vector_same): Use easy_vector_splat_const.
8094         (easy_vector_const): Use easy_vector_splat_const.
8095         (easy_vector_splat_const): New function.
8096         (gen_easy_vector_constant_add_self): New function.
8097
8098         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
8099         New prototype.
8100
8101         * config/rs6000/altivec.md (movv4si splitter): Change to
8102         emit move insn with halfed vector constant.
8103         (*movv8hi splitter): Likewise.
8104         (*movv16qi splitter): Likewise.
8105
8106 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
8107
8108         PR 11591
8109         * config/rs6000/rs6000.c (rs6000_legitimate_address):
8110         Allow any offset to argument pointer in no-strict case.
8111
8112 2004-03-30  Jan Hubicka  <jh@suse.cz>
8113
8114         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
8115         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
8116         dump file in non-unit-at-a-time mode.
8117
8118 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
8119
8120         * config/cris/cris.h: Correct #ifdef to test for
8121         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8122         HAVE_AS_MUL_BUG_ABORT_OPTION.
8123
8124 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8125
8126         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8127         the address inside the old RTL.
8128
8129 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
8130
8131         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8132         (struct c_binding, struct c_scope): Add chain_next
8133         attributes to GTY markers.
8134         (struct lang_identifier, struct lang_tree_node): Define
8135         here...
8136         * c-tree.h: ... not here.  No longer need to declare struct
8137         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8138         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8139         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8140
8141         PR 14734, 11944
8142         * c-decl.c (get_parm_info): If error_mark_node is encountered
8143         in the bindings chain, unbind and discard it; don't abort.
8144
8145 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
8146             Dorit Naishlos <dorit@il.ibm.com>
8147
8148         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8149         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8150
8151 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
8152
8153         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8154
8155         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8156         (m68hc11_attribute_table): New attribute "page0" to mark a global
8157         variable as being allocated from within page0 section.
8158         (m68hc11_encode_label): New function.
8159         (m68hc11_strip_name_encoding): New function.
8160         (m68hc11_page0_symbol_p): New function.
8161         (m68hc11_indirect_p): Accept global variables marked in page0.
8162         (m68hc11_encode_section_info): Lookup "page0" attribute.
8163
8164         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8165         represents access to page0 variables.
8166
8167         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8168         ("*logicalsi3_silshl16_zext"): Likewise.
8169         ("*ashldi3_const32"): Likewise.
8170         (peephole2 ashift): Likewise.
8171
8172 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8173
8174         * c-tree.h (C_DECL_REGISTER): New.
8175         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8176         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8177         (build_array_ref, c_mark_addressable): Set and use it.
8178         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8179         Allow structures with volatile fields to be declared register.
8180         Don't check TREE_ADDRESSABLE before warning about taking address
8181         of register.
8182         * c-decl.c (finish_decl): Don't allow structures with volatile
8183         fields to be placed in named register.
8184         * doc/trouble.texi: Remove reference to structures with volatile
8185         fields in registers.
8186
8187 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8188
8189         * function.c (thread_prologue_and_epilogue): Move
8190         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8191         before the epilogue.
8192
8193 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
8194
8195         * expr.c (store_constructor): Use gen_int_mode to correctly
8196         sign-extend CONST_INT value.
8197
8198 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8199
8200         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8201         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
8202         * doc/extend.texi: Likewise.
8203
8204 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
8205
8206         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8207           with TYPE_ORIG_SIZE_TYPE.
8208
8209 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
8210
8211         PR 14219
8212         * c-typeck.c (build_binary_op): Do not allow comparisons of
8213         vectors.
8214
8215 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
8216
8217         * config.gcc: Remove sparc-tti-*.
8218         * config/sparc/pbd.h: Delete.
8219
8220         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8221         * config/sparc/aout.h: Likewise.
8222
8223         * config/sparc/sparc.h: Remove if 0'd code.
8224         * config/sparc/sparc.md (call): Remove if 0'd code.
8225         (call_value): Likewise.
8226         (nonlocal_goto): Likewise.
8227         (unimp_insn): Delete.
8228
8229 2004-03-25  Roger Sayle  <roger@eyesopen.com>
8230
8231         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8232         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8233
8234 2004-03-25  Richard Henderson  <rth@redhat.com>
8235
8236         PR 11527
8237         * c-typeck.c (pop_init_level): Emit pending init elements earlier
8238         rather than later.
8239
8240 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8241
8242         * builtins.c (fold_builtin): Fix error in last change.
8243
8244 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
8245
8246         * config/mips/mips.h: Formatting fix.
8247
8248 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8249
8250         * builtins.def: Add ctype builtins.
8251         * doc/extend.texi: Likewise.
8252
8253 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8254
8255         * builtins.c (fold_builtin): Add new builtin optimizations for
8256         sqrt and/or cbrt.
8257         * fold-const.c (fold): Likewise.
8258
8259 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
8260
8261         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8262         (rs6000_sched_groups): New variable.
8263         (processor_target_table): Add power5.
8264         (rs6000_override_options): Set rs6000_sched_insert_nops,
8265         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8266         from rs6000_sched_groups.
8267         (output_cbranch): Use rs6000_always_hint.
8268         (rs6000_variable_issue): Use rs6000_sched_groups.
8269         (rs6000_adjust_cost): Add CPU_POWER5.
8270         (is_microcoded_insn): Use rs6000_sched_groups.
8271         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8272         Return 2 for POWER5 cracked instructions.
8273         (is_cracked_insn): Use rs6000_sched_groups.
8274         (is_branch_slot_insn): Use rs6000_sched_groups.
8275         (rs6000_issue_rate): Add CPU_POWER5.
8276         (rs6000_sched_finish): Use rs6000_sched_groups.
8277         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8278         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8279         (DEFAULT_SCHED_COSTLY_DEP): Delete.
8280         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8281         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8282         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8283         * config/rs6000/power5.md: New file.
8284         * doc/invoke.texi: Add power5 option.
8285
8286 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8287
8288         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8289         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8290         * doc/invoke.texi: Fix a typo.
8291
8292 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
8293
8294         PR optimization/9707.
8295         * stmt.c (emit_case_nodes): Emit equality comparisons instead
8296         of recursing if both children are single-valued cases with no
8297         children.
8298
8299 2004-03-25  Paul Brook  <paul@codesourcery.com>
8300
8301         * config/arm/arm.c (vfp_print_multi): Remove.
8302         (arm_output_fldmx): New function.
8303         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8304         (arm_expand_prologue): Update to match.
8305         (arm_get_vfp_saved_size): New Function.
8306         (arm_get_frame_offsets): Use it.
8307         (arm_output_epilogue): Use new functions.
8308
8309 2004-03-24  Richard Henderson  <rth@redhat.com>
8310
8311         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8312         (reg_known_value, reg_known_value_size): Likewise; make static.
8313         (reg_known_equiv_p): Make static.
8314         (clear_reg_alias_info): Update for new indexing.
8315         (get_reg_known_value, set_reg_known_value): New.
8316         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8317         (canon_rtx): Use them.
8318         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
8319         Don't play queer offsetting games with reg_known_value and
8320         reg_known_equiv_p.
8321         (end_alias_analysis): Free reg_known_value with gc.
8322         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8323         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8324         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8325         functions instead.
8326
8327 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8328
8329         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8330         config/i386/mmintrin.h: Update copyright.
8331
8332 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8333
8334         * configure.ac: Add --enable-werror-always (for top level bootstrap
8335         support).
8336         * configure: Regenerate.
8337
8338 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
8339
8340         * objc/objc-act.c (objc_comptypes): Treat comparisons
8341         between 'Class' and '<class> *' as explicitly invalid.
8342
8343 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
8344
8345         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8346         (-fprofile-values): Add enabled with profile-{generate,use}.
8347         (-fvpt): Same.
8348         (-ftracer): Add enabled with profile-use.
8349         (-funit-at-a-time): Add enabled at -O2,-O3.
8350         (-funroll-loops): Add enabled with profile-use.
8351         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
8352         (max-gcse-passes): Mention default.
8353         (max-cse-path-length): Mention default.
8354
8355 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8356
8357         * Makefile.in (STRICT2_WARN): Reorder.
8358         * configure.ac: Check for -Wold-style-definition, and use it
8359         in strict1_warn if it's available.
8360         * configure: Regnerate.
8361
8362 2004-03-24  Paul Brook  <paul@nowt.org>
8363
8364         * config.gcc <arm>: Add --with-abi=
8365         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8366         thumb_far_jump_used): Remove prototypes.
8367         (arm_needs_doubleword_align): Add prototype.
8368         (thumb_compute_initial_elimination_offset): Ditto.
8369         * config/arm/arm.c (arm_get_frame_offsets): New function.
8370         (use_return_insn, output_return_instruction, arm_output_epilogue,
8371         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8372         arm_expand_prologue, thumb_expand_epilogue): Use it.
8373         (arm_abi, target_abi_name, all_arm_abis): New variables.
8374         (arm_override_options): Set them.  Set structure padding for AAPCS.
8375         (arm_return_in_memory): Update ABI check.
8376         (arm_init_cumulative_args): Initialize can_split.
8377         (arm_needs_doubleword_align): New function.
8378         (arm_function_arg): Don't split args after pushing to stack. Handle
8379         doubleword/even reg alignment.
8380         (arm_va_arg): Handle all doubleword aligned args.
8381         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8382         on ABI, not CPU.
8383         (arm_compute_save_reg0_reg12_mask): Fix comment.
8384         (thumb_get_frame_size, thumb_get_frame_size): Remove.
8385         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
8386         value for alignment.
8387         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8388         to match.
8389         (thumb_compute_initial_elimination_offset): New function.
8390         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
8391         unneccessary rounding.
8392         * config/arm/arm.h (target_abi_name): Declare.
8393         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8394         arm_abi_type, ARM_DEFAULT_ABI): Define.
8395         (ARM_FLAG_ATPCS): Remove.
8396         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8397         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8398         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8399         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8400         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8401         Contitionalize on ABI, not CPU.
8402         (struct arm_stack_offsets): Define.
8403         (struct machine_function): Add stack_offsets.  Remove frame_size.
8404         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8405         pushed.
8406         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8407         doubleword alignment.
8408         (THUMB_INITIAL_ELIMINATION_OFFSET,
8409         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8410         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8411         * config/arm/arm.md (align_8): Enable for all targets.
8412         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8413         (ARM_DEFAULT_ABI): Define.
8414         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8415         -mstructure-size-boundary.
8416
8417 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8418
8419         * configure.ac: Check for -Wno-variadic-macros; don't use
8420         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8421         and if it's available, use it.  Also, clean up check for
8422         -Wno-long-long.
8423         * configure: Regenerate.
8424
8425 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8426
8427         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8428         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8429         (MULTILIB_DEFAULTS): Use it.
8430         (MIPS_CPU_STRING_DEFAULT): Remove.
8431         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8432         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8433         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8434         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8435         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8436         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8437         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8438         accordingly.
8439
8440 2004-03-24  DJ Delorie  <dj@redhat.com>
8441             Richard Sandiford  <rsandifo@redhat.com>
8442
8443         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8444         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8445         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8446         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8447         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8448         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8449         if TARGET_FIX_VR4122.
8450         * config/mips/mips.md (define_attr length): Account for nops inserted
8451         after macc and dmult when using -mfix-vr4122-bugs.
8452         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8453         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8454         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8455         * config/mips/vr4122-div.S: New file.
8456         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8457
8458 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8459
8460         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8461         (TARGET_MIPS4130): New macro.
8462         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8463         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8464         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8465         with PROCESSOR_R4130.
8466         * config/mips/mips.md (define_attr cpu): Add r4130.
8467         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8468
8469 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8470             Richard Sandiford  <rsandifo@redhat.com>
8471
8472         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8473
8474 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8475
8476         PR preprocessor/14438
8477         * cpplib.c (do_pragma): Remove line_change call after pragma
8478         handler.
8479
8480 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8481
8482         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8483         declarations.
8484
8485 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8486
8487         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8488         if flag_unsafe_math_optimizations.
8489         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8490         and TARGET_80387 expand using truncdfsf2_noop pattern.
8491         (truncxfsf2): Likewise using truncxfsf2_noop.
8492         (truncxfdf2): Likewise using truncxfdf2_noop.
8493         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8494
8495 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8496
8497         * hooks.c (hook_constcharptr_tree_null): New hook.
8498         * hooks.h (hook_constcharptr_tree_null): New prototype.
8499         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8500         * target.h (mangle_fundamental_type): New target hook.
8501         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8502         target hook at rs6000_mangle_fundamental_type.
8503         (rs6000_mangle_fundamental_type): New function.
8504         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8505
8506 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8507
8508         PR 12267, 12391, 12560, 13129, 14114, 14133
8509         * c-tree.h: Forward declare struct c_binding.  Declare
8510         c_override_bindings_to_false.  Update prototypes.
8511         (struct lang_identifier): Update comments.  Change fields to be
8512         struct c_binding *.
8513         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8514         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8515         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8516         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8517         * c-common.h: Update prototypes.
8518         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8519         names_last, parms, parms_last, tags, and shadowed fields.  Add
8520         bindings and depth fields.
8521         (scope_freelist): Move to more appropriate location.
8522         (c_print_identifier): Update for changes to struct lang_identifier.
8523         (objc_mark_locals_volatile): Update for new bindings structures.
8524         (global_bindings_p): Honor c_override_global_bindings_to_false.
8525         (pushlevel): Rename to push_scope; take no arguments; use the
8526         scope_freelist; initialize scope->depth and check for overflow.
8527         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8528         structures.
8529         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8530         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8531         Improve some commentary.  Adjust handling of forward parm decls.
8532         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8533         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8534         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8535         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8536         decls.  Rewrite for new bindings structures.  Improve commentary.
8537         Eliminate the copy_node call.
8538         (implicit_decl_warning): Use the "diag" idiom (as seen in
8539         locate_old_decl) to reduce code duplication; call locate_old_decl
8540         if appropriate.  Relocate to remove need for forward declaration.
8541         (implicitly_declare): Adjust for new bindings structures.  Kludge
8542         around Objective-C not-really-builtin functions.
8543         (undeclared_variable): Improve diagnostics.  If current_function_decl
8544         is nonnull but current_function_scope is null, use current_scope.
8545         Use bind.
8546         (lookup_tag): Adjust for new bindings structures.  Kludge around
8547         Objective-C's tag declarations that wind up in the external scope.
8548         (lookup_name): Adjust for new bindings structures.  Kludge around
8549         c-common.c's pseudo-typedefs that wind up in the external scope.
8550         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8551         second argument indicating the scope to examine; rewrite for
8552         new bindings structures.
8553         (c_init_decl_processing): Adjust for renamed functions.  Do not
8554         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8555         First scope pushed is the external scope, not the global scope.
8556         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8557         for new data structures.  Keep track of builtins that should be
8558         made visible automatically.
8559         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8560         expand_decl.
8561         (grokparms): Return 0 if arg_types is error_mark_node.
8562         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8563         reversed sense.  Rewrite for new bindings structures.  Do not
8564         leave any decls in the scope, to prevent pop_scope from doing
8565         contradictory things with them.
8566         (finish_struct, finish_enum): Remove redundant diagnostics.
8567         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8568         Mark location where -pedantic changes the meaning of the program.
8569         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8570         parameter decls into the function's scope structure using bind.
8571         Warn here about function definitions in the wrong style.
8572         Adjust diagnostics.
8573         (store_parm_decls): Correct the determination of whether a
8574         function was defined with a prototype.
8575         (c_write_global_declarations): Operate on all file decls and on
8576         the external scope.  Split body of the loop to...
8577         (c_write_global_declarations_1): ... this new function, to avoid
8578         code duplication.
8579         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8580         (make_scope, pop_scope, in_parm_level_p, set_block)
8581         (any_external_decl, record_external_decl, bind_label, getdecls)
8582         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8583         (c_reset_state): Delete.
8584         (visible_builtins, c_override_global_bindings_to_false)
8585         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8586         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8587         (external_scope, binding_freelist, bind, free_binding_and_advance)
8588         (push_file_scope, pop_file_scope): New.
8589         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8590         (define_label, c_make_fname_decl, finish_decl)
8591         (mark_forward_parm_decls, build_compound_literal)
8592         (grokdeclarator, start_function, check_for_loop_decls)
8593         (identifier_global_value, record_builtin_type): Minor adjustments
8594         for new bindings structures.  Improve diagnostics and commentary.
8595         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8596         pushlevel/poplevel respectively.
8597         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8598         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8599         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8600         correct loop over multiple translation units; call fatal_error if
8601         requested to compile more than one file at once.  (This disables
8602         IMA temporarily - an up-front error being preferable to a crash.)
8603         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8604         (all actions): Adjust calls to pushlevel/poplevel.
8605         (parsing_iso_function_signature): Delete.
8606         (extdef_1): Fold into extdef.
8607         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8608         warn here about function definitions in the wrong style.
8609         (after_tyle_declarator, parm_declarator_starttypename)
8610         (parm_declarator_nostarttypename, notype_declarator): Remove
8611         commented-out productions.
8612         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8613         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8614         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8615         to suppress -Wold-style-definition after this error.
8616         (c_parse_file): Don't clear the binding stack or call
8617         finish_fname_decls here.  Correct comment.
8618         * c-typeck.c (same_translation_unit_p): Export.
8619         (common_type): Use c_override_global_bindings_to_false, not
8620         pushlevel/poplevel/declare_parm_level.
8621         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8622         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8623         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8624         * objc/objc-lang.c: Likewise.
8625         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8626         get_parm_info.
8627         (OBJC_VOID_AT_END): Delete; replace all uses
8628         with void_list_node.
8629         (generate_forward_declaration_to_string_table): Delete.
8630         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8631
8632         * coverage.c (create_coverage): Don't pushdecl anything.
8633         * langhooks.c (lhd_clear_binding_stack): Call
8634         lang_hooks.decls.poplevel, not poplevel.
8635         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8636         circular list rather than going into an infinite loop.
8637
8638 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8639
8640         * optabs.c (expand_binop): When synthesizing double word rotates
8641         from single word shifts, use a new register target if the provided
8642         target is not a REG already.
8643
8644 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8645
8646         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8647         * c-common.c (handle_mode_attribute): Add extra arg to
8648         build_pointer_type_for_mode and build_reference_type_for_mode.
8649         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8650         for INTEGER_CST.
8651         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8652         Chain pointers via TYPE_NEXT_PTR_TO.
8653         (build_reference_type_for_mode): Similarly.
8654         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8655         and build_reference_type_for_mode.
8656         (tree_check4_failed): New function.
8657         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8658         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8659         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8660         Add check.
8661
8662 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8663
8664         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8665         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8666         when both A and B are nonnegative.
8667         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8668         nonzero.
8669
8670 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8671
8672         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8673         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8674
8675 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8676
8677         PR optimization/14669
8678         * fold-const.c (fold): Only unwiden integer comparisons for equality
8679         and inequality operators, or when the signedness doesn't change.
8680
8681 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8682
8683         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8684         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8685         * config/sparc/t-linux: New file.
8686
8687 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8688
8689         * gcse.c (can_assign_to_reg_p): New function, split out from...
8690         (want_to_gcse_p): ...here.
8691         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8692         the rhs of a store.
8693
8694 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8695
8696         * c-typeck.c (same_translation_unit_p): Fix pasto.
8697
8698 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8699
8700         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8701         (PARAM_MAX_SCHED_REGION_INSNS): New.
8702         * sched-rgn.c: Include params.h
8703         (MAX_RGN_BLOCKS): Delete.
8704         (MAX_RGN_INSNS): Delete.
8705         (too_large): Return bool.  Convert to PARAM_VALUE.
8706         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8707         * doc/invoke.texi (param): Document max-sched-region-blocks and
8708         max-sched-region-insns.
8709
8710 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8711
8712         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8713         for base types.
8714
8715 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8716
8717         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8718         change.
8719
8720 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8721
8722         PR c/14069
8723         * c-decl.c (finish_struct): Change type of incorrect flexible array
8724         field into error_mark_node.
8725
8726 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8727
8728         PR target/14580
8729         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8730         who are not local for Darwin PIC.
8731
8732 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8733
8734         * regrename.c (regrename_optimize): Set regs_ever_live for all
8735         registers introduced as replacement.
8736
8737 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8738
8739         PR middle-end/14470
8740         * expr.c (mark_queue): New function.
8741         (emit_insns_enqueued_after_mark): New function replacing
8742         emit_queue.  Clear the body of emitted queued insns.
8743         (emit_queue): Call emit_insns_enqueued_after_mark.
8744         (store_expr): Mark the increment queue on entry.  Emit
8745         only the incrementations queued when expanding the source.
8746
8747 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8748
8749         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8750         of top level bootstrap, and consistency).  Reindent.
8751         * configure: Regenerate.
8752
8753 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8754
8755         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8756         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8757         unnecessary casts.
8758
8759 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8760
8761         PR target/14291
8762         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8763         __MINGW32__.
8764
8765 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8766
8767         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8768         to nonimmediate_operand.
8769         ("*doloop_di"): Likewise.
8770
8771 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8772
8773         * real.h (struct real_value): Use the same type for all
8774         bitfields.  Rename exp to uexp.
8775         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8776         Adjust all uses of exp...
8777         * builtins.c: ... here, ...
8778         * emit-rtl.c: ... here, and ...
8779         * real.c: ... and here.
8780
8781 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8782
8783         * pretty-print.c (pp_base_maybe_space): New function.
8784         * pretty-print.h (pp_base_maybe_space): Declare.
8785         (pp_maybe_space): New macro.
8786
8787 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8788
8789         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8790
8791 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8792
8793         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8794         of using register multiplication cost.
8795         (expand_mult): Adapt choose_mult_variant call.
8796         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8797         of MODE; pass appropriate cost bound.  Adjust result when
8798         performing signed multiplication by a negative constant.
8799         Don't use intermediate modes larger than word_mode.
8800
8801 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8802
8803         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8804         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8805         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8806         * explow.c (expr_size): Likewise.
8807         * expr.h (placeholder_list, find_placeholder): Deleted.
8808         * expr.c (store_constructor): Likewise.
8809         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8810         (placeholder_list, find_placeholder): Deleted.
8811         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8812         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8813         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8814         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8815         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8816         Likewise.
8817         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8818         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8819         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8820         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8821         Clean up by using first_rtl_op.
8822         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8823         (substitute_placeholder_in_expr): New function.
8824         * tree.def (WITH_RECORD_EXPR): Deleted.
8825         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8826         (substitute_placeholder_in_expr): New.
8827
8828 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8829
8830         * dojump.c (prefer_and_bit_test): Fix which part of
8831         the and_test is replaced.
8832
8833 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8834
8835         * frontends.texi: Add missing line.
8836
8837 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8838             Chris Devers  <cdevers@pobox.com>
8839             Joseph S. Myers  <jsm@polyomino.org.uk>
8840
8841         * doc/frontends.texi: Rewrite.
8842         * doc/gcc.texi: Update last modification date.
8843
8844 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8845
8846         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8847         message before redirecting the edge.
8848
8849 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8850
8851         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8852         flag.
8853         * explow.c (force_not_mem): Set REG_POINTER flag according to
8854         MEM_POINTER one.
8855         * rtl.h (MEM_POINTER): New macro.
8856         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8857         for MEM_POINTER.
8858
8859 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8860
8861         PR target/13889
8862         * cse.c (fold_rtx): Avoid substituting constants into unary
8863         conversion operations.
8864
8865 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8866
8867         * fold-const.c (fold): Replace "expr" with "t".
8868
8869 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8870
8871         PR c/12373
8872         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8873         DECL_ORIGINAL_TYPE if there isn't one.
8874
8875 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8876
8877         * fold-const.c (fold): Replace "final_type" with "type".
8878         Remove variable "final_type".
8879
8880 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8881
8882         * fold-const.c (fold): Constify "type".
8883         Replace "TREE_TYPE (t)" with "type".
8884
8885 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8886
8887         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8888         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8889         via (*targetm.foo) () with targetm.foo ().
8890
8891 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8892
8893         PR other/14630
8894         * doc/install.texi: Add info directory category and entry.
8895
8896 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8897
8898         * fold-const.c (fold): Replace "t" with "tem" where it is used
8899         as a temporary variable.  Remove "orig_t" and all of its uses.
8900
8901 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8902
8903         * fold-const.c (fold): Remove variable "invert".
8904         Move the handling of relational expressions that can be folded
8905         to a constant ...
8906         (fold_relational_const): ... here.
8907         (tree_expr_nonzero_p): New.
8908
8909 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8910
8911         PR c/14635
8912         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8913         DEF_GCC_BUILTIN.
8914
8915 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8916
8917         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8918         (GTFILES): Add $(srcdir)/dojump.h.
8919         (gt-dojump.h): New dependency.
8920         * dojump.c (and_reg, and_test, shift_test): New static variables.
8921         (prefer_and_bit_test): New function.
8922         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8923
8924 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8925
8926         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8927         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8928         reorg.c, tree.h: Fix comment typos.
8929
8930 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8931
8932         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8933         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8934         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8935         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8936         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8937         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8938         targetm.foo ().
8939
8940 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8941
8942         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8943         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8944         always_inline attribute.
8945         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8946         Treat expansion as completed even if literal argument is
8947         invalid (so that other expansions are not tried in vain).
8948
8949 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8950
8951         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8952         const0_rtx.
8953
8954 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8955
8956         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8957         ...
8958         (fold_abs_const): ... here.
8959
8960 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8961
8962         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8963
8964 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8965
8966         PR target/11520
8967         * config/avr/avr.md ("call_insn"): Handle explicit integer
8968         specially.
8969         (call_value_insn): Likewise.
8970
8971 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8972
8973         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8974
8975 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8976
8977         * fold-const.c (negate_expr): Move the handling of constants
8978         ...
8979         (fold_negate_const): ... here.
8980
8981 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8982
8983         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8984         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8985         * tree.c (debug_no_type_hash): Deleted.
8986         (type_hash_canon): Abort if passed a variant.
8987         Check lang_hooks.types.hash_types.
8988         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8989         (build_array_type): Remove unnecessary allocation of pointer type.
8990         (build_complex_type): Properly qualify resulting type.
8991
8992 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8993
8994         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8995
8996 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8997
8998         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8999         (expand_mult): ...here.
9000         (extract_high_half): New, split out from expand_mult_highpart.
9001         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
9002         (expand_highpart): Evaluate the cost of a shift/add sequence,
9003         then see if any of the specialized optabs are cheaper.
9004
9005 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
9006
9007         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
9008
9009 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9010
9011         * convert.c (convert_to_real): Add more math builtins.
9012
9013 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9014
9015         * convert.c (convert_to_real): Reformat using switch stmt.
9016
9017 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
9018
9019         * c-common.c (pointer_int_sum): Do not complain about using
9020         pointers to pointers-to-members.
9021
9022 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
9023
9024         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
9025         have moved to the target hooks structure".
9026
9027 2004-03-18  James E Wilson  <wilson@specifixinc.com>
9028
9029         * config/mips/mips.md (type): Split move into arith and fmove.  Split
9030         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
9031         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
9032         Likewise.
9033         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
9034         Likewise.
9035         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
9036         rm7_fp_quick): Likewise.
9037         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
9038         rm9k_fquick): Likewise.
9039         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
9040         Likewise.
9041         (ir_sr70_icmp): Delete.
9042
9043 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9044
9045         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
9046         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
9047         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
9048         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
9049         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
9050         Protect with proper check.
9051         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
9052         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
9053         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
9054         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
9055         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
9056         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
9057         not TYPE_FIELDS.
9058         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
9059
9060 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
9061
9062         * gcse.c (eliminate_partially_redundant_loads): Reject change if
9063         dest is set between beginning and current insn.
9064
9065 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
9066
9067         * c-decl.c (grokdeclarator): Do not complain about redeclaring
9068         visible "static" identifiers "extern" in a local scope.
9069         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
9070         post-increments/decrements.
9071
9072 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
9073
9074         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
9075         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
9076         (xtensa_va_start): Remove assignment to current_function_arg_words.
9077
9078 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
9079
9080         * alias.c (record_set): Detect the case where a register is assigned
9081         a new value that has the same base term as the old one.
9082
9083 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9084
9085         * doloop.c: Removed.
9086         * loop-doloop.c: New file.
9087         * Makefile.in (doloop.o): Remove.
9088         (loop-doloop.o): New.
9089         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
9090         * cfgloopanal.c (get_loop_level): New function.
9091         * loop-iv.c (iv_number_of_iterations): Handle case when loop
9092         is leaved immediatelly.
9093         * loop.c (strength_reduce): Do not call doloop optimization.
9094         * loop.h (LOOP_BCT): Removed.
9095         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
9096         (rest_of_handle_loop2): Call doloop_optimize_loops.
9097         (rest_of_compilation): Test for optimizations moved to
9098         rest_of_handle_loop2.
9099
9100 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
9101
9102         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
9103         for mixed mode.
9104         (rs6000_emit_prologue): Ditto.
9105         (rs6000_emit_epilogue): Ditto.
9106         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
9107         macro for mixed mode.
9108
9109 2004-03-18  Jan Hubicka  <jh@suse.cz>
9110
9111         * predict.c (propagate_freq): Compute correctly frequency of
9112         EXIT_BLOCK.
9113
9114 2004-03-17  Eric Christopher  <echristo@redhat.com>
9115
9116         * builtins.c (apply_args_size): Use reg_raw_mode.
9117         (apply_result_size): Ditto.
9118
9119 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9120
9121         PR target/14620
9122         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9123
9124 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
9125
9126         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9127         32-bit builds when defaulting to 32-bit.
9128
9129 2004-03-17  Jan Hubicka  <jh@suse.cz>
9130
9131         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9132         array.
9133
9134 2004-03-17  James E Wilson  <wilson@specifixinc.com>
9135
9136         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9137         (hazard_nop): Change type to nop.
9138         (type): Split arith into arith, shift, slt, clz.  Delete darith.
9139         Fix all uses.  Change arith to multi if more than one insn emitted.
9140         * config/mips/5400.md (ir_vr54_arith): Likewise.
9141         * config/mips/5500.md (ir_vr55_arith): Likewise.
9142         * config/mips/7000.md (rm7_int_other): Likewise.
9143         * config/mips/9000.md (rm9k_int): Likewise.
9144         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9145
9146 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
9147
9148         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9149         to hold the subtype tree instead of recomputing it several times.
9150
9151 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9152
9153         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9154         CC_INVERT.
9155         * config/mn10300/mn10300.md (cc): Remove "invert".
9156
9157 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9158
9159         * builtins.c (integer_valued_real_p): Add builtin rint.
9160         (fold_builtin): Likewise.
9161         * convert.c (convert_to_real): Likewise.
9162
9163         * convert.c (convert_to_real): Fix typos in `long double'
9164         builtins.
9165
9166 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
9167
9168         PR c++/14481
9169         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9170         generated COMPOUND_EXPRs.
9171
9172 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9173
9174         * config/h8300/t-rtems (h8300-*-rtems*): New.
9175
9176 2004-03-16  Eric Christopher  <echristo@redhat.com>
9177
9178         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9179
9180 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9181
9182         * config/i386/i386-protos.h: Add a prototype for
9183         ix86_reverse_condition.
9184         * config/i386/i386.c (ix86_reverse_condition): New.
9185         * config/i386/i386.h (REVERSE_CONDITION): Use
9186         ix86_reverse_condition.
9187         * config/i386/i386.md: Use ix86_reverse_condition instead of
9188         REVERSE_CONDITION.
9189
9190 2004-03-16  J. Brobecker  <brobecker@gnat.com>
9191
9192         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9193
9194 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9195
9196         PR bootstrap/12974
9197         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9198
9199 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9200
9201         * c-common.c (c_common_type_for_mode): Build vector types on
9202         demand.
9203         (handle_mode_attribute): Deprecate using the mode attribute
9204         to create vector types.  Fix indentation.
9205         (vector_type_node_list): Remove.
9206         (handle_vector_size_attribute): Create vector types on demand.
9207         Strip a NON_LVALUE_EXPR from the attribute if there is one.
9208         * c-typeck.c (comptypes): Make vector types compatible if they
9209         have the same underlying mode.
9210         (convert_for_assignment): Use comptypes to convert between
9211         vector types.
9212         * tree.c (build_common_tree_nodes_2): Do not create vector types.
9213         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9214         vector types.
9215         * tree.h: Remove vector types.
9216         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9217         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9218         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9219         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9220         * doc/extend.texi (Vector Types): Document how to use the
9221         vector_size attribute to create vectors, rather than mode.
9222
9223         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9224         * config/i386/emmintrin.h: Likewise.
9225         * config/i386/mmintrin.h: Likewise.
9226         * config/i386/xmmintrin.h: Likewise.
9227         * config/sh/ushmedia.h: Likewise.
9228
9229 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
9230
9231         * config/freebsd-spec.h, config/arc/arc-protos.h,
9232         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9233         config/arm/linux-gas.h, config/arm/semi.h,
9234         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9235         config/ia64/freebsd.h, config/mips/7000.md,
9236         config/mips/9000.md, config/ns32k/ns32k-protos.h,
9237         config/sparc/pbd.h: Update copyright.
9238
9239 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9240
9241         PR target/14577
9242         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
9243
9244 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
9245
9246         * combine.c (combine_simplify_rtx): Remove the "last"
9247         parameter and its documentation.  Adjust recursive calls.
9248         (simplify_logical): Always perform the only simplification
9249         controlled by "last", if the simplified expression is
9250         actually different.
9251         (try_combine): Do not pass the "last" parameter to
9252         combine_simplify_rtx.
9253
9254 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
9255
9256         PR target/14599
9257         * config/mips/mips.md (UNSPEC_GP): New constant.
9258         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9259         an UNSPEC instead of (reg $gp).
9260         (mips16_gp_pseudo_reg): Change accordingly.
9261         (print_operand): Print $gp directly when handling CONST_GP_P.
9262
9263 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9264
9265         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9266         * longlong.h: Make code 68060 clean when compiling for m68060.
9267
9268 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
9269
9270         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9271         * doc/md.texi: Clarify description of "i" constraint.
9272
9273 2004-03-15  James E Wilson  <wilson@specifixinc.com>
9274
9275         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9276         Split store into store, fpstore, fpidxstore.  Fix all uses.
9277         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9278         Likewise.
9279         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9280         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9281         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9282         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9283         ir_sr70_fstore): Likewise.
9284
9285 2004-03-15  Richard Henderson  <rth@redhat.com>
9286
9287         PR middle-end/14535
9288         * except.c (collect_one_action_chain): Record action for cleanup
9289         outer of exception spec.
9290
9291 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
9292
9293         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9294         Fix the check for abort and only do the mmap if we can.
9295
9296 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
9297
9298         * config/sparc/sparc.h: Rework comments about the code model
9299         in 64-bit environment and the mode 'Pmode'.
9300         * doc/invoke.texi (SPARC options): Rework description of the
9301         different code models supported in 64-bit environment.
9302
9303 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9304
9305         * defaults.h (REVERSIBLE_CC_MODE): Define.
9306         * jump.c (reversed_comparison_code_parts): Don't check if
9307         REVERSIBLE_CC_MODE is defined.
9308
9309 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
9310
9311         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9312         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9313         hosthooks.h, params.h, ra-colorize.c, web.c,
9314         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9315         config/avr/avr-protos.h, config/avr/avr.md,
9316         config/fr30/fr30-protos.h, config/fr30/fr30.md,
9317         config/h8300/fixunssfsi.c, config/i386/darwin.h,
9318         config/i386/freebsd.h, config/i386/freebsd64.h,
9319         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9320         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9321         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9322         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9323         config/pa/pa64-regs.h, config/rs6000/aix41.h,
9324         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9325         config/sparc/aout.h, config/sparc/freebsd.h,
9326         config/sparc/litecoff.h, config/vax/vax-protos.h,
9327         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9328         copyright.
9329
9330 2004-03-15  Paul Brook  <paul@codesourcery.com>
9331
9332         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9333
9334 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9335
9336         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9337         (pp_c_cv_qualifier): Document.
9338         (pp_c_space_for_pointer_operator): Likewise.
9339         (pp_c_integer_constant): Likewise.
9340         (pp_c_identifier): Likewise.
9341         (pp_c_init_declarator): Don't print function body.
9342
9343 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
9344
9345         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9346         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9347         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9348         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
9349         wording and grammar.
9350
9351 2004-03-14  Roger Sayle  <roger@eyesopen.com>
9352
9353         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9354         with lang_hooks.foo ().
9355         * builtins.c (expand_builtin_va_arg): Likewise.
9356         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9357         c_common_type_for_mode, c_common_nodes_and_builtins,
9358         handle_mode_attribute, handle_vector_size_attribute): Likewise.
9359         * c-convert.c (convert): Likewise.
9360         * c-format.c (check_format_types): Likewise.
9361         * c-objc-common.c (c_tree_printer): Likewise.
9362         * c-typeck.c (build_unary_op, build_conditional_expr,
9363         build_binary_op): Likewise.
9364         * calls.c (try_to_integrate, expand_call,
9365         emit_library_call_value_1): Likewise.
9366         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9367         Likewise.
9368         * cgraphunit.c (record_call_1, cgraph_analyze_function,
9369         cgraph_expand_function): Likewise.
9370         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9371         * coverage.c (build_fn_info_type, build_ctr_info_type,
9372         build_gcov_info, create_coverage): Likewise.
9373         * dbxout.c (dbxout_init): Likewise.
9374         * diagnostic.c (diagnostic_report_current_function): Likewise.
9375         * dojump.c (do_jump): Likewise.
9376         * dwarf2out.c (dwarf2_name): Likewise.
9377         * except.c (init_eh): Likewise.
9378         * explow.c (expr_size, int_expr_size): Likewise.
9379         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9380         Likewise.
9381         * expr.c (store_expr, store_constructor, safe_from_p,
9382         expand_expr_real, do_store_flag, try_casesi): Likewise.
9383         * function.c (push_function_context_to, pop_function_context_from,
9384         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9385         put_var_into_stack, allocate_struct_function, current_function_name):
9386         Likewise.
9387         * integrate.c (copy_decl_for_inlining, expand_inline_function):
9388         Likewise.
9389         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9390         lhd_print_error_function): Likewise.
9391         * opts.c (handle_option, decode_options): Likewise.
9392         * passes.c (open_dump_file): Likewise.
9393         * print-tree.c (print_node): Likewise.
9394         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9395         expand_decl_cleanup, emit_case_nodes): Likewise.
9396         * stor-layout.c (variable_size): Likewise.
9397         * toplev.c (announce_function, wrapup_global_declarations,
9398         check_global_declarations, compile_file, default_tree_printer,
9399         process_options, lang_dependent_init, finalize): Likewise.
9400         * tree-dump.c (dequeue_and_dump): Likewise.
9401         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9402         initialize_inlined_parameters, declare_return_variable,
9403         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9404         walk_tree, copy_tree_r): Likewise.
9405         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9406         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9407         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9408         variably_modified_type_p, dump_tree_statistics): Likewise.
9409         * varasm.c (assemble_variable, compare_constant, copy_constant,
9410         force_const_mem, compute_reloc_for_constant, output_constant,
9411         output_addressed_constants, initializer_constant_valid_p): Likewise.
9412
9413 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9414
9415         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9416
9417 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9418
9419         * doc/install.texi: Reflect autoconf and automake version for
9420         libffi. Update autoconf version to 2.59.
9421
9422 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9423
9424         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9425         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9426         make_range, build_range_check, fold_range_test, unextend,
9427         constant_boolean_node, fold_binary_op_with_conditional_arg,
9428         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9429         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9430         with lang_hooks.foo ().
9431
9432 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9433
9434         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9435
9436 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9437
9438         * doc/install.texi: Note status of -fnew-ra.
9439
9440 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9441
9442         PR middle-end/14470
9443         * expr.c (store_expr): Call emit_queue before generating the move
9444         from the temporary to the original target.  Protect the temporary
9445         from emit_queue.
9446
9447 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9448
9449         PR target/14533
9450         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9451         other than UNSPEC_GOTOFF.
9452
9453 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9454
9455         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9456         to arm_legitimate_index_p.  Update all callers with SET as default
9457         value.
9458         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9459         range if OUTER is a sign-extend operation on QImode.  Correctly
9460         reject shift operations on sign-extended QImode addresses.
9461         (bad_signed_byte_operand): Delete.
9462         (arm_extendqisi_mem_op): New function.
9463         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9464         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9465         constraints.
9466         (CONSTRAINT_LEN): New.
9467         (EXTRA_CONSTRAINT): Delete.  Replace with...
9468         (EXTRA_CONSTRAINT_STR): ... this.
9469         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9470         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9471         is now always default.
9472         (define_splits for bad sign-extend loads): Delete.
9473         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9474         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9475         Rework 'U' constraint to 'Uv'.
9476         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9477         arm_extendqisi_mem_op.
9478         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9479         Add Uq constraint.
9480
9481 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9482
9483         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9484         with targetm version.
9485
9486         PR target/14567
9487         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9488         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9489         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9490         Update all users of RS6000_ARG_SIZE.
9491         (function_arg_advance): Count fregno using mode size.
9492         (function_arg): Handle long double split over regs and memory.
9493         (function_arg_partial_nregs): Likewise.
9494         (rs6000_va_arg): Repackage complex args.
9495
9496 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9497
9498         PR target/14047
9499         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9500         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9501         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9502
9503 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9504
9505         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9506         prototype.
9507         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9508         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9509
9510 2004-03-12  Andrew Pinski  <apinski@apple.com>
9511
9512         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9513         Use ret instead of result. Use addr instead of base.
9514
9515 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9516
9517         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9518         fixes required by libstdc++ and update installation instructions
9519         for libstdc++.a.
9520
9521 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9522
9523         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9524         leading '@' on fastcall symbols before stripping suffix.
9525
9526 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9527
9528         * combine.c (unmentioned_reg_p): New function to check whether an
9529         expression is a "specialization" of another, i.e. that there are
9530         no registers or memory references mentioned in the first that don't
9531         appear in the second.
9532         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9533         (combine_instructions): Also try combining instructions using the
9534         REG_EQUAL note from a preceding log-linked instruction.
9535
9536 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9537
9538         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9539
9540 2004-03-12  Matt Austern  <austern@apple.com>
9541
9542         * target.h (struct gcc_target): New target hook, unwind_label.
9543         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9544         * output.h (default_emit_unwind_label): New function.
9545         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9546         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9547         (TARGET_SUPPORTS_HIDDEN): New target macro.
9548         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9549         that corresponds to this FDE.
9550         (FRAME_BEGIN_LABEL): Allow target to override default label.
9551         (output_call_frame_info): If FDEs are linknonce, then use extra
9552         indirection for FDE encoding, output a label for each FDE, and
9553         output an empty label for each function without an FDE.
9554         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9555         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9556         decls with DECL_ONE_ONLY set, if that macro is defined.
9557         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9558         for a SUPPORTS_ONE_ONLY target.
9559         * config/darwin-protos.h (darwin_unique_section): Declare.
9560         (darwin_asm_named_section): Likewise.
9561         (darwin_section_type_flags): Likewise.
9562         (darwin_non_lazy_pcrel): Likewise.
9563         (darwin_emit_unwind_label): Likewise.
9564         (darwin_make_decl_one_only): Likewise.
9565         * config/darwin.c (machopic_finish): Get rid of tweak that
9566         eliminate stubs for symbols that are defined.
9567         (darwin_encode_section_info): Don't treat weak functions as defined.
9568         (darwin_make_decl_one_only): Define.
9569         (darwin_asm_named_section): Likewise.
9570         (darwin_section_type_flags): Likewise.
9571         (darwin_unique_section): Likewise.
9572         (darwin_emit_unwind_label): Likewise.
9573         (darwin_non_lazy_pcrel): Likewise.
9574         (darwin_asm_output_dwarf_delta): Difference between two labels is
9575         local only if both labels are local.
9576         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9577         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9578         (TARGET_SUPPORTS_HIDDEN): Likewise.
9579         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9580         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9581         (FRAME_BEGIN_LABEL): Likewise.
9582         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9583         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9584         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9585         (TARGET_ASM_UNIQUE_SECTION): Define.
9586         (EH_FRAME_SECTION_NAME): Define.
9587         (EH_FRAME_SECTION_ATTR): Likewise.
9588         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9589         (TARGET_ASM_NAMED_SECTION): Likewise.
9590         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9591         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9592         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9593         TARGET_ASM_EMIT_UNWIND_LABEL.
9594
9595 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9596
9597         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9598         existing exp10* case.
9599         (expand_builtin): Likewise.
9600
9601 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9602
9603         * doc/tm.texi (registers) <Values in Registers>: Add
9604         entry for REGMODE_NATURAL_SIZE.
9605
9606 2004-03-12  Richard Henderson  <rth@redhat.com>
9607
9608         PR target/14547
9609         * target.h (struct gcc_target): Move calls substructure before
9610         booleans.  Add split_complex_arg.
9611         * function.c (assign_parms, split_complex_args): Use it.
9612         * calls.c (expand_call): Likewise.
9613         (split_complex_values): Likewise.  Check for splittable types
9614         before allocating memory.
9615         (split_complex_types): Likewise.
9616         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9617         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9618         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9619         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9620         (TARGET_SPLIT_COMPLEX_ARG): New.
9621         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9622         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9623         (rs6000_override_options): Zap it for non-AIX.
9624         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9625         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9626         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9627         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9628         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9629         SPLIT_COMPLEX_ARGS entry.
9630
9631 2004-03-11  Richard Henderson  <rth@redhat.com>
9632
9633         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9634         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9635         (alpha_emit_xfloating_arith): Update to match.
9636         (alpha_emit_xfloating_compare): Likewise.
9637         (alpha_emit_xfloating_cvt): Likewise.
9638         (alpha_emit_xfloating_libcall): Take already built symbol,
9639         mark call const.
9640         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9641         op1 in a register.
9642
9643 2004-03-11  Richard Henderson  <rth@redhat.com>
9644
9645         PR target/14539
9646         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9647
9648         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9649
9650 2004-03-11  Richard Henderson  <rth@redhat.com>
9651
9652         PR middle-end/14477
9653         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9654
9655 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9656
9657         PR target/14262
9658         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9659         defined, pass small BLKmode values in registers in the low-order part.
9660
9661 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9662
9663         * combine.c (if_then_else_cond): Check for NULL return value of
9664         simplify_gen_subreg.
9665
9666 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9667
9668         PR target/14496
9669         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9670         TARGET_SINGLE_FLOAT.
9671
9672 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9673
9674         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9675         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9676         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9677         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9678
9679 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9680
9681         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9682         -((int)X>>C) where C is an integer constant one bit less than the
9683         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9684         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9685
9686         * simplify-rtx.c (simplify_unary_operation): Also implement the
9687         above transformations at the RTL level.
9688
9689 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9690
9691         * real.c (encode_ibm_extended): Do round low word.
9692
9693 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9694
9695         * config/arm/arm.md (is_xscale): Comment this attribute and move
9696         it a bit further up in the file, closer to related attributes.
9697
9698 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9699
9700         * config/host-solaris.c (sol_gt_pch_use_address): Add
9701         missing terminating marker to comment.
9702
9703 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9704
9705         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9706         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9707         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9708         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9709         move_operand as source predicate in all cases.
9710         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9711         Test reg_or_0_operand.  Use move_operand as source predicate.
9712         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9713         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9714         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9715         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9716         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9717         Use move_operand as source predicate.  Remove 'K' constraint.
9718         (*movqi_internal): Likewise movqi_internal.
9719         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9720         reg_or_0_operand.  Use move_operand as source predicate.
9721         (*movsf_softfloat): Likewise movsf_internal2.
9722         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9723         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9724         (*movdf_softfloat): Likewise movdf_internal2.
9725         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9726         for DImode if !TARGET_64BIT.
9727         (mips_legitimize_move): Simplify accordingly.
9728
9729 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9730
9731         PR/14362
9732         * var-tracking.c (struct variable_def): Added field refcount.
9733         (variable_htab_free): Decrease the refcount and delete variable
9734         only if there are no more references.
9735         (unshare_variable): New function.
9736         (vars_copy_1): Increase refcount instead of copying the variable.
9737         (variable_union): Share the variables where possible, unshare
9738         the variables if needed.
9739         (variable_different_p): Return false if var1 and var2 are
9740         the same structure.
9741         (variable_was_changed): Init the refcount of new variable.
9742         (set_frame_base_location): Unshare variable if needed.
9743         (set_variable_part): Init the refcount of new variable.
9744         Unshare the variables if needed.
9745         (delete_variable_part): Unshare the variables if needed.
9746         (emit_notes_for_differences_1): Init the refcount of new variable.
9747         (vt_add_function_parameters): Do not add function parameters to
9748         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9749         (vt_initialize): Do not add frame_base_decl to IN set of
9750         ENTRY_BLOCK_PTR because it is unused anyway.
9751
9752 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9753
9754         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9755         (vars_copy): Likewise.
9756         (variable_union): Likewise.
9757         (set_variable_part): Likewise.
9758         (delete_variable_part): Likewise.
9759
9760 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9761
9762         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9763         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9764         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9765         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9766         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9767         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9768         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9769         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9770         config/stormy16/stormy16.c: Fix comment typos and formatting.
9771
9772 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9773
9774         * configure: Regenerate, since I forgot to while committing Paolo's
9775         changes.
9776
9777 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9778
9779         PR ada/14131
9780         Move language detection to the top level.
9781         * configure.ac: Remove code to detect languages,
9782         it now lives exclusively in the top level.
9783         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9784         top level, renamed to ACX_PROG_GNAT.
9785
9786 2004-03-10  Richard Henderson  <rth@redhat.com>
9787
9788         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9789         extra arguments.
9790         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9791         and host_xmake_file fragments.
9792         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9793         (gt_pch_restore): Similarly for gt_pch_use_address.
9794         (default_gt_pch_get_address): New.
9795         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9796         (default_gt_pch_use_address): Split out of gt_pch_restore.
9797         (mmap_gt_pch_use_address): Likewise.
9798         * hooks.c (hook_voidp_size_t_null): Remove.
9799         (hook_bool_voidp_size_t_false): Remove.
9800         * hooks.h: Likewise.
9801         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9802         default_ or mmap_ definitions.
9803         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9804         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9805         and gt_pch_use_address.
9806         * config/host-linux.c, config/host-solaris.c: New files.
9807         * config/x-linux, config/x-solaris: New files.
9808         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9809         Update for changed definition.
9810         (darwin_rs6000_gt_pch_use_address): Likewise.
9811         * doc/hostconfig.texi: Update docs.
9812
9813 2004-03-10  Richard Henderson  <rth@redhat.com>
9814
9815         PR c/14517
9816         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9817         except for pedantic c90 mode.
9818
9819 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9820
9821         * configure.ac: Bump AC_PREREQ to 2.59.
9822         * configure: Regenerate.
9823
9824 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9825
9826         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9827         (exp10_optab, exp2_optab): Define corresponding macros.
9828         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9829         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9830         using exp10?f2 and exp2?f2 patterns.
9831         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9832         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9833         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9834         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9835
9836         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9837         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9838         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9839
9840 2004-03-10  Anthony Green  <green@redhat.com>
9841
9842         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9843
9844 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9845
9846         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9847         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9848         __LONGDOUBLE128.
9849         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9850         TARGET_OS_AIX_CPP_BUILTINS.
9851         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9852         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9853         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9854         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9855         previous change.
9856
9857 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9858
9859         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9860
9861 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9862
9863         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9864         __LONGDOUBLE128 on AIX.
9865
9866 2004-03-10  Andrew Haley  <aph@redhat.com>
9867
9868         PR optimization/14381
9869         * function.c (expand_function_end): Emit a blockage insn before
9870         the epilogue when -fnon-call-exceptions is used.
9871
9872         * except.c (expand_start_all_catch): Make comment more accurate.
9873
9874 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9875
9876         PR target/14480
9877         * config/rs6000/t-rtems: Add missing file on branch.
9878
9879 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9880
9881         * dbxout.c (dbxout_symbol_location): Do not output references
9882         to optimized-out constant pool symbols.
9883
9884 2004-03-10  Andreas Schwab  <schwab@suse.de>
9885
9886         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9887         twon34_r.
9888
9889 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9890
9891         * alias.c (alias_sets_might_conflict_p): New.
9892         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9893         * common.opt (Wstrict-aliasing=): New.
9894         * flags.h (warn_strict_aliasing): Change type to int.
9895         * opts.c (warn_strict_aliasing): Change type to int.
9896         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9897         * tree.h (alias_sets_might_conflict_p): Declare it.
9898         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9899
9900 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9901
9902         PR bootstrap/12371
9903         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9904         (CALL_USED_REGISTERS): Likewise.
9905         (REG_CLASS_CONTENTS): Likewise.
9906         (REG_ALLOC_ORDER): New.
9907         (REGNO_REG_CLASS): Use regno_reg_class.
9908         * config/m68k/m68k.c: Add regno_reg_class array.
9909
9910 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9911
9912         * config/ia64/ia64.md (divsi3): Fix algorithm.
9913           (udivsi3): Ditto.
9914           (setf_exp_xf): Remove '*' from name.
9915         * testsuite/gcc.dg/20040309-1.c: New test.
9916
9917 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9918
9919         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9920         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9921         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9922         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9923         (sparc_aout_select_rtx_section): Don't check
9924         SUNOS4_SHARED_LIBRARIES.
9925         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9926
9927 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9928
9929         PR other/14474
9930         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9931         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9932         INTERNALS".
9933
9934 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9935
9936         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9937         (LIBGCC_SPEC): Update to match.
9938
9939 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9940
9941         * c-decl.c (last_function_parms, last_function_parm_tags)
9942         (last_function_parm_others, current_function_parms)
9943         (current_function_parm_tags, current_function_parm_others):
9944         Delete.
9945         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9946         New macros.
9947         (grokdeclarator): For function definitions, save the arg-info
9948         block from the declarator in DECL_ARGUMENTS.
9949         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9950         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9951         contains only PARM_DECLs.  Improve diagnostics.
9952         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9953         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9954         (store_parm_decls_newstyle): Take the function to operate on,
9955         and an arg-info block, as arguments; don't get anything from
9956         current_function_* globals.
9957         (store_parm_decls_oldstyle): Likewise.
9958         (store_parm_decls): Pass fndecl and its arg-info block down to
9959         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9960         argument lists through store_parm_decls_newstyle to reduce
9961         overhead.
9962         (pushdecl): Comment on the problems with the call to copy_node.
9963         Clear DECL_ARGUMENTS of the old node after copying it, if it
9964         is an arg-info block instead of a chain of decls.
9965         (start_function): Do not manipulate current_function_parm* or
9966         last_function_parm*.
9967
9968 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9969             Andrew Pinski  <pinskia@physics.uc.edu>
9970
9971         * ifcvt.c (noce_try_sign_mask): New function to transform
9972         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9973         (noce_process_if_block): Call noce_try_sign_mask.
9974
9975 2004-03-09  Andrew Pinski  <apinski@apple.com>
9976
9977         * c-typeck.c (tagged_types_tu_compatible_p):
9978         Fix typo.
9979
9980 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9981
9982         * simplify-rtx.c (simplify_const_relational_operation): New function
9983         renamed from simplify_relational_operation.
9984         (simplify_relational_operation): Change prototype to accept an
9985         additional mode argument.  Call simplify_const_relational_operation.
9986         (simplify_gen_relational): Update simplify_relational_operation call.
9987         (simplify_ternary_operation): Update simplify_relational_operation
9988         subroutine call to use simplify_const_relational_operation instead.
9989
9990         * rtl.h (simplify_const_relational_operation): Prototype here.
9991         (simplify_relational_operation): Add addtional mode argument.
9992
9993         * combine.c (combine_simplify_rtx): Update calls to
9994         simplify_relational_operation.
9995         (simplify_set): Likewise.
9996         (gen_binary): Likewise.
9997         * cse.c (fold_rtx): Likewise.
9998         * dojump.c (compare_from_rtx): Likewise.
9999         (do_compare_rtx_and_jump): Likewise.
10000         * integrate.c (subst_constants): Likewise.
10001         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
10002
10003 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10004
10005         * config/m32r/m32r.md: Remove all define_peephole's.
10006
10007 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
10008
10009         * config/rs6000/rs6000.md: Remove trailing whitespace.
10010
10011 2004-03-08  Eric Christopher  <echristo@redhat.com>
10012
10013         * Makefile.in (site.exp): Add libiconv variable definition.
10014
10015 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
10016
10017         * configure: Regenerate for config/accross.m4 correction.
10018
10019 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
10020
10021         PR target/14480
10022         * config/rs6000/t-rtems: Add missing file on branch.
10023
10024 2004-03-08  Roger Sayle  <roger@eyesopen.com>
10025
10026         PR middle-end/14289
10027         * c-typeck.c (c_mark_addressable): A register variable should
10028         be considered global if its not automatic, i.e. TREE_PUBLIC,
10029         TREE_STATIC or DECL_EXTERNAL.
10030         * function.c (put_var_into_stack): Call abort when placing a
10031         hard register into the stack, if x_parm_reg_stack_loc is NULL.
10032
10033 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
10034
10035         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
10036         ("*extendqisi2_short_displ"): Likewise.
10037
10038 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10039
10040         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
10041         (comp_operator): Likewise.
10042         * config/pdp11/pdp11-protos.h: Remove corresponding
10043         prototypes.
10044
10045 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
10046
10047         * expr.c (highest_pow2_factor_for_type): Rename into
10048         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
10049         TYPE_ALIGN when the target is a COMPONENT_REF.
10050         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
10051
10052 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10053
10054         * config/rs6000/rs6000.c: Formatting fix.
10055         (legitimate_offset_address_p): Correct offset range check.
10056
10057         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
10058         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
10059         and MASK_STRING.
10060
10061 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10062
10063         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
10064         for little endian.
10065         ("ashrdi3_no_power"): Disable for little endian.
10066         (ashrdi3): Same.
10067
10068 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10069
10070         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
10071         builtins.
10072
10073 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
10074
10075         PR target/14471
10076         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
10077         case, checking for -no-mul-bug-abort option.
10078         * configure, config.in: Regenerate.
10079         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
10080         and -mno-mul-bug-workaround.
10081         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
10082         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
10083         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
10084         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
10085         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
10086         sure mulu.d is not last on cache-line.
10087         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
10088         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
10089         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
10090         (TARGET_SWITCHES): New options -mmul-bug-workaround and
10091         -mno-mul-bug-workaround.
10092         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
10093         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
10094         * config/cris/cris.c (cris_operand_extend_operator): Clarify
10095         relation to MULT in head comment.
10096         (cris_op_str): Abort for MULT.
10097         (cris_print_operand) <case '!'>: New case.
10098
10099 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
10100
10101         PR debug/11983
10102         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
10103         dw_val_class_vec.  Replace use throughout file.
10104         (dw_float_const): Delete.
10105         (dw_vec_const): New.
10106         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
10107         throughout file.
10108         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
10109         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
10110         (size_of_die): Adjust dw_val_class_vec sizing.
10111         (output_die): Output dw_val_class_vec.
10112         (insert_int, extract_int, insert_float): New functions.
10113         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
10114         Handle CONST_VECTOR.
10115         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
10116
10117 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
10118
10119         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10120         AltiVec abi cannot co-exist.
10121
10122         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10123
10124 2004-03-07  Jan Hubicka  <jh@suse.cz>
10125
10126         * except.c (emit_to_new_bb_before):  Break fallthru edges.
10127
10128 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
10129
10130         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10131         ("*lshrsi3"): Also accept an immediate for 68HC12.
10132         ("*ashrsi3_const"): Likewise.
10133         ("*ashrsi3"): Likewise.
10134         ("*ashlsi3_const"): Likewise.
10135         ("*ashlsi3"): Likewise.
10136         ("cmphi_1_hc12"): Compare two hard register by pushing them and
10137         comparing with a pop; don't use a split for that.
10138         ("cmphi split"): Disable compare split for 68HC12.
10139
10140         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10141         the status operands if they have side effects.
10142
10143 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10144
10145         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10146         definition.
10147         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10148         config/h8300/h8300.h, config/ia64/ia64.h,
10149         config/mcore/mcore.h, config/mmix/mmix.h,
10150         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10151         config/stormy16/stormy16.h, config/v850/v850.h,
10152         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10153         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10154         definition.
10155
10156 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10157
10158         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10159         <XOR_EXPR>: Fold x ^ x as zero.
10160         <AND_EXPR>: Fold x & x as x.
10161
10162 2004-03-07  Roger Sayle  <roger@eyesopen.com>
10163
10164         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10165         "foo++ == const" into "++foo == const+incr".
10166
10167 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
10168
10169         * config/mips/mips.c (mips_in_small_data_p): Return false if
10170         TARGET_ABICALLS.
10171
10172 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
10173
10174         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10175         the stack register.
10176         (expand_prologue): Don't make an interrupt or a trap handler a far
10177         symbol.
10178         (m68hc11_initial_elimination_offset): Likewise.
10179
10180 2004-03-06  Richard Henderson  <rth@redhat.com>
10181
10182         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10183
10184 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10185
10186         * config/ns32k/ns32k-protos.h: Add a prototype for
10187         ns32k_notice_update_cc.
10188         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10189         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10190         ns32k_notice_update_cc.
10191
10192 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10193
10194         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10195         "*load_multiple_si"): Allow only if reload_completed.
10196         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10197         Likewise.
10198
10199 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10200
10201         * config/vax/vax-protos.h: Add a prototype for
10202         vax_notice_update_cc.
10203         * config/vax/vax.c (vax_notice_update_cc): New.
10204         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10205         vax_notice_update_cc.
10206
10207 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
10208
10209         * collect2.c (main): Only export initfunc and finifunc if
10210         LD_INIT_SWITCH not defined.
10211         (scan_prog_file): Only export constructors and destructors if
10212         LD_INIT_SWITCH not defined.  Only export symbols not found in
10213         shared objects.
10214
10215 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10216
10217         * pa.md (icacheflush): Reorder operands to make match_scratch operand
10218         last.
10219         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10220         from calls to gen_icacheflush.
10221
10222 2004-03-06  Richard Henderson  <rth@redhat.com>
10223
10224         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10225         (TARGET_LONG_DOUBLE_128): New.
10226         (TARGET_SWITCHES): Add long-double-{128,64}.
10227         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10228         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10229         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10230         (WIDEST_HARDWARE_FP_SIZE): New.
10231         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10232         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10233         if TARGET_VAX_FLOAT.
10234         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10235         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10236
10237 2004-03-06  Richard Henderson  <rth@redhat.com>
10238
10239         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10240         botched rtx class conversion.
10241
10242 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10243
10244         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10245         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10246
10247         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10248         macros.
10249         * fold-const.c (fold_mathfn_compare, fold): Likewise.
10250
10251 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10252
10253         PR target/14343
10254         * config/i386/i386.md (movv2di_internal): Conditionalize on
10255         TARGET_SSE, not TARGET_SSE2.
10256
10257 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
10258
10259         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10260         duplicated line.
10261
10262 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10263
10264         * builtins.c: Consistently use logN not log* in comments.
10265
10266 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10267
10268         * rtl.h (mem_expr_equal_p): Function prototype added.
10269         * cfgcleanup.c (merge_memattrs): New function.
10270         (flow_find_cross_jump): Call merge_memattrs for matching insns.
10271         * emit-rtl.c (mem_expr_equal_p): New function.
10272
10273 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
10274
10275         * objc/objc-act.c (synth_module_prologue): Const-qualify
10276         objc_selector type if using the GNU runtime; fix generated
10277         signatures for objc_msg_lookup and objc_msg_lookup_super
10278         to match what GNU ObjC headers provide; reformat and clean up.
10279         (synth_self_and_ucmd_args): Use previously constructed (and
10280         hence possibly const-qualified) objc_selector type.
10281
10282 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10283
10284         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10285
10286 2004-03-05  Jason Merrill  <jason@redhat.com>
10287
10288         * tree.h (TYPE_HASH): Use TYPE_UID.
10289         (TREE_HASH): New macro with old definition of TYPE_HASH.
10290         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10291         (build_array_type, build_function_type): Likewise.
10292         (build_method_type_directly): Likewise.
10293         (build_offset_type, build_complex_type): Likewise.
10294         (type_hash_list, attribute_hash_list): Likewise. Now static.
10295         * except.c: s/TYPE_HASH/TREE_HASH/.
10296
10297 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
10298
10299         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10300         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
10301         __va_ndx by 2 words when referencing an argument on the stack.
10302         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
10303         words when an arg on the stack is first seen.
10304
10305 2004-03-05  Paul Brook  <paul@codesourcery.com>
10306
10307         * arm.h (ARM_FLAG_VFP): Remove.
10308         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10309         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10310
10311 2004-03-05  Paul Brook  <paul@codesourcery.com>
10312
10313         * function.c (assign_parms): Include pretend alignment offset.
10314
10315 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10316
10317         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10318         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10319
10320 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
10321
10322         * configure.ac: When passing --enable-languages to subdir
10323         configure when host != build, make sure we don't pass an empty
10324         value.
10325         * configure: Regenerate.
10326
10327 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
10328
10329         PR 13577
10330         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10331         options.
10332
10333 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10334
10335         * simplify-rtx.c (simplify_relational_operation): If
10336         flag_wrapv is set, do not move terms between the two
10337         side of a relational operator.
10338
10339 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
10340
10341         * rtlanal.c: Include target.h and output.h
10342         (rtx_cost, address_cost, default_address_cost): Move from...
10343         * cse.c (rtx_cost, address_cost, default_address_cost):
10344         ... this file.
10345         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10346         * Makefile.in: Adjust dependencies.
10347
10348 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
10349
10350         * cse.c (cse_end_of_basic_block): Make static.
10351         * local-alloc.c (function_invariant_p): Move to
10352         reload1.c.
10353         * loop.c (libcall_other_reg, record_excess_regs):
10354         Make static.
10355         * reload1.c (function_invariant_p): Moved here
10356         from local-alloc.c, made static.
10357         * rtl.h (cse_end_of_basic_block, function_invariant_p,
10358         libcall_other_reg, record_excess_regs): Remove
10359         declarations.
10360
10361 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10362
10363         * config/m32r/m32r.c (signed_comparison_operator): Add a
10364         missing parenthesis.
10365
10366 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
10367
10368         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10369         going to call mmap again.  Read the file into the right place.
10370         Give a fatal error if we have to relocate.
10371
10372 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
10373
10374         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10375         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10376
10377 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
10378
10379         PR other/14354
10380         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10381         round the same.  When rounding, clear bits that would cause a
10382         second rounding in pack_d.
10383         (_fpmul_parts): Ditto.  Remove #if 0:d code.
10384
10385 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
10386
10387         PR c++/14425, c++/14426
10388         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10389         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10390         Change C++ definitions to accept a 'const int' argument;
10391         the prototypes already do.
10392         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10393         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10394         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10395         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10396         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10397         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10398         end in ..._int; change them to accept an int instead of a char
10399         as the last parameter.
10400
10401 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10402
10403         * genmultilib:  Change '=' to '-' when translating option names
10404         to directory names.
10405
10406 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10407
10408         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10409         stack slot for temp used for result of BLKmode but in integral mode.
10410
10411 2004-03-04  Jan Hubicka  <jh@suse.cz>
10412
10413         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10414
10415         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10416         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10417
10418 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10419
10420         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10421         * testsuite/gcc.dg/20040303-1.c: New test.
10422
10423 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10424
10425         * ppro.md: Rewrite as a DFA pipeline description.
10426         * i386.md: Remove all uses of the ppro_uops attribute.
10427         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10428         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10429         ix86_sched_reorder, ix86_variable_issue,
10430         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10431         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10432         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10433         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10434         * athlon.md (athlon_ssecmp_load): Fix comment
10435
10436 2004-03-04  Stuart Hastings  <stuart@apple.com>
10437
10438         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10439
10440 2004-03-04  Stuart Hastings  <stuart@apple.com>
10441
10442         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10443         686, tell Darwin assembler to allow prefetch insns, non-empty def
10444         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10445
10446 2004-03-04  DJ Delorie  <dj@redhat.com>
10447
10448         PR optimization/14282
10449         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10450         between a call and the assignment of its return value.
10451
10452 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10453
10454         * config/h8300/h8300.c: Put a comment for every function.
10455
10456 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10457
10458         * config/h8300/h8300.md: Add comments about peephole2's.
10459
10460 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10461
10462         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10463
10464 2004-03-04  Jan Hubicka  <jh@suse.cz>
10465
10466         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10467         * cselib.c (cselib_record_memory): New static variable.
10468         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10469         Give up on memories when asked for.
10470         (cselib_init): Accept new argument.
10471         * cselib.h (cselib_init): Update prototype.
10472         * gcse.c (local_cprop_pass): Update call of cselib_init.
10473         * loop.c (load_mems): Update call of cselib_init.
10474         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10475         * sched-deps.c (sched_analyze): Update call of cselib_init.
10476
10477 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10478             GP <gp@qnx.com>
10479
10480         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10481         when compiling PIC.
10482
10483 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10484
10485         PR/14362
10486         * var-tracking.c (track_expr_p): Do not track variables which
10487         should be ignored for debugging purposes.
10488
10489 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10490
10491         * real.c (encode_ibm_extended): Don't bother rounding low double.
10492         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10493         when fmt->pnan < fmt->p.
10494
10495 2004-03-04  Eric Christopher  <echristo@redhat.com>
10496
10497         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10498         only range of valid arg registers and fixed_regs.
10499
10500 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10501
10502         PR target/14406
10503         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10504         (abstf2, abstf2_internal): New define_expand.
10505
10506 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10507
10508         PR optimization/14235
10509         * expr.c (convert_move): Copy the source to a new pseudo
10510         when converting from a sub-word source to a larger-than-word
10511         register which conflicts with the source.
10512
10513 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10514
10515         PR 13728
10516         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10517         parameters with the same name, unless one is a forward decl.
10518         Do not issue a redundant-redeclaration warning for forward
10519         decls of parameters.
10520
10521 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10522
10523         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10524         configuration.
10525
10526 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10527
10528         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10529
10530 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10531
10532         * target-def.h (TARGET_OPTF): Delete.
10533         * c-opts.c (TARGET_OPTF): Define.
10534
10535 2004-03-04  Jan Hubicka  <jh@suse.cz>
10536
10537         * cselib.c (cselib_finish): Fix another miss-application of my previous
10538         patch.
10539
10540 2004-03-03  Mike Stump  <mrs@apple.com>
10541
10542         Add framework support for darwin.
10543
10544         * c-incpath.c: Include target.h and machmode.h.
10545         (add_path): Use a consistent style for cpp_dir.  Initialize
10546         p->construct to 0.
10547         (add_cpp_dir_path): New.
10548         (register_include_chains): Add use of extra_includes callback.
10549         (hook_void_int): Add.
10550         (target_c_incpath): Add.
10551         * c-incpath.h (add_cpp_dir_path): New.
10552         (target_c_incpath_s): Add.
10553         (target_c_incpath): Add.
10554         (C_INCPATH_INIT): Add.
10555         * c-opts.c (c_common_missing_argument,
10556         c_common_handle_option): Add -F argument processing.
10557         * c.opt: Add -F argument processing.
10558         * gcc.c (trad_capable_cpp): Add -F argument processing.
10559         * cppfiles.c (find_file_in_dir): Update to use construct
10560         callback.
10561         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10562         cpp_get_prev): New.
10563         (_cpp_find_file): Use search_path_exhausted.
10564         (make_cpp_dir): Initialize construct to 0.
10565         * cpplib.h (missing_header_cb
10566         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10567         (cpp_callbacks): Add missing_header
10568         (cpp_dir): Add construct.
10569         * target-def.h: (TARGET_OPTF): New.
10570         * hooks.c (hook_void_int, hook_void_charptr): Add.
10571         * hooks.h (hook_void_int, hook_void_charptr): Add.
10572         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10573         $(MACHMODE_H) dependencies.
10574         * doc/invoke.texi (Darwin Options): Document -F.
10575         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10576         (TARGET_OPTF): Add.
10577         * fix-header.c (target_c_incpath): Add.
10578
10579         * config/darwin-c.c: Add c-incpath.h include.
10580         (using_frameworks, find_subframework_file,
10581         find_subframework_header, add_system_framework_path,
10582         frameworks_in_use, num_frameworks, max_frameworks,
10583         add_framework, find_framework, struct framework_header,
10584         framework_header_dirs, framework_construct_pathname,
10585         find_subframework_file, add_system_framework_path,
10586         add_framework_path, framework_defaults,
10587         darwin_register_frameworks, find_subframework_header): Add.
10588         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10589         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10590         (CPP_SPEC): Add __APPLE_CC__ support.
10591         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10592
10593 2004-03-04  Jan Hubicka  <jh@suse.cz>
10594
10595         * cselib.c (cselib_finish): Fix miss-application of my previous
10596         patch.
10597
10598 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10599
10600         * hooks.c (hook_tree_tree_identity): New.
10601         * hooks.h: Add a prototype for hook_tree_tree_identity.
10602         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10603         instead of MD_ASM_CLOBBERS.
10604         * system.h (MD_ASM_CLOBBERS): Poison.
10605         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10606         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10607         * target.h (gcc_target): Add md_asm_clobbers.
10608         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10609         (ix86_md_asm_clobbers): New.
10610         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10611         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10612         TARGET_MD_ASM_CLOBBERS.
10613
10614 2004-03-03  Stuart Hastings  <stuart@apple.com>
10615
10616         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10617
10618 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10619
10620         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10621
10622         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10623         (ASM_DOUBLE): Likewise.
10624         (ASM_LONGDOUBLE): Likewise.
10625         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10626
10627 2004-03-03  Richard Henderson  <rth@redhat.com>
10628
10629         PR opt/13862
10630         * cselib.c (cselib_record_sets): Don't record multiple sets in
10631         asm insns.
10632
10633 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10634
10635         * common.opt: Add description of the new -fgcse-after-reload flag.
10636
10637         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10638
10639         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10640         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10641         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10642         get_bb_avail_insn, hash_scan_set_after_reload,
10643         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10644         gcse_after_reload, get_bb_avail_insn): New functions to implement
10645         gcse-after-reload.
10646         (gcse_after_reload_main): New function, the main entry point to
10647         gcse-after-reload.
10648
10649         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10650
10651         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10652
10653         * toplev.c (flag_gcse_after_reload): Initialization.
10654
10655         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10656
10657         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10658         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10659         the gcse after reload optimization.
10660
10661         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10662         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10663         parameters.
10664
10665         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10666
10667 2004-03-03  Nicolas Pitre <nico@cam.org>
10668
10669         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10670         small negative values.
10671
10672 2004-03-03  Jan Hubicka  <jh@suse.cz>
10673
10674         * cselib.c (hash_table):  Remove GTY marker.
10675         (reg_values): Turn into array.
10676         (used_regs): Likewise.
10677         (n_used_regs): New static variable.
10678         (reg_values_old): Kill.
10679         (clear_table): Update uses of arrays.
10680         (cselib_lookup): Likewise.
10681         (cselib_record_set): Likewise.
10682         (cselib_init): Likewise.
10683         (cselib_finish): Likewise.
10684         (cselib_udpate_varray_sizes): Kill.
10685         * cselib.h (cselib_update_varray_sizes): Kill.
10686
10687 2004-03-03  Paul Brook  <paul@codesourcery.com>
10688
10689         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10690
10691 2004-03-03  Jan Hubicka  <jh@suse.cz>
10692
10693         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10694         Rename from ...; make statistics transparent.
10695         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10696         (loc_descriptor): New structure.
10697         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10698         add_statistics):
10699         New static function.
10700         (ggc_record_overhead, dump_statistics): New global function.
10701         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10702         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10703         from ...; accept locations
10704         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10705         ggc_realloc, ggc_alloc_typed):  ... this one.
10706         from ...; accept locations
10707         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10708         ggc_alloc_stat): Rename from ... ; pass locations
10709         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10710         ... this one.
10711         (ggc_alloc_stat): Record overehead.
10712         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10713         ggc_realloc, ggc_alloc_typed):  Turn to macros
10714         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10715         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10716         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10717         * langhooks.h (lhd_make_node): Declare.
10718         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10719         * langhooks.c (lhd_make_node): New.
10720         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10721         locations.
10722         (rtx_alloc, swallow_copy_rtx): ... this one.
10723         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10724         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10725         * toplpev.c (finalize): Dump stats.
10726         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10727         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10728         Rename from ... ; pass locators.
10729         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10730         build?,  build_decl): Declare.
10731         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10732         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10733         Declare.
10734         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10735         build?,  build_decl): New macros.
10736         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10737         * statistics.h: New file.
10738
10739 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10740             Richard Sandiford  <rsandifo@redhat.com>
10741
10742         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10743         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10744         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10745         * config/mips/mips.c (mips_output_division): Fill the branch delay
10746         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10747         TARGET_FIX_R4400.
10748         (mips_output_division): Adjust accordingly.
10749         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10750         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10751
10752 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10753
10754         * alias.c (rtx_equal_for_memref_p): Use predicates
10755         to test rtx classes and new rtx class codes, possibly
10756         splitting conditionals that tested against '<' and 'o'.
10757         * caller-save.c (save_call_clobbered_regs): Likewise.
10758         * combine.c (contains_muldiv, find_split_point, subst,
10759         combine_simplify_rtx, simplify_if_then_else,
10760         simplify_set, simplify_logical, expand_compound_operation,
10761         make_compound_operation, if_then_else_cond, known_cond,
10762         apply_distributive_law, cached_nonzero_bits,
10763         cached_num_sign_bit_copies, simplify_shift_const,
10764         gen_binary, simplify_comparison, update_table_tick,
10765         record_value_for_reg, get_lsat_value_validate): Likewise.
10766         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10767         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10768         Likewise.
10769         * emit-rtl.c (copy_insn_1): Likewise.
10770         * expr.c (force_operand): Likewise.
10771         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10772         * flow.c (notice_stack_pointer_modification_1,
10773         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10774         and_reg_cond, elim_reg_cond): Likewise.
10775         * function.c (update_epilogue_consts): Likewise.
10776         * genattrtab.c (attr_rtx_1): Likewise.
10777         * genopinit.c (gen_insn): Likewise.
10778         * integrate.c (subst_constants): Likewise.
10779         * jump.c (reversed_comparison_code_parts,
10780         reversed_comparison_code, delete_related_insns,
10781         rtx_renumbered_equal_p): Likewise.
10782         * local-alloc.c (block_alloc): Likewise.
10783         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10784         canonicalize_condition): Likewise.
10785         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10786         Likewise.
10787         * optabs.c (add_equal_node, expand_binop): Likewise.
10788         * predict.c (estimate_probability): Likewise.
10789         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10790         * recog.c (validate_replace_rtx_1, comparison_operator,
10791         offsettable_address_p, constrain_operands): Likewise.
10792         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10793         Likewise.
10794         * regclass.c (scan_one_insn): Likewise.
10795         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10796         * regrename.c (kill_autoinc_value): Likewise.
10797         * reload.c (find_reusable_reload, find_reloads,
10798         reg_overlap_mentioned_for_reload_p): Likewise.
10799         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10800         * rtl.c (copy_rtx): Likewise.
10801         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10802         * rtlanal.c (commutative_operand_precedence): Likewise.
10803         * sched-deps.c (conditions_mutex_p): Likewise.
10804         * sched-rgn.c (is_cfg_nonregular): Likewise.
10805         * simplify-rtx.c (simplify_gen_binary,
10806         simplify_gen_relational, simplify_replace_rtx,
10807         simplify_unary_operation, simplify_binary_operation,
10808         simplify_ternary_operation, simplify_rtx): Likewise.
10809         * unroll.c (reg_dead_after_loop): Likewise.
10810         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10811         print_operand): Likewise.
10812         * config/arc/arc.c (proper_comparison_operator): Likewise.
10813         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10814         Likewise.
10815         * config/avr/avr.c (_reg_unused_after): Likewise.
10816         * config/frv/frv.c (frv_ifcvt_modify_tests,
10817         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10818         * config/i386/i386.c (ix86_comparison_operator,
10819         ix86_carry_flag_operator, fcmov_comparison_operator,
10820         arith_or_logical_operator, print_operand,
10821         ix86_expand_binary_operator, ix86_binary_operator_ok):
10822         Likewise.
10823         * config/i386/i386.md: Likewise.
10824         * config/ia64/ia64.c (not_postinc_memory_operand,
10825         ia64_print_operand, update_set_flags, errata_emit_nops):
10826         Likewise.
10827         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10828         CONSTRAINT_OK_FOR_S): Likewise.
10829         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10830         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10831         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10832         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10833         Likewise.
10834         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10835         eqne_comparison_operator, signed_comparison_operator):
10836         Likewise.
10837         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10838         Likewise.
10839         * config/mmix/mmix (mmix_foldable_comparison_operator,
10840         mmix_comparison_operator): Likewise.
10841         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10842         * config/rs6000/rs6000.c (stmw_operation,
10843         branch_comparison_operator, trap_comparison_operator,
10844         ccr_bit): Likewise.
10845         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10846         * config/s390/s390.c (s390_alc_comparison,
10847         s390_slb_comparison):L Likewise.
10848         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10849         Likewise.
10850         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10851         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10852         emit_hard_tfmode_operation, reg_unused_after)
10853         * doc/md.texi, doc/rtl.texi: Likewise.
10854
10855         * ra-debug.c: Add 2004 to list of copyright years.
10856         * unroll.c: Likewise.
10857
10858         * combine.c (simplify_logical): Remove dummy test,
10859         (apply_distributive_law): Fix typo in comment.
10860         GET_CODE (x) == AND so x is a commutative binary op.
10861         * jump.c (delete_related_insns): simplify loop
10862         condition, move testing of RTX codes inside the loop.
10863         (rtx_renumbered_equal_p): do not use RTX_CODE.
10864         * rtl.c (rtx_class): Declare as enum rtx_class.
10865         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10866         Move to RTX_COMM_COMPARE class.
10867         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10868         Move to RTX_CONST_OBJ class.
10869         * rtl.h (enum rtx_class): New declaration,
10870         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10871         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10872         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10873         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10874         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10875         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10876         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10877         OBJECT_P): New macros.
10878         * config/sparc/sparc.c (noov_compare_op): Remove register
10879         from parameter.
10880
10881 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10882
10883         * target.h: Remove texi jargons in comments.
10884
10885 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10886
10887         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10888         threshold to 0x4f.
10889
10890         Revert:
10891         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10892         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10893         as well.
10894         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10895         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10896
10897 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10898
10899         * doc/md.texi (cbranchmode4): New.
10900
10901 2004-03-02  Eric Christopher  <echristo@redhat.com>
10902
10903         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10904         fix_trunc.
10905         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10906         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10907         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10908         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10909
10910 2004-03-02  Richard Henderson  <rth@redhat.com>
10911
10912         PR middle-end/11767
10913         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10914         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10915         before the compare, if flag_non_call_exceptions.
10916
10917 2004-03-02  Richard Henderson  <rth@redhat.com>
10918
10919         PR middle-end/14327
10920         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10921         emitting the label, not after.
10922
10923 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10924
10925         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10926         (m68hc11_mov_addr_mode): Likewise.
10927         (m68hc11_override_options): Initialize them based on target.
10928         (register_indirect_p): Allow a MEM for indirect addressing modes and
10929         use flags to control what is allowed.
10930         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10931         supported addressing modes.
10932         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10933         (go_if_legitimate_address_internal): Likewise.
10934         (m68hc11_indirect_p): Likewise and check the mode.
10935         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10936
10937 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10938
10939         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10940         (expand_builtin_setjmp_setup): Use
10941         targetm.builtin_setjmp_frame_value instead of
10942         BUILTIN_SETJMP_FRAME_VALUE.
10943         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10944         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10945         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10946         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10947         * targhooks.c (default_builtin_setjmp_frame_value): New.
10948         * targhooks.h: Add a prototype for
10949         default_builtin_setjmp_frame_value.
10950         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10951         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10952
10953 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10954
10955         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10956         sequences of moves.
10957         (add peepholes): New peepholes to optimize sequences adding small
10958         constants.
10959         (bset peepholes): New peepholes to transform an OR in a bset form
10960         (bclr peepholes): Likewise for bclr form.
10961         (cmp peepholes): New peepholes to avoid register copies when comparing.
10962
10963 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10964
10965         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10966         to separate push from moves.
10967         ("*pushdf_internal"): Likewise.
10968         ("*pushsf_internal"): Likewise.
10969         ("*pushsi_internal"): Likewise.
10970         ("movdi_internal"): Use define_insn_and_split; non push operand.
10971         ("movdf_internal"): Likewise.
10972         ("movsf_internal"): Likewise.
10973         ("movsi_internal"): Likewise.
10974         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10975         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10976         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10977
10978 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10979
10980         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10981         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10982         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10983         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10984         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10985         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10986         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10987         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10988         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10989         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10990         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10991
10992 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10993
10994         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10995         (SOFT_XY_REGNUM): Define.
10996         (cmp split): Use the above instead of hard coded numbers.
10997         (8-bit op split): No need to check the mode; allow Q_REG.
10998         (ashift split): Adjust the first operand if it uses the SP and we
10999         are pushing the shifted value.
11000         (plus shift split): Fix when a source is in register D+X.
11001         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
11002
11003 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11004
11005         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
11006         comparing with Z register.
11007
11008 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11009
11010         * cfgloop.h (struct loop_desc): Removed.
11011         (struct loop): Fields simple, desc and has_desc removed.
11012         (simple_loop_p, count_loop_iterations): Declaration removed.
11013         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
11014         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
11015         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
11016         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
11017         simple_loop_exit_p, variable_initial_value, variable_initial_values,
11018         simple_condition_p, simple_increment, count_strange_loop_iterations,
11019         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
11020         Removed.
11021         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
11022
11023 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11024
11025         * genattrtab.c: Don't handle MATCH_INSN.
11026         * genrecog.c: Likewise.
11027         * gensupport.c: Likewise.
11028         * rtl.def (match_insn): Remove.
11029         * doc/md.texi (match_insn, match_insn2): Remove.
11030
11031 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
11032
11033         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
11034         macro results in memory allocation.
11035
11036 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
11037
11038         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
11039         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
11040         %(fbsd_dynamic_linker),
11041         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
11042         config/i386/freebsd.h
11043         * config/arm/freebsd.h: Ditto.
11044         * config/i386/freebsd.h: Ditto.
11045         * config/i386/freebsd64.h: Ditto.
11046         * config/ia64/freebsd.h: Ditto.
11047         * config/rs6000/sysv4.h: Ditto.
11048         * config/sparc/freebsd.h: Ditto.
11049
11050 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
11051
11052         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
11053
11054 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11055
11056         * rtl.def (define_combine): Remove.
11057
11058 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11059
11060         * config/h8300/h8300.md: Tweak formatting.
11061
11062 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11063
11064         * config/h8300/h8300.md (*cmphi_h8300): Rename to
11065         *cmphi_h8300_znvc.
11066         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
11067
11068 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
11069
11070         PR bootstrap/14356
11071         * gcc.c (process_command): Remove const-qualification from argv.
11072         (main): Likewise.
11073
11074 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11075
11076         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
11077         pushqi1_h8300hs_advanced.  Adjust its caller.
11078         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
11079         Adjust its caller.
11080
11081 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
11082
11083         * Makefile.in (install-libgcc, install-multilib): Pass
11084         mkinstalldirs var to libgcc.mk.
11085
11086 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11087
11088         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
11089         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
11090
11091 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11092
11093         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
11094         * config/h8300/h8300.md: Split several peephole2's, each into
11095         two.
11096
11097 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11098
11099         * dominance.c (recount_dominator): Handle postdominators.
11100
11101 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11102
11103         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
11104         (NUM_SYMBOL_TYPES): Likewise.
11105         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
11106         (mips_unspec_address): Declare.
11107         (mips_gotoff_page, mips_gotoff_global): Delete.
11108         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
11109         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
11110         (mips_symbolic_constant_p, mips_symbolic_address_p)
11111         (mips_symbol_insns): Handle new symbol types.
11112         (general_symbolic_operand): New predicate.
11113         (mips_unspec_address): Make extern.
11114         (mips_gotoff_page, mips_gotoff_global): Delete.
11115         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
11116         Handle new symbol types.
11117         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11118         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11119         mips_unspec_address directly.
11120         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11121         the documentation of -mexplicit-relocs.
11122
11123 2004-03-01  Jeff Law  <law@redhat.com>
11124
11125         * fold-const.c (fold): An equality comparison of a non-weak object
11126         against zero has a known result.  Similarly an equality comparison
11127         of the address of two non-weak, unaliased symbols has a known result.
11128
11129         * ggc-page.c (struct page_entry): New field PREV.
11130         (ggc_alloc): Update PREV field appropriately.
11131         (sweep_pages): Likewise.
11132         (ggc_free): Likewise.  Use PREV field rather than loop to
11133         improve ggc_free performance.
11134
11135 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
11136
11137         * config/mips/mips.c (mips_output_division): Use the division
11138         instruction to fill the delay slot of a zero check.
11139         (mips_idiv_insns): Adjust accordingly.
11140
11141 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
11142
11143         * config.gcc: Create a default tmake_file for linux, and use
11144         it in all but two linux clauses.  Comment those two.
11145
11146 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
11147
11148         * combine.c (try_combine):  Do not refer to is_replaced.
11149         (gen_lowpart_for_combine):  Perverse subregs now have a
11150         more politically correct name.
11151         * cse.c (cse_insn): Likewise.
11152         * jump.c: Fix bogus reference to delete_insn.
11153
11154 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
11155
11156         PR debug/14328
11157         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11158         constants as signed values.
11159
11160         PR middle-end/13448
11161         * c-tree.h (readonly_warning): Rename to ...
11162         (readonly_error): ... this.
11163         * c-typeck.c (build_unary_op): Adjust accordingly.
11164         (readonly_warning): Rename to ...
11165         (readonly_error): ... this and issue errors, not warnings.
11166         (build_modify_expr): Call readonly_error, not readonly_warning.
11167         (c_expand_asm_operands): Likewise.
11168         * tree-inline.c (optimize_inline_calls): Do not inline functions
11169         after errors have occurred.
11170
11171 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11172
11173         * configure.ac: Rearrange some threading code for clarity;
11174         add section comment.
11175         * configure: Regenerate.
11176
11177 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11178
11179         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11180         typos.
11181         * doc/cppopts.texi: Fix a typo.
11182
11183 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11184
11185         * config/i386/i386.md: Fix formatting.
11186
11187 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
11188
11189         * configure.ac: Add some comments delineating sections of code.
11190
11191         * doc/install.texi: Note that libada uses autoconf 2.57 also.
11192
11193         * doc/install.texi: Fix idiot typo in previous commit.
11194
11195         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11196
11197 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11198
11199         * config/h8300/h8300.md: Add comments about peephole2's.
11200
11201 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11202
11203         * config/h8300/h8300.md: Tweak operand numbers of some
11204         peephole2's.
11205
11206 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
11207
11208         * config/h8300/h8300.md: Tweak comments about peephole2's.
11209
11210 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
11211
11212         PR middle-end/14203
11213         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11214         instead of testing whether DECL_RTL is not NULL.
11215
11216 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11217
11218         * config/sh/sh.c: Fix formatting.
11219
11220 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11221
11222         * config/sh/sh.c: Convert to ISO-C.
11223
11224 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
11225
11226         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11227         my previous patch.
11228
11229         * config/darwin.h (machopic_finish): Output stub even if the
11230         symbol is already defined.
11231
11232 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11233
11234         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11235
11236 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11237
11238         * genattr.c (main): Don't define
11239         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11240         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11241         (DFA_PIPELINE_INTERFACE): Likewise.
11242         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11243         (DFA_PIPELINE_INTERFACE): Likewise.
11244
11245 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
11246
11247         * config/mips/mips.md (tstsi, tstdi): Delete.
11248
11249 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11250
11251         * config/mips/mips.c (override_options): Remove an obsolete
11252         duplicate definition of the "e" constraint.
11253         * config/mips/mips.h: Update a comment accordingly.
11254
11255 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11256
11257         * config/mips/mips.md: Complete the unfinished R4000
11258         multiply/shift errata workaround.  Improve documentation.
11259         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11260         has a hilo hazard.
11261         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11262         (muldi3, muldi3_internal): Likewise.
11263         (muldi3_internal2): Remove, replacing with...
11264         (muldi3_mult3, muldi3_r4000): ...these new patterns.
11265         (mulsidi3): Take the errata into account.
11266         (mulsidi3_32bit): Remove, replacing with...
11267         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11268         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11269         (umulsidi3): Take the errata into account.
11270         (umulsidi3_32bit): Remove, replacing with..
11271         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11272         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11273         TARGET_FIX_R4000.
11274         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11275         (smuldi3_highpart, umuldi3_highpart): Likewise.
11276         * doc/invoke.texi: Document the errata workaround.
11277
11278 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11279
11280         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11281         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11282         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11283         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11284         * config/mips/mips.c (mips_idiv_insns): New function.
11285         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11286         (mips_output_division): Add a workaround for the R4000 divide/shift
11287         errata.
11288         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11289         the length of an "idiv" instruction.
11290         * doc/invoke.texi: Document the new switches.
11291
11292 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11293
11294         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11295         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11296
11297 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11298
11299         PR optimization/14229
11300         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11301
11302 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
11303
11304         * fold-const.c (fold): Strip NOPs that change the signedness
11305         for RSHIFT too.  Expand comment.
11306
11307 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
11308
11309         PR optimization/7871
11310         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11311         from or to call insns.
11312
11313 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11314
11315         PR optimization/7871
11316         * flow.c (propagate_one_insn): Interpret calls as setting global
11317         registers, not merely clobbering them.
11318
11319 2004-02-27  Dale Johannesen  <dalej@apple.com>
11320
11321         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
11322         config/darwin-protos.h:  Ditto.
11323         config/darwin.h:  Remove call to it.
11324         * combine.c (distribute_notes): Do not place a REG_DEAD note
11325         when value is both set and used.
11326
11327 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11328
11329         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11330         as well.
11331         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11332         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11333
11334 2004-02-27  Andrew Pinski  <apinski@apple.com>
11335
11336         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11337         Speedup common case of the type values being in the same order.
11338
11339 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
11340
11341         * config/ia64/ia64.h (no-inline-float-divide): New option.
11342         * config/ia64/ia64.h (no-inline-int-divide): New option.
11343         * config/ia64/ia64.h (no-inline-sqrt): New option.
11344         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11345         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11346         * config/ia64/ia64.c (ia64_override_options): Modify error
11347         checking for inlined division/sqrt.
11348
11349 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11350
11351         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11352         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11353         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11354         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11355         copyright.
11356
11357 2004-02-27  Paul Brook  <paul@codesourcery.com>
11358
11359         * function.c (assign_parms): Don't count pretend args for alignment.
11360
11361 2004-02-27  Richard Henderson  <rth@redhat.com>
11362
11363         * passes.c: New file.
11364         * Makefile.in (OBJS-common): Add it.
11365         * diagnostic.c (rtl_dump_and_exit): Move decl ...
11366         * flags.h (rtl_dump_and_exit): ... here.
11367         * output.h (size_directive_output, last_assemble_variable_decl):
11368         Move from toplev.c.
11369         * rtl.h (reg_alloc): Move from toplev.c.
11370         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11371         struct dump_file_info, enum dump_file_index, dump_file_tbl,
11372         open_dump_file, close_dump_file, rest_of_decl_compilation,
11373         rest_of_type_compilation, rest_of_handle_final,
11374         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11375         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11376         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11377         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11378         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11379         rest_of_handle_tracer, rest_of_handle_if_conversion,
11380         rest_of_handle_if_after_combine, rest_of_handle_web,
11381         rest_of_handle_branch_prob,
11382         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11383         rest_of_handle_addressof, rest_of_handle_sibling_calls,
11384         rest_of_handle_jump_bypass, rest_of_handle_inlining,
11385         rest_of_handle_null_pointer, rest_of_handle_combine,
11386         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11387         rest_of_handle_gcse, rest_of_handle_loop_optimize,
11388         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11389         (decode_d_option): Use enable_rtl_dump_file.
11390         (compile_file, finalize, do_compile): Move profile+combine+graph
11391         cleanup to finish_optimization_passes.
11392         * toplev.h (init_optimization_passes, finish_optimization_passes,
11393         enable_rtl_dump_file): Declare.
11394
11395 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
11396             Roger Sayle  <roger@eyesopen.com>
11397
11398         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
11399         operands to build a tree with swapped operands.
11400         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11401         'unsignedp' predicate to specify the signedness.
11402
11403 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11404
11405         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11406         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11407         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11408         comment typos and formatting.  Follow spelling conventions.
11409
11410 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11411
11412         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11413         fix_truncsfsi2.
11414
11415         * config/rs6000/spe.md: Delete spe_efsctuiz.
11416         Add spe_fixuns_truncsfsi2.
11417         Add spe_fix_truncsfsi2.
11418
11419 2004-02-26  Eric Christopher  <echristo@redhat.com>
11420
11421         * c-lex.c (c_lex_string_translate): New variable.
11422         (lex_string): Use to determine string translation.
11423         * c-pragma.h: Prototype.
11424         * c-parse.in (start_string_translation): New. Set above.
11425         (stop_string_translation): Ditto.
11426         (attribute, attribute_list, asm_def, asm_stmt,
11427         asm_operand): Use above functions.
11428         * cp/parser.c (cp_parser_declaration): Translate strings
11429         unless token is RID_EXTERN. Set c_lex_string_translate
11430         for recursive use.
11431         (cp_parser_asm_definition): Only translate argument strings
11432         to asms.
11433         (cp_parser_asm_operand_list): Ditto.
11434         (cp_parser_attribute_list): Do not translate attribute strings.
11435
11436 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11437
11438         * stmt.c (expand_start_case_dummy): Remove.
11439         * tree.h: Remove the corresponding prototype.
11440
11441 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11442
11443         * builtins.c (apply_args_register_offset): Remove.
11444         * tree.h: Remove the corresponding prototype.
11445
11446 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11447
11448         * stor-layout.c (is_pending_size): Remove.
11449         * tree.h: Remove the corresponding prototype.
11450
11451 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11452
11453         * recog.c (validate_replace_src): Remove.
11454         * recog.h: Remove the corresponding prototype.
11455
11456 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11457
11458         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11459         MAYBE_REG_PARM_STACK_SPACE.
11460         * function.c: Likewise.
11461         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11462         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11463         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11464         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11465
11466 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11467
11468         * c-decl.c (c_expand_deferred_function): Remove.
11469         * c-tree.h: Remove the corresponding prototype.
11470
11471 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11472
11473         * postreload.c (reload_cse_move2add): Generate just a PLUS
11474         instead of an entire SET.
11475
11476 2004-02-26  Jan Hubicka  <jh@suse.cz>
11477
11478         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11479         /pentium4m.
11480         * i386.c (override_options): Add support for new CPUs.
11481         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11482         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11483         constants.
11484         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11485
11486 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11487
11488         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11489
11490 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11491
11492         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11493         (sparc_emit_fixunsdi): New prototype.
11494         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11495         (sparc_emit_fixunsdi): New function.
11496         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11497         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11498         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11499         to sparc_emit_floatunsdi.
11500         (fixuns_truncsfdi2): New expander.
11501         (fixuns_truncdfdi2): Likewise.
11502
11503 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11504
11505         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11506         unless HAVE_cc0.
11507
11508 2004-02-25  Richard Henderson  <rth@redhat.com>
11509
11510         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11511         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11512         use (op0-op1) == 0 if op0 is a pointer.
11513         * config/alpha/alpha.md (cmpdi): Use some_operand.
11514         (three comparison combine splits): Remove.
11515
11516 2004-02-25  Richard Henderson  <rth@redhat.com>
11517
11518         PR c/12794
11519         * c-common.c (handle_alias_attribute): Reject the attribute if
11520         current_function_decl is set.
11521
11522 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11523
11524         * config.gcc: Add comment describing extra_gcc_objs.
11525         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11526         * configure.ac (extra_gcc_objs): New substitution variable.
11527         (host_extra_gcc_objs): Don't substitute.
11528         * configure: Regenerate.
11529         * Makefile.in: Use extra_gcc_objs.
11530
11531 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11532
11533         * doc/contrib.texi: Add an entry for myself.
11534
11535 2004-02-25  Jan Hubicka  <jh@suse.cz>
11536
11537         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11538         * cfgbuild.c (make_eh_edge):  Make global.
11539         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11540         * except.c (build_post_landing_pads, connect_post_landing_pads,
11541         dw2_build_landing_pads, sjlj_emit_function_enter,
11542         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11543         sjlj_build_landing_pads): Update CFG.
11544         (emit_to_new_bb_before): New function.
11545         (finish_eh_generation): Do not rebuild the CFG.
11546
11547 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11548
11549         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11550         target_cpu_default defines.
11551         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11552         * pa.h (TARGET_DEFAULT): Likewise.
11553
11554 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11555
11556         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11557         comparisons with regard to signedness.
11558
11559 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11560
11561         * arm.c (thumb_legitimize_address): New function.
11562         * arm-protos.h: Prototype it.
11563         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11564         (LEGITIMIZE_ADDRESS): Use it.
11565
11566 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11567
11568         * reload1.c (reload): Only spill eliminable register with multiple
11569         adjacent elimination alternatives if all alternatives fail.
11570
11571 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11572
11573         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11574         is -4095...+4095 inclusive.
11575
11576 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11577
11578         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11579         the bootstrap failure with Sun CC 5.4 and 5.5.
11580
11581 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11582
11583         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11584         which modifies NEWREG.
11585         (cse_condition_code_reg): Update the mode of CC_REG in
11586         CC_SRC_INSN on our own.
11587
11588 2004-02-24  Michael Matz  <matz@suse.de>
11589
11590         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11591         regparm attributes.
11592
11593 2004-02-24  Richard Henderson  <rth@redhat.com>
11594
11595         * toplev.c (dump_file_tbl): Rename from dump_file.
11596         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11597         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11598         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11599         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11600         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11601         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11602         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11603         s/rtl_dump_file/dump_file/g.
11604
11605 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11606
11607         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11608         (spe_fixuns_truncsfsi2): Delete.
11609
11610         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11611         (fixuns_truncsfsi2): Delete.
11612
11613 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11614
11615         PR/14240
11616         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11617
11618 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11619
11620         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11621
11622 2004-02-24  Jason Merrill  <jason@redhat.com>
11623
11624         * tree.c (check_qualified_type): New fn.
11625         (get_qualified_type): Use it.  If type already has the desired
11626         quals, just return it.
11627         * tree.h: Declare it.
11628
11629 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11630
11631         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11632         TARGET_SCHED_FINISH_GLOBAL): New macros.
11633
11634         * target.h (md_init_global, md_finish_global): Function
11635         declarations corresponding to new target macros.
11636
11637         * haifa-sched.c (sched_init, sched_finish): Allow target to
11638         call the new schedular hooks.
11639
11640         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11641         call to update_life_info.
11642
11643         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11644         flag_schedule_insns for SH4.
11645
11646         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11647         find_set_regmode_weight, find_insn_regmode_weight,
11648         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11649         sh_variable_issue, high_pressure, ready_reorder,
11650         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11651         functions used to throttle the insn movement in first
11652         scheduling pass for SH.
11653
11654         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11655         TARGET_SCHED_FINISH_GLOBAL.
11656
11657 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11658
11659         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11660         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11661         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11662         symbols in sections named by the user.
11663         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11664         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11665         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11666         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11667         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11668         the above.
11669         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11670         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11671         one more pseudo to further improve code generation.
11672         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11673         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11674         inside UNSPEC.
11675         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11676         * config/frv/frv.c (frv_legitimate_address_p): Added
11677         allow_double_reg_p argument.  Adjust all callers.  Use it to
11678         decide whether to enable double-register indirect addressing.
11679         (frv_funcdesc_alias_set): Remove.
11680         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11681         register.  Emit movdi_ldd.
11682         (ldd_address_operand): New.
11683         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11684         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11685         (PREDICATE_CODES): Add ldd_address_operand.
11686         * config/frv/frv.md (movdi_ldd): New.
11687         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11688         intermediate computations if possible.
11689         (symGOTOFF2reg_i): Fix harmless typo.
11690         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11691         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11692         relocated p_vaddr to vaddr type.
11693         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11694         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11695         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11696         MEM, or use a funcdesc alias set.  Use regular move instead of
11697         ldd.
11698         (dbl_memory_one_insn_operand): Recognize function descriptors by
11699         type or by alias set, and don't split them.
11700         * config/frv/frv.md (call, call_value): Never use call_internal
11701         for fdpic.
11702         (call_internal, call_value_internal): Never match for FDPIC.
11703         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11704         call_value_fdpicsi): Require FDPIC.
11705         (ldd): Removed.
11706         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11707         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11708         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11709         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11710         FDPIC.  Compute data base address.
11711         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11712         before the other self-specs are processed.
11713         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11714         Build with -fPIC.
11715         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11716         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11717         inhibit_libc is defined.
11718         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11719         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11720         __FRV_FDPIC__.
11721         (__RELOC_POINTER): Define.
11722         (_Unwind_IteratePhdrCallback): Use it.
11723         * config/frv/frv.h (Twrite): Define.
11724         (TRANSFER_FROM_TRAMPOLINE): Use it.
11725         * config/frv/linux.h (INVOKE__main): Undefine.
11726         (Twrite): Override.
11727         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11728         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11729         (-mlibrary-pic): Emphasize that this option generates EABI code.
11730         (-mcpu): Add fr550.
11731         (-mpack): Remove.
11732         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11733         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11734         and CONSTs in FDPIC mode.
11735         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11736         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11737         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11738         constants.
11739         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11740         rather than 'i' constraint for the 2-instruction alternative.
11741         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11742         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11743         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11744         EXTRA_CONSTRAINT_FOR_Y.
11745         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11746         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11747         (addsi3): Change 'Y' constraint to 'Q'.
11748         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11749         * reload.c (CONST_POOL_OK_P): New macro.
11750         (find_reloads): Use it to decide whether a constant can be forced
11751         into memory.
11752         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11753         constant satisfies got12_operand.
11754         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11755         (frv_legitimate_address_p): Check for valid unspec offsets using
11756         got12_operand rather than frv_legitimate_fdpic_operand_p.
11757         (frv_legitimate_fdpic_operand_p): Delete.
11758         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11759         or after reload.
11760         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11761         TARGET_FDPIC.
11762         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11763         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11764         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11765         (frv_fdpic_fptr_operand): Don't declare here.
11766         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11767         rather than fdpic_got12_operand.
11768         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11769         got12_operand and const_unspec_operand.
11770         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11771         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11772         (symbolic_operand): Remove.
11773         (const_unspec_operand): New predicate.
11774         * config/frv/frv.md (*movsi_got): Use got12_operand.
11775         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11776         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11777         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11778         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11779         * config/frv/frv.c (frv_unspec): New structure.
11780         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11781         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11782         validate CONST indices.  Use frv_output_const_unspec to print them.
11783         (frv_print_operand): Update call to unspec_got_name.  Use
11784         frv_output_const_unspec to print constant unspecs.
11785         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11786         Reject UNSPECs otherwise.
11787         (unspec_got_name): Take the relocation number as argument, not an
11788         rtx containing it.
11789         (frv_output_addr_const_extra): Remove, replacing with...
11790         (frv_output_const_unspec): ...this new function.
11791         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11792         (gpr_or_int12_operand): Use fdpic_got12_operand.
11793         (dbl_memory_one_insn_operand): Likewise.
11794         (fdpic_got12_operand): Use frv_const_unspec_p.
11795         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11796         are already legitimate.  Use frv_small_data_reloc_p when deciding
11797         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11798         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11799         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11800         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11801         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11802         label, for real this time.
11803         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11804         representation of visibility.
11805         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11806         such.
11807         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11808         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11809         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11810         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11811         it was explicitly disabled.
11812         (frv_stack_info): There is no need to save the link register in every
11813         frame unless TARGET_LINKED_FP is true.
11814         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11815         frame pointer if the stack pointer might change value.
11816         (frv_return_addr_rtx): Check and process "count" argument.
11817         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11818         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11819         (frv_find_base_term): Declare.
11820         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11821         (FIND_BASE_TERM): Define.
11822         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11823         small_data_register_operand, small_data_symbolic_operand.  Add
11824         symbolic_operand.
11825         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11826         (frv_print_operand_memory_reference, output_move_single): Remove
11827         special handling for unlegitimized sdata addresses.
11828         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11829         and symbolic addresses.
11830         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11831         (frv_find_base_term): New function.
11832         (int_2word_operand): Check specifically for symbolic address constants.
11833         (pic_register_operand, pic_symbolic_operand): Delete.
11834         (small_data_register_operand, small_data_symbolic_operand): Delete.
11835         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11836         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11837         (move_source_operand): Only accept CONSTs if they're a two-insn
11838         symbolic constant.
11839         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11840         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11841         using gen_symGOTOFF2reg*.
11842         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11843         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11844         themselves a cost of 3 insns.
11845         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11846         Change predicate to symbolic_operand.
11847         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11848         (*movsi_lda_sdata): Delete.
11849         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11850         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11851         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11852         frv-*-*linux*.
11853         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11854         label.
11855         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11856         -multilib-library-pic.
11857         (LINK_SPEC): Add -z text for -mfdpic.
11858         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11859         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11860         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11861         Override.
11862         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11863         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11864         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11865         crtstuff-generated files.
11866         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11867         * config.gcc: Add frv-*-*linux*.
11868         * config/frv/linux.h, config/frv/t-linux: New.
11869         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11870         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11871         when -mfdpic even if a linker script is explicitly listed.
11872         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11873         * config/frv/frv.c (frv_override_options): Clear asm_out
11874         unaligned_op for SImode on FDPIC.
11875         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11876         argument passed to decl_readonly_section.
11877         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11878         whole block run with FDPIC even with -fno-PIC.
11879         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11880         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11881         symbol or label plus offset to memory.
11882         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11883         GOTOFF and GPREL for LABEL_REF.
11884         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11885         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11886         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11887         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11888         * doc/invoke.texi: Document them.
11889         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11890         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11891         (frv_splittable_got_operand): Removed.
11892         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11893         LO_SUM.  Add comments.
11894         (frv_override_options): Moved enabling of FDPIC to
11895         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11896         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11897         (frv_legitimize_fdpic_address): Don't duplicate logic in
11898         frv_emit_movsi.
11899         (frv_gen_GPsym2reg): New.
11900         (unspec_got_name): Added gprel.
11901         (frv_expand_fdpic_call): Add support for inlining PLTs.
11902         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11903         (gpr_or_int12_operand): Added GPREL12.
11904         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11905         (small_data_symbolic_operand): Fail if FDPIC.
11906         (fdpic_splittable_got_operand): Removed.
11907         (fdpic_got12_operand): Added GPREL12.
11908         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11909         when appropriate.  Fix sdata GOTOFF.
11910         (frv_legitimate_constant_p): Require legitimate PIC operand for
11911         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11912         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11913         flag_pic case.
11914         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11915         frv_assemble_integer fails.
11916         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11917         (SUBTARGET_DRIVER_SELF_SPECS): New.
11918         (ASM_SPEC): Don't pass -mno-fdpic.
11919         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11920         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11921         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11922         -multilib-library-pic.
11923         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11924         condexec_si_media_operator, condexec_sf_add_operator and
11925         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11926         and condexec_sf_unary_operator.
11927         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11928         New.
11929         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11930         movsi_internal.  Give them internal names.  movsi_got has type
11931         int.
11932         (fdpic got splitters): Remove.
11933         (symGPREL2reg, symGPREL2reg_hilo): New.
11934         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11935         to -mlibrary-pic.  Map -multilib-library-pic to it.
11936         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11937         Document.
11938         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11939         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11940         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11941         (frv_cannot_force_const_mem): New function.
11942         (const_small_data_p, plus_small_data_p): Update comments on sdata
11943         on FDPIC.
11944         (frv_override_options): Set flag_pie for FDPIC too.
11945         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11946         call-saved registers on FDPIC.
11947         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11948         don't force LR to be preserved.
11949         (frv_expand_prologue): Likewise.
11950         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11951         (frv_frame_pointer_required): Don't force it just because the
11952         FDPIC register is used.
11953         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11954         operand only if !condexec_p.
11955         (frv_legitimize_address): Return the FDPIC-legitimized address.
11956         Don't match small data here on FDPIC.
11957         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11958         symbols.  Use TRUE/FALSE instead of 1/0.
11959         (frv_local_funcdesc_p): New.
11960         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11961         immediates when possible.
11962         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11963         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11964         an UNSPEC_GOT.
11965         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11966         12-bit immediates when possible.
11967         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11968         are not legitimate pic operands.
11969         (frv_in_small_data_p): Re-enable for FDPIC.
11970         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11971         (FRV_GLOBAL_P): Removed.
11972         * config/frv/frv.md: Add modes to CONSTs.
11973         (movsi_got): New.
11974         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11975         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11976         (fdpic splittable operations): Match on flag_pic != 1.
11977         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11978         * config/frv/frv.c (frv_asm_out_constructor,
11979         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11980         bytes, not bits.
11981         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11982         * config/frv/frv.c (frv_assemble_integer): Reject complex
11983         expressions referencing function SYMBOL_REFs.
11984         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11985         (move_source_operand): Reject CONSTs that reference function
11986         SYMBOL_REFs on FDPIC.
11987         (frv_emit_movsi): If we get such a CONST, break it up.
11988         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11989         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11990         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11991         MEM.
11992         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11993         (frv_trampoline_size): Increase for FDPIC.
11994         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11995         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11996         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11997         Disable use of GOTOFF for now.
11998         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11999         Disable use of small data in FDPIC for now.
12000         (frv_asm_output_mi_thunk): Implement for FDPIC.
12001         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
12002         * config/frv/frv.c (frv_asm_out_constructor): Use
12003         frv_assemble_integer for FDPIC pointers.
12004         (frv_asm_out_destructor): Likewise.
12005         * config/frv/frv.md (ldd): Fix order of operands.  Use
12006         address_operand for input.
12007         2003-09-18  DJ Delorie  <dj@redhat.com>
12008         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
12009         (unspec_got_name): Correct typo.
12010         (frv_emit_movsi): Pre-expand splittable GOTs.
12011         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
12012         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
12013         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
12014         * config/frv/t-frv: Add -mfdpic multilibs.
12015         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
12016         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
12017         * config/frv/frv.c (frv_override_options): -mfdpic assumes
12018         flag_pic, default to 32-bit pics, require DWORD ops.
12019         (frv_override_options): Add W and Z constraints.
12020         (frv_expand_prologue): No pic prologue for -mfdpic.
12021         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
12022         (frv_print_operand_memory_reference): Handle GOT constants.
12023         (frv_legitimate_address_p): Allow GOT constants.
12024         (frv_legitimize_address): Handle GOT addresses too.
12025         (frv_legitimate_fdpic_operand_p): New.
12026         (frv_legitimize_fdpic_address): New.
12027         (unspec_got_name): New.
12028         (frv_output_addr_const_extra): New.
12029         (frv_expand_fdpic_call): New.
12030         (frv_fdpic_fptr_operand): New.
12031         (gpr_or_int12_operand): Handle GOT operands.
12032         (int_2word_operand): Handle GOT operands.
12033         (fdpic_operand): New.
12034         (fdpic_splittable_got_operand): New.
12035         (fdpic_got12_operand): New.
12036         (frv_emit_movsi): Handle GOT operands.
12037         (frv_assemble_integer): -mfdpic doesn't use rofixups.
12038         (frv_print_operand): Support 'g' code for GOT operands.
12039         * config/frv/frv-protos.h: Add prototypes as needed.
12040         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
12041         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
12042         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
12043         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
12044         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
12045         R_FRV_GOTOFFLO): New.
12046         (movsi_high_got, movsi_lo_sum_got): New.
12047         (*movsi_pic): Don't use this splitter for -mfdpic.
12048         (addsi3): Allow GOT references also.
12049         (call, call_value): Handle -mfdpic separately.
12050         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
12051         call_value_fdpicsi): New.
12052         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
12053         symGOTOFF2reg_i): New.
12054         * config/frv/frv.h (MASK_FDPIC): New.
12055         (TARGET_FDPIC): New.
12056         (TARGET_SWITCHES): Add -mfdpic.
12057         (FDPIC_FPTR_REGNO): New.
12058         (FDPIC_REGNO): New.
12059         (OUR_FDPIC_REG): New.
12060         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
12061         FDPIC_CALL_REGS.
12062         (REG_CLASS_NAMES): Likewise.
12063         (REG_CLASS_CONTENTS): Likewise.
12064         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
12065         (EXTRA_CONSTRAINT): Add it here.
12066         (FRV_GLOBAL_P): New.
12067         (OUTPUT_ADDR_CONST_EXTRA): New.
12068
12069 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12070
12071         * config/sparc/sparc.h: Remove commented-out definitions of
12072         TARGET_EDOM and GEN_ERRNO_RTX.
12073
12074 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12075
12076         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
12077         df_analyse with df_analyze.
12078
12079 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
12080
12081         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
12082         beginning of block.
12083
12084 2004-02-23  James E Wilson  <wilson@specifixinc.com>
12085
12086         * calls.c (precompute_arguments): Update comment.
12087
12088 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12089
12090         * et-forest.c: Replace et_occurences with et_occurrences.
12091
12092 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12093
12094         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
12095         with iv_analyze.
12096
12097 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
12098
12099         * config/i386/i386.c: Rename pni to sse3.
12100         * config/i386/i386.h: Likewise.
12101         * config/i386/i386.md: Likewise.
12102         * config/i386/pmmintrin.h: Likewise.
12103         * doc/extend.texi: Likewise.
12104         * doc/invoke.texi: Likewise.
12105
12106 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
12107             Kazu Hirata  <kazu@cs.umass.edu>
12108
12109         Remove -fwritable-strings.
12110         * c-common.c (fix_string_type): Don't check
12111         flag_writable_strings.
12112         (fix_string_type): Likewise.
12113         * c-opts.c (set_std_c89): Don't initialize
12114         flag_writable_strings.
12115         (set_std_c99): Likewise.
12116         * common.opt (fwritable-strings): Remove.
12117         * flags.h: Remove the external declaration of
12118         flag_writable_strings.
12119         * opts.c (common_handle_option) <OPT_fwritable_strings>:
12120         Remove.
12121         * toplev.c (flag_writable_strings): Remove.
12122         (f_options): Remove an entry for writable-strings.
12123         * varasm.c (const_hash_1) <STRING_CST>: Don't check
12124         flag_writable_strings.
12125         (compare_constant) <STRING_CST>: Likewise.
12126         (build_constant_desc): Likewise.
12127         * config/darwin.c (machopic_select_section): Likewise.
12128         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12129         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12130         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12131         * config/mips/mips.c (mips_select_section): Likewise.
12132         (mips_encode_section_info): Likewise.
12133         * config/pa/pa.c (pa_select_section): Likewise.
12134         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12135         * config/v850/v850.c (v850_select_section): Likewise.
12136         * doc/invoke.texi (-fwritable-strings): Remove.
12137         (-fno-const-strings): Don't mention -fwritable-strings.
12138         * doc/trouble.texi: Don't mention -fwritable-strings.
12139
12140 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
12141
12142         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12143
12144 2004-02-23  Dale Johannesen  <dalej@apple.com>
12145
12146         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12147         (movdf_hardfloat64):  Ditto.
12148         (movdf_softfloat64):  Ditto.
12149
12150 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
12151         * config/rs6000/rs6000.c (function_arg): call to
12152         rs6000_mixed_function_arg for DFmode moved to allow
12153         normal DFmode incoming register assignment.
12154
12155 2004-02-23  Dale Johannesen  <dalej@apple.com>
12156
12157         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12158         (movdf_hardfloat64):  Ditto.
12159
12160 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12161
12162         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12163         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12164         copyright.
12165
12166 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
12167
12168         PR c/14156
12169         * c-typeck.c (c_expand_return): Change check for VAR_DECL
12170         to use DECL_P instead.
12171
12172         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12173         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12174
12175 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
12176
12177         * Makefile.in (opts.o): Depend on target.h.
12178         * opts.c (decode_options): Use targetm.default_short_enums
12179         instead of DEFAULT_SHORT_ENUMS.
12180         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12181         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12182         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12183         * target.h (gcc_target): Add default_short_enums.
12184         * config/cris/cris.h: Remove a comment about
12185         DEFAULT_SHORT_ENUMS.
12186         * config/ip2k/ip2k.h: Likewise.
12187         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12188         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
12189
12190 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12191             Falk Hueffner  <falk@debian.org>
12192
12193         PR c/14188
12194         * builtins.c (expand_builtin_va_arg): Emit an informative message
12195         if a trap is generated.
12196         * c-typeck.c (build_function_call): Likewise.
12197
12198 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12199
12200         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12201         fopen.
12202         * libgcov.c: Include sys/stat.h.
12203         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12204         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12205         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12206         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12207
12208 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
12209
12210         * reorg.c: Remove comments about dead ports.
12211
12212 2004-02-22  Christopher Faylor  <cgf@redhat.com>
12213
12214         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12215         extra host object file when targetting cygwin rather than generic
12216         object files.
12217
12218 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
12219
12220         Merge from tree-ssa:
12221         2003-11-20  Richard Henderson  <rth@redhat.com>
12222
12223                 * tree-inline.c (insert_decl_map): New.
12224                 (remap_decl, remap_type, remap_block, copy_body_r,
12225                 initialize_inlined_parameters, declare_return_variable,
12226                 remap_save_expr): Use it.
12227
12228         * function.c (copy_body_r): Add mapping from id->ret_label to
12229         id->ret_label.  Revert test for ret_label.
12230
12231 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
12232
12233         * genoutput.c (process_template): Strip trailing whitespace in @
12234         templates and issue a warning if there was any.
12235
12236 2004-02-21  Christopher Faylor  <cgf@redhat.com>
12237
12238         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12239         object file when targetting cygwin.
12240         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12241         overridden by top-level Makefile.
12242
12243 2004-02-21  Roger Sayle  <roger@eyesopen.com>
12244
12245         * config/i386/i386.c (standard_80387_constant_p): Also prefer
12246         the x87's load constant instructions when optimizing for size.
12247
12248 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
12249
12250         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12251         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12252         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12253         * fold-const.c: Likewise.
12254         * simplify-rtx.c: Likewise.
12255
12256 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
12257
12258         * combine.c (can_combine_p): Don't ignore SETs marked with
12259         REG_EH_REGION notes.
12260         (try_combine): When attemting to fix unrecognized insns, don't
12261         split a PARALLEL that contains the original i2.
12262
12263 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
12264
12265         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12266         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12267         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12268         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12269         (vector, pixel, bool): #define to __vector, __pixel and __bool.
12270         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12271         portion of header.
12272         (__altivec_link_error_invalid_argument): Remove prototype; will use
12273         __builtin_altivec_compiletime_error("vec_*") instead.
12274         (vec_*): Fix/complete set of available operation overloads given the
12275         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12276         cv-correctness of pointer arguments; in C, always check for correct
12277         argument types before macro expansion.
12278         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12279         defining Darwin/PowerPC-specific '-f[no-]altivec' and
12280         '-W[no-]altivec-long-deprecated' switches.
12281         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12282         '__vector', '__pixel' and '__bool' macros using
12283         '__attribute__((altivec(...)))' types.
12284         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12285         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12286         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12287         New type nodes.
12288         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12289         handling '-W[no-]altivec-long-deprecated'.
12290         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12291         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12292         altivec_expand_dst_builtin): Remove casts from integer literals.
12293         (altivec_expand_builtin): Likewise; handle expansion of new
12294         '__builtin_altivec_compiletime_error' function.
12295         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12296         types, and make them distinct from other vector types; register
12297         '__builtin_altivec_compiletime_error' function.
12298         (print_operand): For 'P', print a full target register name instead of
12299         merely its number.
12300         (rs6000_attribute_table): Add "altivec" attribute.
12301         (rs6000_handle_altivec_attribute): New function.
12302         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12303         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12304         maps to).
12305         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12306         declare.
12307         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12308
12309 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12310
12311         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12312         check.
12313         (shift_mix4left+2): Delete redundant pattern.
12314
12315 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12316
12317         * alias.c (OUTGOING_REGNO): Don't define the default.
12318         * builtins.c (OUTGOING_REGNO): Likewise.
12319         (INCOMING_REGNO): Likewise.
12320         (apply_args_register_offset): Always use OUTGOING_REGNO.
12321         * combine.c (OUTGOING_REGNO): Likewise.
12322         * sibcall.c (OUTGOING_REGNO): Likewise.
12323         * defaults.h (INCOMING_REGNO): Provide the default.
12324         (OUTGOING_REGNO): Likewise.
12325
12326 2004-02-21  Jan Hubicka  <jh@suse.cz>
12327
12328         * params.def (max-peeled-insns, max-completely-peeled-insns,
12329         max-once-peeled-insns): Set to 400.
12330
12331 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12332
12333         PR c++/12007
12334         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12335         are set for parameters before outputing debugging information.
12336
12337 2004-02-20  Falk Hueffner  <falk@debian.org>
12338
12339         PR target/14201
12340         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12341         numbers.
12342
12343 2004-02-20  Per Bothner  <per@bothner.com>
12344
12345         * input.h:  Don't #include line-map.h.  It may cause link problems
12346         with undefined linemap_line_start when line-map.h is included but
12347         line-map.o is not linked, as currently happens with gengtype on
12348         compilers that don't support inline.
12349         * toplev.c:  So we do have to explicitly #include line-map.h here.
12350
12351 2004-02-20  Richard Henderson  <rth@redhat.com>
12352
12353         * doc/invoke.texi: Add -Wvariadic-macros.
12354
12355 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12356
12357         * haifa-sched.c (sched_emit_insn): Remove.
12358         * sched-int.h: Remove the corresponding prototype.
12359
12360 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12361
12362         Revert:
12363         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12364         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12365         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12366         * config/cris/cris.h: Remove a comment about
12367         DEFAULT_SHORT_ENUMS.
12368         * config/ip2k/ip2k.h: Likewise.
12369         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12370
12371 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
12372             Tom Tromey  <tromey@redhat.com>
12373
12374         * doc/install.texi: Moved --disable-libgcj and
12375         --with-system-zlib documentation to new section for
12376         Java-specific options.
12377         Added explicit Cross-Compiler-Specific Options subheading.
12378         Added section for Java-specific options.
12379
12380 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
12381
12382         * doc/install.texi (Building the Ada compiler): Remove
12383         example.
12384
12385 2004-02-20  James E Wilson  <wilson@specifixinc.com>
12386
12387         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12388
12389 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
12390
12391         * gcc.c (process_command): Allow translation of the copyright
12392         symbol but not the rest of the copyright message.
12393         * gcov.c (print_version): Likewise.  Allow translation of the
12394         message about warranty.
12395
12396 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
12397
12398         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12399         predicate.
12400         ("*andsi_clear"): Tweak constraints to not match postincrement.
12401         Adjust the predicate to exclude a volatile memory reference.
12402         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12403         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12404
12405 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12406
12407         * move-if-change: Remove.
12408         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12409         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12410         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12411         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12412         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12413         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12414
12415 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12416
12417         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12418         for operand2.  Add condition that requires register_operand operand2
12419         before reload.
12420
12421 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12422             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12423
12424         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12425         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12426
12427 2004-02-19  Richard Henderson  <rth@redhat.com>
12428
12429         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12430         * tree.c (build0, build1, build2, build3, build4): Split out from...
12431         (build): ... here.  Call them.
12432         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12433
12434         * convert.c (convert_to_integer): Remove extra build argument.
12435         * tree-inline.c (expand_call_inline): Likewise.
12436
12437 2004-02-19  Richard Henderson  <rth@redhat.com>
12438
12439         * c-opts.c (warn_variadic_macros): New.
12440         (c_common_handle_option): Set it.
12441         (sanitize_cpp_opts): Copy it to cpp_opts.
12442         * c.opt (Wvariadic-macros): New.
12443         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12444         * cppinit.c (cpp_create_reader): Initialize it.
12445         * cppmacro.c (parse_params): Check it.
12446
12447 2004-02-19  David Daney <ddaney@avtrex.com>
12448
12449         PR preprocessor/14198
12450         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12451         builtin_assert ("machine=mips")
12452
12453 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12454
12455         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12456         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12457         * config/cris/cris.h: Remove a comment about
12458         DEFAULT_SHORT_ENUMS.
12459         * config/ip2k/ip2k.h: Likewise.
12460         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12461
12462 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12463
12464         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12465         when passing single SFmode quantities in general registers,
12466         put them in the high half.
12467
12468 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12469
12470         * doc/md.texi (Standard Names): Document additional dependency on
12471         fix pattern.
12472
12473         * optabs.c (ftruncify): Remove.
12474         (expand_fix): Manually inline ftruncify above.
12475         (can_fix_p): Add FIXME note.
12476
12477 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12478
12479         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12480         spe_fixuns_truncsfsi2.
12481
12482         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12483         fixuns_truncsfsi2.
12484
12485 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12486
12487         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12488         * testsuite/gcc.dg/20040219-1.c: New test.
12489
12490 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12491
12492         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12493         "*subsf3_cconly"): Subtraction is not commutative.
12494
12495 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12496
12497         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12498         (sdbout_symbol): If called before sdbout_init, queue DECL for
12499         later and return.
12500         (sdbout_init): Set sdbout_initialized true, process decls
12501         queued earlier by sdbout_symbol.
12502         (sdbout_finish): Use size_t for index variable.
12503
12504 2004-02-19  Jeff Law  <law@redhat.com>
12505
12506         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12507         for unordered comparison codes.
12508
12509 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12510
12511         * reload1.c (reload): Correct comment.
12512         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12513         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12514         register variables are not used by reload.
12515
12516 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12517
12518         PR target/14209
12519         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12520         constraints to not match postincrement.  Adjust the predicate to
12521         exclude a volatile memory reference.
12522
12523 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12524
12525         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12526
12527 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12528
12529         * hooks.c (hook_void_tree_int): Remove.
12530         (hook_void_constcharptr): Likewise.
12531         (hook_int_void_0): Likewise.
12532         * hooks.h: Remove the prototypes for the above three
12533         functions.
12534         * targhooks.c (hook_bool_machine_mode_true): Remove.
12535         * targhooks.h: Remove the prototype for
12536         hook_bool_machine_mode_true.
12537
12538 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12539
12540         * emit-rtl.c (subreg_realpart_p): Remove.
12541         (reorder_insns_with_line_notes): Likewise.
12542         (end_full_sequence): Likewise.
12543         * rtl.h: Remove the prototype for the above functions.
12544
12545 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12546
12547         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12548         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12549         config/iq2000/iq2000.h, config/m32r/m32r.h,
12550         config/pdp11/pdp11.h, config/sparc/sparc.h,
12551         config/xtensa/xtensa.h: Remove commented-out or useless
12552         definitions of CASE_VECTOR_PC_RELATIVE.
12553
12554 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12555
12556         * loop.c (all_sets_invariant_p): Remove.
12557
12558 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12559
12560         PR target/12916
12561         * config/sparc/sparc.h (NPARM_REGS): Delete.
12562         (BASE_RETURN_VALUE_REG): Likewise.
12563         (BASE_OUTGOING_VALUE_REG): Likewise.
12564         (BASE_PASSING_ARG_REG): Likewise.
12565         (BASE_INCOMING_ARG_REG): Likewise.
12566         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12567         TARGET_ARCH64, not TARGET_V9.
12568         (function_arg_slotno): Dispatch based on the mode class.
12569         Handle vector modes like floating-point modes.
12570         (function_arg_record_value_1): Handle vector types like
12571         floating-point types.
12572         (function_arg_record_value_2): Likewise.
12573         Calculate regno after mode transformation.
12574         (function_arg): Handle vector modes like floating-point modes.
12575         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12576         If ARCH64, do not recheck alignment.
12577         (function_arg_pass_by_reference): Reorder the conditions.
12578         (sparc_return_in_memory): Move after function_arg_padding.
12579         Implement calling conventions for vector modes.
12580         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12581         (function_value): Move scope of 'regbase'.
12582         Implement calling conventions for vector modes.
12583         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12584         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12585         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12586         the argument is passed by reference.
12587         (sparc_type_code): Handle vector types.
12588
12589 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12590
12591         * function.c (assign_parms): When building decl_rtl for
12592         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12593
12594 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12595
12596         * expr.c (is_aligning_offset): Check if we are aligning the
12597         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12598         in bits.
12599
12600 2004-02-18  Matt Austern  <austern@apple.com>
12601
12602         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12603         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12604         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12605         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12606         spec string.
12607         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12608
12609 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12610
12611         * dwarf2out.c (loclabel_num): Move outside #ifdef
12612         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12613         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12614         Mark with GTY(()).
12615         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12616         Allocate memory with ggc_alloc.  No need to copy anything.
12617         (ia64_hpux_file_end): Update to match.
12618
12619 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12620
12621         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12622         by default.
12623
12624 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12625
12626         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12627         ("divmodtisi3"): Likewise.
12628         ("udivmoddi4", "udivmodtidi3"): Likewise.
12629         ("divmodsi4", "divmoddisi3"): Likewise.
12630         ("udivmodsi4", "udivmoddisi3"): Likewise.
12631         ("udivsi3", "umodsi3"): Likewise.
12632
12633 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12634
12635         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12636         placeholder insn when chunkifying the pool.
12637
12638 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12639
12640         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12641         generating PIC code.
12642
12643 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12644
12645         * config/h8300/h8300-protos.h: Add a prototype for
12646         h8300_expand_branch.
12647         * config/h8300/h8300.c (h8300_expand_branch): New.
12648         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12649         bgtu, beq, bne): Call h8300_expand_branch().
12650
12651 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12652
12653         * config/h8300/h8300-protos.h: Add prototypes for
12654         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12655         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12656         (h8300_hard_regno_mode_ok): Likewise.
12657         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12658         h8300_hard_regno_nregs().
12659         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12660
12661 2004-02-18  Per Bothner  <per@bothner.com>
12662
12663         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12664         partly reverts my 2003-10-01 change, because we're back to logically
12665         including <command line> inside the main line.
12666         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12667         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12668         Fixes PR preprocessor/14103.
12669
12670         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12671         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12672         (cpp_push_include):  Don't need to increment pfile's line field.
12673         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12674
12675         * c-ppoutput.c (print struct):  New first_time field.
12676         (init_pp_output):  Set print.first_time.
12677         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12678         which is set also for (say) <command line>.  Clear print.first_time.
12679
12680         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12681         does not match the code, so fix both.
12682         (should_stack_file):  Inline include_pch_p function.
12683         (include_pch_p):  Remove pointless function.
12684
12685         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12686
12687 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12688
12689         * config/h8300/h8300.md (four define_peephole2's): Use
12690         h8300_regs_ok_for_stm().
12691
12692 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12693
12694         * config/h8300/h8300-protos.h: Update the prototype for
12695         expand_a_rotate().
12696         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12697         argument.
12698         * config/h8300/h8300.md: Update all callers.
12699
12700 2004-02-18  Jan Hubicka  <jh@suse.cz>
12701
12702         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12703         floats.
12704         (simplify_binary_operation): Deal with logicals on floats.
12705
12706         * i386.md (SSE fabs splitters): Emit new patterns.
12707         (SSE cmov splitters): Likewise.
12708         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12709         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12710         subregs.
12711         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12712         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12713
12714 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12715
12716         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12717         by hand.
12718         (output_a_rotate): Tweak a comment.
12719         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12720         (*rotlhi3_1): Change to rotlhi3_1.
12721         (*rotlsi3_1): Change to rotlsi3_1.
12722
12723 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12724
12725         PR target/13866
12726         * arm.c (load_multiple_operation): Don't insist that the source reg
12727         of a post-increment component is the same as the destination.
12728         (store_multiple_operation): Likewise.
12729
12730 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12731
12732         * config/h8300/h8300.md: Move movsf patterns into one section
12733         of the file.
12734
12735 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12736
12737         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12738         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12739         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12740         config/mips/linux64.h, config/pa/pa-64.h,
12741         config/rs6000/aix51.h, config/rs6000/aix52.h,
12742         config/rs6000/spe.md, config/sparc/linux.h,
12743         config/sparc/linux64.h: Update copyright.
12744
12745 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12746
12747         * config/h8300/h8300.md: Move push patterns into one
12748         section of the file.
12749
12750 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12751
12752         PR c++/11326
12753         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12754         fntype.
12755
12756 2004-02-18  Paul Brook  <paul@codesourcery.com>
12757
12758         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12759
12760 2004-02-18  Paul Brook  <paul@codesourcery.com>
12761
12762         PR debug/12934
12763         * dwarf2out.c (loc_descriptor_from_tree): Handle
12764         EXPR_WITH_FILE_LOCATION.
12765
12766 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12767
12768         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12769         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12770         trailing whitespace from instructions.
12771
12772 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12773
12774         * configure.ac: When generating auto-build.h, pass
12775         --enable-languages to the sub-configure.
12776         Put quotes around ${program_transform_name} when generating
12777         name of as, ld, nm, objdump.
12778         * configure: Regenerate.
12779
12780 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12781
12782         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12783         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12784         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12785         (s-preds, s-iov): Do not depend on move-if-change.
12786
12787 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12788
12789         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12790         (insert_save): Likewise.
12791
12792 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12793
12794         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12795         warning.
12796
12797 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12798
12799         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12800         *one_cmplsi2_h8300.
12801         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12802
12803 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12804
12805         * config/h8300/h8300-protos.h: Update the prototype of
12806         fix_bit_operand().
12807         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12808         argument "what".
12809         * config/h8300/h8300.md: Update all callers.
12810
12811 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12812
12813         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12814         the last argument to "code" from "type".
12815
12816 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12817
12818         * config/h8300/h8300.c: Remove an extern declaration of
12819         rtx_equal_function_value_matters.
12820
12821 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12822
12823         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12824         by hand.
12825         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12826         (*iorqi3_1): Change to iorqi3_1.
12827         (*xorqi3_1): Change to xorqi3_1.
12828
12829 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12830
12831         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12832         typos.
12833
12834 2004-02-17  Jan Hubicka  <jh@suse.cz>
12835
12836         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12837
12838 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12839
12840         PR optimization/14119
12841         * combine.c (try_combine): When attemting to fix unrecognized insns,
12842         don't delete SETs marked with REG_EH_REGION notes.
12843
12844 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12845
12846         * combine.c (simplify_if_then_else): Do not replace
12847         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12848         modes differ.
12849
12850 2004-02017  Steven Bosscher  <stevenb@suse.de>
12851
12852         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12853         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12854         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12855         * ada/utils.c: Likewise.
12856         * cp/decl.c: Likewise.
12857         * f/com.c: Likewise.
12858         * java/class.c: Likewise.
12859
12860 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12861
12862         * config/h8300/h8300.md: Fix comment typos.
12863
12864 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12865
12866         * config/mips/t-iris6gld: Renamed to ...
12867         * config/mips/t-irix-gld: ... this.
12868         * config.gcc (mips-sgi-irix6*): Reflect this
12869         (mips-sgi-irix5*): Use it with GNU ld.
12870
12871         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12872         to ...
12873         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12874         * config/mips/t-irix-gld: Reflect this.
12875         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12876
12877         * config/mips/iris5gld.h: New file.
12878         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12879         Only use collect2 without gas.
12880
12881         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12882         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12883         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12884         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12885
12886         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12887         * config/mips/iris5.h: ... here.
12888
12889         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12890         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12891         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12892
12893         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12894         using irix_startfile_spec, irix_endfile_spec.
12895
12896 2004-02-16  Gunther Nikl  <gni@gecko.de>
12897
12898         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12899
12900 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12901
12902         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12903         insns by hand.
12904
12905 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12906
12907         * cfghooks.c (split_edge): Speed up updating of dominators.
12908
12909 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12910
12911         PR c++/11326
12912         * c-common.c (flag_abi_version): Remove.
12913         * c-common.h (flag_abi_version): Likewise.
12914         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12915         * c.opt (fabi-version): Remove.
12916         * calls.c (expand_call): Always pass a function type to
12917         struct_value_rtx.  Use convert_memory_address.
12918         * common.opt (fabi-version): Add it.
12919         * flags.h (flag_abi_version): Likewise.
12920         (abi_version_at_least): New macro.
12921         * opts.c (common_handle_option): Add OPT_fabi_version.
12922         * toplev.c (flag_abi_version): Define it.
12923         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12924         New function.
12925         (ia64_output_mi_thunk): Use it.
12926         (ia64_struct_value_rtx): Likewise.
12927
12928 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12929
12930         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12931         Don't generate insns by hand.
12932
12933 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12934
12935         PR c++/14178
12936         * doc/invoke.texi (fabi-version): The default is 2 now.
12937
12938 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12939
12940         * loop-iv.c: New file.
12941         * Makefile.in (loop-iv.o): New.
12942         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12943         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12944         num_loop_branches): New functions.
12945         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12946         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12947         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12948         get_simple_loop_desc, free_simple_loop_desc): Declare.
12949         (simple_loop_desc): New inline function.
12950         (struct rtx_iv, struct niter_desc): New.
12951         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12952         * expr.c (force_operand): Handle subregs of expressions created by
12953         loop unroller.
12954         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12955         parts of the initialization to toplev.c
12956         * loop-unroll.c (loop_exit_at_end_p): New.
12957         (unroll_and_peel_loops): Call iv_analysis_done.
12958         (decide_peel_once_rolling, decide_peel_completely,
12959         decide_unroll_stupid, decide_unroll_constant_iterations,
12960         decide_unroll_runtime_iterations, decide_peel_simple,
12961         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12962         unroll_loop_runtime_iterations): Use new simple loop analysis.
12963         * loop-unswitch.c (compare_and_jump_seq): New.
12964         (may_unswitch_on_p): Renamed to ...
12965         (may_unswitch_on): Use new iv analysis.
12966         (reversed_condition): Export.
12967         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12968         * predict.c (estimate_probability): Use new simple loop analysis.
12969         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12970         canon_condition, simplify_using_condition): Declare.
12971         * stor-layout.c (get_mode_bounds): New.
12972         * toplev.c (rest_of_handle_loop2): Some parts of
12973         initialization/finalization moved here from loop-init.c.
12974
12975 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12976
12977         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12978         pointer.
12979         (CALL_USED_REGISTERS): Likewise.
12980         (REG_ALLOC_ORDER): Likewise.
12981         (REG_CLASS) <GENERAL_REGS>: Likewise.
12982
12983 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12984
12985         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12986         in associative operators.
12987         * rtlanal.c (commutative_operand_precedence): Create some new
12988         variables.  Prefer a commutative operand on the left, then
12989         binary expressions, then NEG and NOT.
12990
12991 2004-02-16  Matthias Klose  <doko@debian.org>
12992
12993         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12994         in terms of SHLIB_SOVERSION.
12995         * config/m68k/t-slibgcc-elf-ver: New file.
12996         * config/pa/t-slibgcc-elf-ver: New file.
12997         * config.gcc (m68k-linux, parisc-linux): Use them when not
12998         sjlj exceptions are not configured.
12999
13000 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
13001
13002         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
13003
13004 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
13005
13006         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
13007
13008 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
13009
13010         * doc/sourcebuild.texi: Mention backends.html.
13011
13012 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
13013
13014         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
13015         line-map.c, line-map.h, var-tracking.c: Fix comment
13016         formatting.
13017
13018 2004-02-16  Richard Henderson  <rth@redhat.com>
13019
13020         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
13021
13022         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
13023
13024 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13025
13026         * config/h8300/h8300.md: Remove unnecessary parallels from
13027         all define_insn and define_split patterns.
13028
13029 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13030
13031         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
13032         "clobber").
13033
13034 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
13035
13036         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
13037         '%#'.
13038
13039 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13040
13041         * config/ia64/ia64.c, config/mips/mips.c,
13042         config/mmix/mmix-modes.def: Fix comment typos.
13043
13044 2004-02-15  Roger Sayle  <roger@eyesopen.com>
13045
13046         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
13047         (get_directive_line): Remove unused function prototype.
13048
13049 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13050
13051         * tree-inline.c (copy_body_r): Do not replace ret_label.
13052
13053 2004-02-14  Jan Hubicka  <jh@suse.cz>
13054
13055         * i386.c (x86_four_jump_limit): New variable.
13056         (k8_avoid_jump_misspredicts): Rename to ...
13057         (ix86_avoid_jump_misspredicts): .. this one.
13058         (ix86_pad_returns): Break out from ...
13059         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
13060         to.
13061         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
13062
13063 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
13064
13065         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
13066         PARALLEL is NULL.
13067
13068 2004-02-14  Per Bothner  <per@bothner.com>
13069
13070         * fix-header.c (line_table):  Move local variable in main to global.
13071         * scan.h (line_table):  Use it.
13072         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
13073         line (recently renamed to src_loc) before calling recognized_function.
13074
13075 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
13076
13077         * Makefile.in: Fix comment typos.
13078
13079 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
13080
13081         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
13082         for start_value when it is directly moved into reg, and factorize
13083         the retrieval of GET_MODE (reg).
13084
13085 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13086
13087         * config/mips/mips-protos.h (mips_load_got_page): Delete.
13088         (mips_load_got_global): Delete.
13089         (mips_gotoff_page): Declare.
13090         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
13091         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
13092         UNSPEC_LOAD_GOT pattern rather than a MEM.
13093         (*load_got[sd]i): New patterns.
13094         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
13095         (mips_load_got_page, mips_load_got_global): Delete.
13096         (mips_gotoff_page): New function.
13097         (override_options): Don't initialize mips_got_alias_set.
13098
13099 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
13100
13101         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
13102         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
13103         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
13104         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
13105         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
13106         * config/mips/mips.c: Fix some overly-long lines.
13107         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
13108         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
13109
13110 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13111
13112         * configure.ac: Search for as, ld below libexec/gcc.
13113         * configure: Regenerate.
13114
13115 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13116
13117         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13118         __builtin_arm_setwcx ().
13119         * config/arm/arm.c (arm_expand_builtin): Generate operands
13120         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13121
13122 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
13123
13124         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13125         and "wmuluh" to "wmulsm" and "wmulum", respectively.
13126         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13127         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13128         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13129         (_mm_mulhi_pu16): Likewise.
13130
13131 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
13132
13133         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13134         DECL_NAME != 0 before dereferencing.
13135
13136 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13137
13138         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13139         (s390_output_addr_const_extra): Declare.
13140         (s390_output_pool_entry): Remove FILE * argument.
13141         * config/s390/s390.c (s390_output_symbolic_const): Remove.
13142         (s390_output_addr_const_extra): New function.
13143         (print_operand_address): Call output_addr_const instead of
13144         s390_output_symbolic_const.
13145         (print_operand): Likewise.
13146         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13147         Remove FILE * argument.
13148         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13149         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13150         call.
13151
13152 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13153
13154         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13155         (struct edge, struct vertex, struct graph): New.
13156         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13157         free_graph): New functions.
13158
13159 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
13160
13161         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13162         Use ".set macro" to avoid warnings about multi-instruction
13163         macros, since they're intentional.
13164
13165 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
13166
13167         * config/darwin.h: Add include guards.  Remove old, now incorrect,
13168         comment about STANDARD_EXEC_PREFIX.
13169
13170         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13171         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
13172         for installing .1 manpages.  Add rules for installing cpp
13173         and gcov manpages under their installed names.
13174
13175 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
13176
13177         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13178         host, but try LD_FOR_TARGET first.
13179         * configure: Rebuilt.
13180
13181 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13182
13183         * dbxout.c: Move declaration of dbxout_type_decl outside
13184         #ifdef DBX_DEBUGGING_INFO.
13185         * c-parse.in: Don't give the asmdef production a type.
13186
13187 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13188
13189         * debug.h (struct gcc_debug_hooks): Add type_decl field.
13190         (debug_nothing_tree_int): Prototype.
13191         (dwarf_debug_hooks): Delete, unused.
13192         * debug.c (do_nothing_debug_hooks): Update.
13193         (debug_nothing_tree_int): New function.
13194         * langhooks.h (struct lang_hooks_for_decls):
13195         Remove builtin_type_decls field.
13196         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13197         (LANG_HOOKS_DECLS): Update.
13198         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13199         Use debug_hooks->type_decl.
13200         * dbxout.c (preinit_symbols): New static.
13201         (dbx_debug_hooks, xcoff_debug_hooks): Update.
13202         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13203         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
13204         for symbols to output.
13205         (dbxout_type_decl): New function.
13206         (dbxout_symbol): If called before dbxout_init has run, queue
13207         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13208         to TYPE_DECLs before emitting them.
13209         * xcoffout.c (assign_type_number): Delete.
13210         (xcoff_type_numbers): New static table.
13211         (xcoff_assign_fundamental_type_number): New function.
13212         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13213         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
13214         * sdbout.c: Include varray.h.
13215         (deferred_global_decls): New static.
13216         (sdb_debug_hooks): Update.
13217         (sdbout_global_decl): If we can't emit something right now,
13218         remember it in deferred_global_decls.
13219         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13220         (sdbout_init): Initialize deferred_global_decls.
13221         * Makefile.in: Update dependencies of sdbout.o.
13222         * dwarf2out.c (dwarf2out_type_decl): New function.
13223         (dwarf2_debug_hooks): Update.
13224         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13225         * c-decl.c (getdecls): Just return 0.
13226         (check_for_loop_decls): Don't use getdecls.
13227         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13228         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13229
13230 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
13231
13232         * config/s390/s390.c (s390_sched_reorder2): Remove.
13233         (TARGET_SCHED_REORDER2): Do not redefine.
13234
13235 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
13236
13237         * c-parse.in (maybe_type_qual): Delete.
13238         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13239         (asm_argument): New grammar rules.
13240         (extdef_1): Use asmdef.
13241         (maybeasm): Move down with other asm rules; use simple_asm_expr.
13242         (xexpr): Move up with other expression rules.
13243         (stmt): Use asm_stmt.
13244
13245         * c-typeck.c (build_asm_expr): New function - body mostly
13246         pulled from build_asm_stmt.
13247         (build_asm_stmt): Just handle tacking on the volatile qualifier.
13248         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13249
13250 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
13251
13252         PR bootstrap/13617
13253         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13254         (mips_declare_object): Make variadic.
13255         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13256         mips_output_aligned_decl_common.
13257         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13258         (mips_declare_object): Make variadic.
13259
13260 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13261
13262         * function.c (update_epilogue_consts): Teach about binary operations.
13263
13264         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13265         previous MEM_VOLATILE in REF.
13266         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13267         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13268
13269 2004-02-12  Gunther Nikl  <gni@gecko.de>
13270
13271         * config.gcc: Restore support for m68k-openbsd.
13272
13273 2004-02-12  Jan Hubicka  <jh@suse.cz>
13274
13275         * tree-optimize.c (tree_rest_of_compilation): Do not release
13276         DECL_ARGUMENTS.
13277
13278 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
13279
13280         * doc/install.texi: Fix the spelling of "explicitly".
13281
13282 2004-02-11  Eric Christopher  <echristo@redhat.com>
13283
13284         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13285         duplicate argument structure of cpp_interpret_string.
13286         * cpphash.h: Move prototype...
13287         * cpplib.h: Here.
13288         * cpplib.c: Fix calls to match new function signature.
13289
13290 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
13291
13292         PR c/456
13293         * cppexp.c (num_binary_op): Don't allow comma operators in #if
13294         constant expressions at all outside C99 mode if pedantic.
13295
13296 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
13297
13298         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13299         (log10_optab, log2_optab): Define corresponding macros.
13300         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13301         * genopinit.c (optabs): Implement log10_optab and log2_optab
13302         using log10?f2 and log2?f2 patterns.
13303         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13304         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13305         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13306         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13307
13308         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13309         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13310         log2, log2f and log2l built-ins as inline x87 intrinsics.
13311
13312 2004-02-11  Richard Henderson  <rth@redhat.com>
13313
13314         PR target/1532
13315         * flow.c (insn_dead_p): A clobber of a dead hard register is a
13316         dead insn after reload.
13317
13318 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
13319
13320         * tree.h (frame_base_decl): Add GTY marker.
13321         * var-tracking.c (frame_base_decl): Likewise.
13322
13323 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
13324
13325         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13326         incorrect, hunk.
13327         (add_location_or_const_value_attribute): Use text_section_label,
13328         not TEXT_SECTION_NAME.
13329
13330 2004-02-11  Per Bothner  <per@bothner.com>
13331
13332         Represent column numbers using line-map's source_location.
13333         The "next available source_location" is now managed internally by
13334         line-maps.c rather than by clients.
13335         * line-map.h (struct line_map):  New field column_bits.
13336         <from_line>:  Rename field to start_location.
13337         (struct line_maps):  New fields highest_location and max_column_hint.
13338         (linemap_check_files_exited):  New declaration.
13339         (linemap_line_start):  New declaration.
13340         (linemap_add):  Remove from_line parameter; use highest_location field.
13341         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
13342         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
13343         (CURRENT_LINE_MAP):  Remove macro.
13344         (linemap_position_for_column):  New inline function.
13345         * line-map.c (linemap_init):  Clear new fields.
13346         (linemap_check_files_exited):  New function, extracted from ...
13347         (linemap_free):  Use linemap_check_files_exited.
13348         (linemap_add):  Remove from_line parameter.  Various updates.
13349         (linemap_line_start):  New function.
13350         (linemap_lookeup):  Update for new field names.
13351         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
13352         linemap_position_for_column may unpredictably change the current map,
13353         it is cleaner and simpler for us to not cache it in cpp_reader.
13354         (struct cpp_buffer):  New sysp field.
13355         Changed warned_cplusplus_comments and from_stage3 to bitfields.
13356         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
13357         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
13358         current map using linemap_lookup.
13359         (do_linemarker):  Also set buffer's sysp field.
13360         (destringize_and_run):  No longer need to decrement current line.
13361         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
13362         (search_path_head, open_file_failed):  Use buffer's sysp.
13363         (cpp_make_system_header):  Get current map using linemap_lookup.
13364         Also set buffer's sysp flag.
13365         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
13366         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
13367         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
13368         (struct cpp_reader):  ... and adding saved_line_base field.
13369         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13370         Update accordingly.  Don't adjust line.
13371         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
13372         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
13373         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
13374         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
13375         * cpplex.c (_cpp_lex_direct):  Likewise.
13376         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
13377         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
13378         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
13379         Remove col field as it is now subsumed by src_loc.
13380         * cpperror.c:  Update various field, parameter, and macro names.
13381         (print_location):  If col==0, try SOURCE_COLUMN of line.
13382         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
13383         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
13384         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13385         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
13386         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
13387         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
13388         (_cpp_lex_direct):  Use linemap_position_for_column.
13389         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
13390         parameter.  Instead get it from the line_table global.  Adjust callers.
13391         (print):  Remove map field.  Replace line field to src_line.
13392         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
13393         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
13394         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
13395         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13396         * cpptrad.c (copy_comment):  Rename variable.
13397         * c-lex.c (map):  Remove static variable, for same reason we removed
13398         cpp_reader's map field.
13399         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13400         to call linemap_lookup.
13401         (cb_line_change):  Token's line field replaced by src_loc.
13402         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13403         Don't save new_map.
13404
13405         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13406         source_location.
13407
13408 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13409
13410         * config/rs6000/altivec.md (*movv4si_internal): At least one
13411         operand must be register_operand.
13412         (*movv8hi_internal1): Likewise.
13413         (*movv16qi_internal1): Likewise.
13414         (*movv4sf_internal1): Likewise.
13415
13416 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13417
13418         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13419         operand.
13420         (movv4hi_internal): Same.
13421         (movv2sf_internal): Same.
13422         (movv1di_internal): Same.
13423
13424 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13425
13426         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13427         TARGET_OLDABI consistently.
13428         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13429         mips_va_arg,override_options,compute_frame_size,
13430         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13431         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13432         and TARGET_OLDABI consistently.
13433         * config/mips/mips.md (exception_receiver): Likewise.
13434         * config/mips/linux64.h: Likewise.
13435
13436 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13437
13438         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13439         Set AltiVec ABI and vrsave as default for ppc64 linux.
13440         (init_cumulative_args): Post error, if try to return
13441         value in AltiVec register without enable AltiVec.
13442         (function_arg_advance): Ditto for passing arguments.
13443
13444 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13445
13446         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13447         a label before updating its usage count.
13448
13449 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13450
13451         * doc/install.texi: Remove extra cd.
13452
13453 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13454
13455         * c-common.c (vector_size_helper): Remove; call
13456         reconstruct_complex_type() instead.
13457         * tree.c (reconstruct_complex_type): New function
13458         (formerly vector_size_helper() in c-common.c).
13459         (make_vector): Make externally visible.
13460         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13461
13462 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13463
13464         * config/h8300/h8300-protos.h: Add a prototype for
13465         h8300_regs_ok_for_stm.
13466         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13467         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13468         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13469         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13470         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13471         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13472         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13473         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13474         h8300_regs_ok_for_stm().
13475
13476 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13477
13478         PR c/14088
13479         * real.c (real_from_string): Look for 'X' as well as 'x' in
13480         hexfloat strings.
13481
13482 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13483
13484         * config/h8300/h8300.md: Remove an incorrect comment about
13485         peephole2.  Add comments.
13486
13487 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13488
13489         PR/14058
13490         * emit-rtl.c (set_decl_incoming_rtl): New.
13491         * tree.h (set_decl_incoming_rtl): New.
13492         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13493         DECL_INCOMING_RTL.
13494         * ada/misc.c (adjust_decl_rtl): Likewise.
13495
13496 2004-02-10  Per Bothner  <per@bothner.com>
13497
13498         * c-opts.c (c_common_post_options):   Don't emit working directory
13499         in cpp output if -P was specified.
13500
13501 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13502
13503         PR c/14092
13504         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13505         negate_expr back to the original type.
13506
13507 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13508
13509         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13510         bump retaddr here.
13511
13512 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13513
13514         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13515         gen_lowpart_SUBREG): Move under the file in which they
13516         are actually declared.
13517
13518 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13519
13520         * doc/sourcebuild.texi: Add libada documentation.
13521
13522         * doc/install.texi: Update documentation on Ada build, now
13523         that the GNAT lib and tools are built automatically.
13524
13525 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13526
13527         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13528         && TARGET_IRIX.
13529
13530 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13531
13532         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13533         boundaries outside build_component_ref() call (a macro in ObjC++).
13534
13535 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13536
13537         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13538         (init_cumulative_args): Likewise.
13539         (a7_overlap_mentioned_p): Delete prototype.
13540         * config/xtensa/xtensa.c (struct machine_function): Replace
13541         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13542         Add set_frame_ptr_insn field.
13543         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13544         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13545         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13546         at the function entry and replace the operand with the pseudo.
13547         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13548         argument and record this flag in CUMULATIVE_ARGS.
13549         (function_arg): Remove result_mode and special-case code to handle
13550         arguments in a7.  Instead, set need_a7_copy flag when there is an
13551         incoming argument in a7.
13552         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13553         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13554         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13555         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13556         special-case code.
13557         (a7_overlap_mentioned_p): Delete.
13558         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13559         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13560         arguments to init_cumulative_args and pass "incoming" flag instead.
13561         (BLOCK_REG_PADDING): Delete.
13562         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13563         checks for reload_in_progress and reload_completed.  Update calls to
13564         xtensa_copy_incoming_a7.
13565         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13566         to call xtensa_copy_incoming_a7.
13567
13568 2004-02-09  DJ Delorie  <dj@redhat.com>
13569
13570         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13571         longer modify standard_exec_prefix, standard_bindir_prefix, or
13572         standard_startfile_prefix.
13573
13574 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13575
13576         PR c++/11295
13577         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13578         to expand_expr_real call, and pass in alt_rtl as last argument.
13579
13580         PR libstdc++/5625
13581         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13582         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13583         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13584         * except.c (expand_builtin_extend_pointer): New.
13585         * except.h (expand_builtin_extend_pointer): Declare.
13586
13587 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13588
13589         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13590         unaligned loads and stores.
13591
13592 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13593
13594         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13595         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13596
13597         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13598         * config/mips/iris5.h: ... here.
13599         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13600
13601         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13602         * config/mips/iris5.h: ... here.
13603
13604 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13605
13606         * configure.ac: Remove default executable files before AC_PROG_CC.
13607         * configure: Regenerate.
13608
13609 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13610
13611         PR target/13721
13612         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13613         print a operand other than a register.
13614
13615 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13616
13617         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13618         tree code rather than call fold_convert, which doesn't specify a
13619         default floating point to integer conversion.
13620
13621 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13622
13623         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13624         code to support SGS assembler.  Reformat adjacent code where possible.
13625         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13626         definition.
13627         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13628         for '%#'.
13629         * config/m68k/linux.h, config/m68k/m68k.c,
13630         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13631         macros and asm_printf() format strings.
13632         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13633         * config/m68k/linux.h: Update copyright.
13634         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13635
13636 2004-02-08  Andreas Schwab  <schwab@suse.de>
13637             Bernardo Innocenti  <bernie@develer.com>
13638
13639         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13640         REGISTER_PREFIX.
13641         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13642         frame pointer register, overridable by OS targets.
13643         * (M68K_REGNAME): Macro to obtain register name for asm output,
13644         eventually replacing %a6 with M68K_FP_REG_NAME.
13645         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13646         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13647         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13648         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13649         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13650
13651 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13652
13653         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13654         hook_rtx_tree_int_null.
13655         * targhooks.c (default_struct_value_rtx): Remove.
13656         * targhooks.h: Remove the prototype for
13657         default_struct_value_rtx.
13658         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13659         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13660         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13661         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13662         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13663         config/rs6000/rs6000.c, config/s390/s390.c,
13664         config/stormy16/stormy16.c, config/v850/v850.c,
13665         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13666         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13667
13668 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13669
13670         * README.Portability: Change "ISO C89" to "ISO C90".
13671         * c-parse.in (primary, initelt): Likewise.
13672
13673 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13674
13675         * real.c (encode_ibm_extended): Normalize the input value before
13676         converting it to a double.  Handle the case where a normal value
13677         rounds to infinity.
13678
13679 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13680
13681         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13682         warning.
13683         * cse.c (preferrable): Change to preferable. Update all of its
13684         callers.
13685         * genautomata.c (ainsn): Change
13686         first_ainsn_with_given_equialence_num to
13687         first_ainsn_with_given_equivalence_num.  Update all of its
13688         references.
13689
13690 2004-02-08  Jan Hubicka  <jh@suse.cz>
13691
13692         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13693
13694 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13695
13696         * function.c (assign_parms): Fix formatting.
13697
13698 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13699
13700         * default.h (PROMOTE_PROTOTYPES): Remove.
13701         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13702         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13703         EXPAND_BUILTIN_SAVEREGS): Poison.
13704         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13705         hook_bool_tree_false.
13706         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13707         * target.h: Replace SETUP_INCOMING_VARARGS with
13708         targetm.calls.setup_incoming_varargs().
13709         * targhooks.c (default_promote_function_return): Remove.
13710         (default_promote_prototypes): Likewise.
13711         (default_struct_value_rtx): Always abort().
13712         (default_expand_builtin_saveregs): Always print an error
13713         message.
13714         (default_setup_incoming_varargs): Do nothing.
13715         (default_pretend_outgoing_varargs_named): Don't depend on
13716         SETUP_INCOMING_VARARGS.
13717         * targhooks.h: Remove the prototype for
13718         default_promote_function_return and
13719         default_promote_prototypes.
13720
13721 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13722
13723         * system.h (SHARED_SECTION_ASM_OP): Poison.
13724         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13725         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13726
13727 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13728
13729         Bug 13856
13730         * c-decl.c (diagnose_mismatched_decls): Only give special
13731         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13732         is also true.
13733         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13734         DECL_FUNCTION_CODE when defining a built-in function.
13735         Don't update DECL_ESTIMATED_INSNS.
13736         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13737         FUNCTION_DECLs.
13738         * tree.h: Delete DECL_ESTIMATED_INSNS.
13739         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13740         (expand_call_inline, optimize_inline_calls): Don't update
13741         DECL_ESTIMATED_INSNS nor inlined_insns.
13742         * cgraphunit.c (cgraph_analyze_function): Don't update
13743         DECL_ESTIMATED_INSNS.
13744
13745 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13746
13747         * c-common.c (shadow_warning): Delete.
13748         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13749         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13750         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13751         * c-parse.in (free_parser_stacks): Delete.
13752
13753 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13754
13755         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13756         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13757         Use the top level mkinstalldirs, not the one in the gcc subdir.
13758         * mkinstalldirs: Remove (from the gcc subdir).
13759
13760 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13761
13762         PR middle-end/13696
13763         * fold-const.c (fold_convert): New function to provide type
13764         conversion to the middle-end without using convert.
13765         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13766         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13767         invert_truthvalue, optimize_bit_field_compare, range_binop,
13768         decode_field_reference, make_range, build_range_check, unextend,
13769         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13770         fold_binary_op_with_conditional_arg, fold_inf_compare,
13771         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13772         convert with calls to fold_convert.
13773
13774 2004-02-07  Jan Hubicka  <jh@suse.cz>
13775
13776         * genrecog.c (find_operand): add extra argument stop.
13777         (validate_pattern): Verify that mach_dup is duplicating operand
13778         defined lexically earlier.
13779
13780 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13781
13782         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13783         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13784         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13785         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13786         config/ia64/ia64.h, config/ip2k/ip2k.h,
13787         config/iq2000/iq2000.h, config/mips/iris5.h,
13788         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13789         config/rs6000/aix51.h, config/rs6000/aix52.h,
13790         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13791         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13792         config/sparc/linux.h, config/sparc/linux64.h,
13793         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13794         config/xtensa/xtensa.h: Remove the definitions of
13795         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13796         MAX_WCHAR_TYPE_SIZE.
13797         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13798         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13799
13800 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13801
13802         PR bootstrap/13990
13803         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13804         gen_rtx_NE.
13805
13806 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13807
13808         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13809         #ifdef ENABLE_CHECKING and #endif.
13810
13811 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13812
13813         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13814         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13815         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13816         integer types and floating point with unsafe_math_optimizations.
13817         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13818         Optimize A - B as A + (-B), if B is easily negated.
13819
13820 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13821
13822         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13823         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13824         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13825         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13826         Update copyright.
13827
13828 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13829
13830         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13831
13832 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13833
13834         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13835         glibc 2.3 or better.
13836
13837 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13838
13839         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13840         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13841
13842 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13843
13844         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13845         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13846         (SHLIB_MKMAP_OPTS): Delete.
13847         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13848         (bispecs): Add rule.
13849         * config/rs6000/libgcc-ppc64.ver: New file.
13850         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13851         (__floatdidf, __floatdisf): Optimize multiply.
13852         (__fixunstfdi): New function.
13853         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13854         real and imag parts larger than one register.
13855         (function_arg): Correct type of reg used when fp arg split partially
13856         to stack.
13857         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13858         and __MACH__ or __powerpc64__.
13859
13860 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13861             Ulrich Weigand  <uweigand@de.ibm.com>
13862
13863         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13864         of gen_highpart or gen_lowpart when the floating point format is
13865         wider than the result mode.
13866
13867 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13868
13869         * dwarf2out.c (loclabel_num): Move into #ifdef
13870         DWARF2_DEBUGGING_INFO.
13871
13872 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13873
13874         * objc/objc-act.c (build_super_template) the 'class' field of
13875         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13876         (get_super_receiver): Likewise.
13877
13878 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13879
13880         * reload1.c (check_eliminable_occurrences): Optimize the reset
13881         of can_eliminate.
13882         (eliminate_regs_in_insn): Likewise.
13883
13884 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13885             Josef Zlomek  <zlomekj@suse.cz>
13886
13887         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13888         at the beginning of function, call dwarf2out_var_location for
13889         NOTE_INSN_VAR_LOCATION note.
13890         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13891         decl_loc_table): New.
13892         (lookup_decl_loc): New function.
13893         (add_var_loc_to_decl): New function.
13894         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13895         only if can_use_fbreg.
13896         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13897         functions.
13898         (loc_descriptor): Likewise. Process VAR_LOCATION.
13899         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13900         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13901         can_use_fbreg == true.
13902         (add_location_or_const_value_attribute): Added parameter enum
13903         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13904         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13905         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13906         with attr == DW_AT_location.
13907         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13908         if frame_base_decl is defined and has a location list.
13909         (gen_variable_die): Call add_location_or_const_value_attribute with
13910         attr == DW_AT_location.
13911         (dwarf2out_var_location): New function.
13912         (dwarf2out_begin_function): New function.
13913         (dwarf2out_init): Create decl_loc_table.
13914
13915 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13916
13917         * loop.c (force_movables): Transitively increase the priorities of
13918         all insns forces by an insn, not just the first one.
13919
13920 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13921             Daniel Berlin <dberlin@dberlin.org>
13922
13923         Josef Zlomek  <zlomekj@suse.cz>
13924         * Makefile.in (var-tracking.o): New.
13925         * common.opt (fvar-tracking): New.
13926         * flags.h (flag_var_tracking): New.
13927         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13928         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13929         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13930         * rtl.c (note_insn_name): Likewise.
13931         * rtl.def (VAR_LOCATION): New.
13932         * rtl.h (NOTE_VAR_LOCATION): New.
13933         (NOTE_VAR_LOCATION_DECL): New.
13934         (NOTE_VAR_LOCATION_LOC): New.
13935         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13936         (variable_tracking_main): New exported function.
13937         * timevar.def (TV_VAR_TRACKING): New.
13938         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13939         (dump_file): "vartrack" was added (-dV).
13940         (flag_var_tracking): New.
13941         (f_options): "var-tracking" was added.
13942         (rest_of_handle_variable_tracking): New function.
13943         (rest_of_compilation): Run variable tracking.
13944         (process_options): If user has not specified flag_var_tracking set it
13945         according to optimize, debug_info_level and debug_hooks.
13946         * tree.h (frame_base_decl): New.
13947         * var-tracking.c: New file.
13948         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13949         (ia64_override_options): Set flags to run variable tracking in machine
13950         dependent reorg instead of toplev.c.
13951         (ia64_reorg): Run variable tracking if wanted.
13952         * doc/invoke.texi: Mention variable tracking in -dV,
13953         add and -fvar-tracking.
13954         * doc/passes.texi: Added variable tracking pass.
13955
13956         Daniel Berlin <dberlin@dberlin.org>
13957         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13958         * dbxout.c (dbx_debug_hooks): Likewise.
13959         (xcoff_debug): Likewise.
13960         * debug.c (do_nothing_debug_hooks): Likewise.
13961         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13962         * dwarfout.c (dwarf_debug_hooks): Likewise.
13963         * sdbout.c (sdb_debug_hooks): Likewise.
13964         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13965         * final.c (final_scan_insn): Call var_location debug hook for each
13966         NOTE_INSN_VAR_LOCATION.
13967
13968 2004-02-06  Jan Hubicka  <jh@suse.cz>
13969
13970         * flow.c (update_life_info): Allocate reg_deaths when called from
13971         scheudler.
13972         (attempt_auto_inc):  Update life ranges accordingly.
13973
13974 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13975
13976         PR debug/11816
13977         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13978
13979 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13980
13981         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13982
13983 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13984
13985         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13986         a separate line info table in use.
13987         Use the correct size for terminators.
13988         (output_die): Use offset, not delta.
13989
13990 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13991
13992         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13993
13994 2004-02-06  Jan Hubicka  <jh@suse.cz>
13995
13996         * recog.c (split_all_insns): Do not update reg info.
13997         * regrename.c (regrename_optimize): Likewise.
13998         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13999         * flow.c (struct propagate_block_info): Add insn_num field.
14000         (reg_deaths): New array.
14001         (life_analysis): Free reg_deaths info.
14002         (allocate_reg_life_data): Allocate reg_deaths array.
14003         (propagate_one_insn): Use new array.
14004         (init_propagate_block): Initialize it.
14005         (free_propagate_block_info): Finish compuation of
14006         REG_LIVE_LENGTH
14007         (attempt_auto_inc): Sanity check that REG_INFO is not
14008         computed at same time.
14009         (mark_used_regs): Update new array.
14010
14011         * reg-stack.c (subst_stack_regs): Unshare clobbers before
14012         substitution.
14013
14014 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14015
14016         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
14017         *extendqisi2_short_displ.
14018
14019 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
14020
14021         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
14022         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
14023         (emit_library_call_value_1): Likewise pass nargs.
14024         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
14025         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
14026         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
14027         parameter instead of scanning TYPE_ARGS_TYPES to count args.
14028         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
14029         prototype.
14030         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
14031         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
14032         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
14033         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
14034         INIT_CUMULATIVE_ARGS.
14035         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
14036         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
14037         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
14038         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
14039         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14040         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
14041         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14042         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
14043         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
14044         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
14045         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
14046         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
14047
14048 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14049
14050         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
14051         possible.
14052
14053 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14054
14055         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
14056         note containing (plus (reg) (const_int)), where reg is an
14057         eliminable reg, then perform the register elimination without
14058         depending on eliminate_regs().
14059
14060 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14061
14062         * config/arc/arc.c (arc_return_in_memory): Check the return
14063         value of int_size_in_bytes against -1.  Don't check
14064         TREE_ADDRESSABLE.
14065         * config/avr/avr.c (avr_return_in_memory): Check the return
14066         value of int_size_in_bytes against -1.
14067         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
14068         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
14069         Likewise.
14070         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
14071         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
14072         Likewise.
14073
14074 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14075
14076         * config/frv/frv-protos.h: Remove the prototype for
14077         frv_setup_incoming_varargs.
14078         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
14079         (frv_setup_incoming_varargs): Make it static.
14080         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
14081
14082 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14083
14084         * config/fr30/fr30-protos.h: Remove the prototype for
14085         fr30_setup_incoming_varargs.
14086         Update the prototypes for fr30_num_arg_regs and
14087         fr30_function_arg_partial_nregs.
14088         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
14089         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14090         (fr30_setup_incoming_varargs): Make it static.
14091         Add argument second_time.  Don't do anything when second_time
14092         is nonzero.
14093         (fr30_num_arg_regs): Change the type of the first argument to
14094         enum machine_mode.
14095         (fr30_function_arg_partial_nregs): Change the type of the
14096         second argument to enum machine_mode.
14097         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
14098         (SETUP_INCOMING_VARARGS): Remove.
14099
14100 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14101
14102         * config/arc/arc-protos.h: Remove the prototype for
14103         arc_setup_incoming_varargs.
14104         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14105         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14106         (arc_setup_incoming_varargs): Make it static.
14107         (arc_external_libcall): Likewise.
14108         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
14109         Remove the commented-out definition of
14110         ASM_OUTPUT_EXTERNAL_LIBCALL.
14111
14112 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
14113
14114         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
14115         to $$(slibdir) in the installation commands.
14116
14117 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14118
14119         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14120         with inner_regno, not regno.
14121         * rtlanal.c (refers_to_regno_p): Same.
14122
14123 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14124
14125         * config.gcc: Remove i370 support.
14126
14127 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14128
14129         * doc/install.texi:  Update automake and autoconf version
14130         requirements.  Note where to find gcj automake version.
14131
14132 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14133
14134         * Makefile.in (generate-manpages): Move dependencies to ...
14135         (man): here.
14136         * doc/makefile.texi: Document new targets.
14137         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14138
14139 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
14140
14141         PR/13485
14142         Makefile.in (srcextra):  Add a level of indirection to ...
14143         (gcc.srcextra): ... here.
14144         (po-generated): Delete.
14145         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
14146         options.c.
14147         (start.encap): Remove superfluous lang.srcextra dependency.
14148         objc/Make-lang.in (po-generated):  Delete.
14149
14150 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14151
14152         * config/ia64/ia64.c (REG_GP): Remove.
14153
14154 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14155
14156         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14157
14158 2004-02-05  Devang Patel  <dpatel@apple.com>
14159
14160         * dwarf2out.c (force_type_die): Look up input type itself
14161         instead of root_type() of type.
14162
14163 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
14164
14165         * config/s390/s390.md ("*tmqidi_ext"): New insn.
14166         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14167         pre-reload splitters are transformed to post-reload
14168         define_insn_and_split patterns.
14169         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14170
14171 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14172
14173         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14174         TARGET_PROMOTE_PROTOTYPES.
14175
14176 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14177
14178         PR middle-end/13750
14179         Revert:
14180         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14181         PR pch/13361
14182         * c-typeck.c (constructor_asmspec): Delete.
14183         (struct initializer_stack): Delete field 'asmspec'.
14184         (start_init): Delete saving of asmspec.
14185         (finish_init): Don't update constructor_asmspec.
14186         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14187         * stmt.c (expand_asm): Duplicate strings from tree.
14188         (expand_asm_operands): Likewise.
14189         * tree.c (tree_size): Update computation of size of STRING_CST.
14190         (make_node): Don't make STRING_CST nodes.
14191         (build_string): Allocate string with tree node.
14192         * tree.def (STRING_CST): Update comment.
14193         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14194         (tree_string): Place contents of string in tree node.
14195         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14196         from tree.
14197
14198 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14199
14200         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14201         msgid.
14202
14203 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
14204
14205         * config/rs6000/altivec.md (*movv4si_internal): At least one
14206         operand must be altivec_register_operand.
14207         (*movv8hi_internal1): Likewise.
14208         (*movv16qi_internal1): Likewise.
14209         (*movv4sf_internal1): Likewise.
14210
14211 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
14212
14213         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14214         * configure: Regenerate.
14215
14216 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
14217
14218         * doc/install.texi: Update description of --gxx-include-dir to
14219         give correct default value.
14220
14221 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14222
14223         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14224         8 with MAC_REG.
14225
14226 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14227
14228         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14229         gen_rtx_PARALLEL.
14230
14231 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
14232
14233         * emit-rtl.c: Update the comment about the file.
14234
14235 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
14236
14237         * sourcebuild.texi (Test Idioms): Update testcase naming
14238         conventions.
14239
14240 2004-02-04  Per Bothner  <per@bothner.com>
14241
14242         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14243         * c-ppoutput.c (pp_dir_change):  New function.
14244         * c-common.h (pp_dir_change):  New declaration.
14245         * cpplib.h (struct cpp_options):  Remove working_directory field.
14246         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
14247         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
14248         Don't handle -fworking_directory here, but in c_common_post_options.
14249         (read_original_directory): Don't back up when done.
14250         Don't clear no-longer used working_directory flag.
14251         * cpplib.h:  Update declarations to match.
14252         * c-lex.c (cb_dir_change):  Move to c-opts.c.
14253         (init_c_lex):  Don't set dir_change callback here, since we want
14254         to set it even if flag_preprocess_only.
14255         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
14256         (c_common_post_options):  Set dir_change callback.
14257         Call pp_dir_change if approporiate.
14258         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
14259         unneeded parameter and result. Do LC_RENAME for <built-in>.
14260         (c_common_post_options):  Call cpp_read_main_file here instead.
14261         (c_common_init):  Update accordingly.
14262         (push_command_line_include):  Don't cpp_push_main_file.
14263         Do LC_RENAME rather than LC_LEASE to get back to main file.
14264         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14265         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
14266         files, but call finish_options for all files.
14267         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
14268         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
14269         cpp_find_main_file + cpp_push_main_file.
14270         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
14271         * opts.c (handle_options):  Only set main_input_filename first time.
14272
14273 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
14274
14275         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14276
14277 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
14278
14279         * reload.c (find_equiv_reg): When checking for register overlap,
14280         don't index hard_regno_nregs with a pseudo-reg.
14281
14282 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14283
14284         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14285
14286 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
14287
14288         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14289         against FIRST_PSEUDO_REGISTER.
14290
14291 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14292
14293         * Makefile.in: Move target, host overrides after per-language
14294         fragments.
14295
14296         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14297         (GNATLIBCFLAGS): Remove -g.
14298
14299 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14300
14301         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14302         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14303         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14304         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14305         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14306         config/sparc/sparc.c, config/vax/vax.c: Revert the
14307         replacements of "FALLTHRU" with "Fall through" done in the
14308         previous patch.
14309
14310 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14311
14312         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14313         config/arm/arm.c, config/arm/arm.md,
14314         config/cris/cris-protos.h, config/fr30/fr30.c,
14315         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14316         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14317         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14318         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14319         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14320         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14321         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14322         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14323         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14324         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14325         config/s390/s390.md, config/sparc/netbsd-elf.h,
14326         config/sparc/openbsd.h, config/sparc/sparc.c,
14327         config/xtensa/lib2funcs.S: Fix comment formatting.
14328
14329 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14330
14331         * config/alpha/alpha.c, config/arc/arc.c,
14332         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14333         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14334         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14335         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14336         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14337         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14338         config/iq2000/iq2000.c, config/m32r/m32r.c,
14339         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14340         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14341         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14342         config/rs6000/rs6000.h, config/sparc/sparc.c,
14343         config/vax/vax.c: Fix comment typos.  Follow spelling
14344         conventions.
14345
14346 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14347
14348         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14349         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14350         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14351         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14352         config/arm/fpa.md, config/arm/iwmmxt.md,
14353         config/arm/netbsd-elf.h, config/arm/netbsd.h,
14354         config/m68hc11/m68hc11.md, config/mips/iris5.h,
14355         config/mn10300/mn10300.md, config/rs6000/altivec.md,
14356         config/sparc/netbsd-elf.h: Update copyright.
14357
14358 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
14359
14360         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14361         for all modes whose size is greater than 8 bytes if ARCH32.
14362         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14363         by reference if ARCH32.
14364
14365 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
14366
14367         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14368
14369 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
14370
14371         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14372         to before adddi3 insn patterns.
14373         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14374         "reload_insi"): Move to before addsi3 insn patterns.
14375
14376 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
14377
14378         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14379         parameter.  Use it instead of current_function_is_thunk.
14380         * function.h (struct function): Update documentation for is_thunk.
14381         * tree.h (CALL_FROM_THUNK_P): New macro.
14382         * config/alpha/alpha.c (alpha_sa_mask): Do not check
14383         no_new_pseudos when testing current_function_is_thunk.
14384         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14385
14386 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14387
14388         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14389         TARGET_SETUP_INCOMING_VARARGS.
14390
14391 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14392
14393         * emit-rtl.c (gen_rtx): Remove.
14394         * genattrtab.c: Don't mention gen_rtx in a comment.
14395         * rtl.h: Remove the prototype for gen_rtx.
14396         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14397
14398 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14399
14400         * config/arc/arc.h, config/fr30/fr30.h
14401         (SETUP_INCOMING_VARARGS): Remove the target-independent
14402         comments.
14403         * doc/tm.texi: Don't mention deprecated target macros.
14404
14405 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14406
14407         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14408         target-independent comment.
14409
14410 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14411
14412         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14413         mention deprecated target macros.
14414
14415 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14416
14417         * config.gcc: Remove obsolete ports and configurations.
14418         * config/linux-aout.h, config/netware.h,
14419         config/t-linux-gnulibc1, config/d30v/abi,
14420         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14421         config/d30v/d30v.h, config/d30v/d30v.md,
14422         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14423         config/dsp16xx/dsp16xx-modes.def,
14424         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14425         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14426         config/i370/README, config/i370/i370-c.c,
14427         config/i370/i370-protos.h, config/i370/i370.c,
14428         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14429         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14430         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14431         config/i386/moss.h, config/i386/netware.h,
14432         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14433         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14434         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14435         config/i960/i960-c.c, config/i960/i960-coff.h,
14436         config/i960/i960-modes.def, config/i960/i960-protos.h,
14437         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14438         config/i960/rtems.h, config/i960/t-960bare,
14439         config/m68k/hp310.h, config/m68k/hp320.h,
14440         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14441         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14442         Remove.
14443         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14444         doc/md.texi: Remove mentions of obsolete ports.
14445
14446 2004-02-04  Jan Hubicka  <jh@suse.cz>
14447
14448         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14449         pointer when all VALUE's locations has been invalidated.
14450         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14451
14452 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14453
14454         * doc/invoke.texi (x86 options): Fix spelling/wording.
14455
14456 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14457
14458         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14459         put the original string in a comment.
14460         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14461         * config/mips/mips.c (mips_output_ascii): Likewise.
14462         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14463
14464 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14465
14466         * system.h (GIV_SORT_CRITERION): Poison.
14467         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14468         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14469
14470 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14471
14472         PR target/9348
14473         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14474         multiplies with a multiplication of the wrong signedness, its the
14475         signedness of the multiplication that we've performed that needs to
14476         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14477         if expand_mult_highpart_adjust places the result in target.
14478
14479 2004-02-03  Richard Henderson  <rth@redhat.com>
14480
14481         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14482
14483 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14484
14485         * config.gcc (sh[234]l): Use little endian fragments.
14486
14487 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14488
14489         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14490         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14491         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14492         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14493         floating point format.
14494         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14495         the above functions.
14496         (output_move_quad): Output float values in correct target format.
14497         (legitimate_const_double_p): New function.
14498         * config/pdp11/pdp11.h: Fix typos.
14499         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14500         (TARGET_FLOAT_FORMAT): Ditto.
14501         (pdp11_f_format, pdp11_d_format): Add external declarations.
14502         (MAX_REGS_PER_ADDRESS): Corrected.
14503         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14504         (PRINT_OPERAND): Output float literals in target format.
14505
14506 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14507
14508         PR c++/13975
14509         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14510         TI_PRIVATE.
14511         (access_public_node): Redefine.
14512         (access_protected_node): Likewise.
14513         (access_private_node): Likewise.
14514         * tree.c (build_common_tree_nodes): Create access_public_node,
14515         access_protected_node, and access_private_node.
14516
14517 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14518
14519         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14520         (MASK_INLINE_INT_DIV_THR): Ditto.
14521         (MASK_INLINE_SQRT_LAT): Ditto.
14522         (MASK_INLINE_SQRT_THR): Ditto.
14523         (MASK_DWARF2_ASM): Ditto.
14524         (MASK_EARLY_STOP_BITS): Ditto.
14525
14526 2004-02-02  Paul Brook  <paul@codesourcery.com>
14527
14528         Merge from csl-arm-branch.
14529
14530         2004-01-30  Paul Brook  <paul@codesourcery.com>
14531
14532         * aof.h (REGISTER_NAMES): Add vfp reg names
14533         (ADDITIONAL_REGISTER_NAMES): Ditto.
14534         * aout.h (REGISTER_NAMES): Ditto.
14535         (ADDITIONAL_REGISTER_NAMES): Ditto.
14536         * arm-protos.h: Update/Add Prototypes.
14537         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14538         Only allow 0.0 for VFP.
14539         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14540         (values_fp): Rename from values_fpa.  Update Users.
14541         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14542         Update users.  Only check valid constants for this hardware.
14543         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14544         Only allow consts for FPA.
14545         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14546         Only allow consts for FPA.
14547         (use_return_insn): Check for saved VFP regs.
14548         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14549         (arm_legitimize_address): Ditto.
14550         (arm_general_register_operand): New function.
14551         (vfp_mem_operand): New function.
14552         (vfp_compare_operand): New function.
14553         (vfp_secondary_reload_class): New function.
14554         (arm_float_compare_operand): New function.
14555         (vfp_print_multi): New function.
14556         (vfp_output_fstmx): New function.
14557         (vfp_emit_fstm): New function.
14558         (arm_output_epilogue): Output VPF reg restore code.
14559         (arm_expand_prologue): Output VFP reg save code.
14560         (arm_print_operand): Add 'P'.
14561         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14562         (arm_regno_class): Return classes for VFP regs.
14563         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14564         (arm_get_frame_size): Ditto.
14565         * arm.h (FIXED_REGISTERS): Add VFP regs.
14566         (CALL_USED_REGISTERS): Ditto.
14567         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14568         (FIRST_VFP_REGNUM): Define.
14569         (LAST_VFP_REGNUM): Define.
14570         (IS_VFP_REGNUM): Define.
14571         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14572         (HARD_REGNO_NREGS): Handle VFP regs.
14573         (REG_ALLOC_ORDER): Add VFP regs.
14574         (enum reg_class): Add VFP_REGS.
14575         (REG_CLASS_NAMES): Ditto.
14576         (REG_CLASS_CONTENTS): Ditto.
14577         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14578         (REG_CLASS_FROM_LETTER): Add 'w'.
14579         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14580         (EXTRA_MEMORY_CONSTRAINT): Define.
14581         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14582         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14583         (REGISTER_MOVE_COST): Ditto.
14584         (PREDICATE_CODES): Add arm_general_register_operand,
14585         arm_float_compare_operand and vfp_compare_operand.
14586         * arm.md (various): Rename as above.
14587         (divsf3): Enable when TARGET_VFP.
14588         (divdf3): Ditto.
14589         (movdfcc): Ditto.
14590         (sqrtsf2): Ditto.
14591         (sqrtdf2): Ditto.
14592         (arm_movdi): Disable when TARGET_VFP.
14593         (arm_movsi_insn): Ditto.
14594         (movsi): Only split with general regs.
14595         (cmpsf): Use arm_float_compare_operand.
14596         (push_fp_multi): Restrict to TARGET_FPA.
14597         (vfp.md): Include.
14598         * vfp.md: New file.
14599         * fpa.md (various): Rename as above.
14600         * doc/md.texi: Document ARM w and U constraints.
14601
14602         2004-01-15  Paul Brook  <paul@codesourcery.com>
14603
14604         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14605         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14606         Break out of loop when we find a float-abi.  Fix typo.
14607         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14608         Set -mfloat-abi=.
14609         * doc/install.texi: Document --with-fpu.
14610
14611         2003-01-14  Paul Brook  <paul@codesourcery.com>
14612
14613         * config.gcc (with_arch): Add armv6.
14614         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14615         * config/arm/arm.c (arm_overrride_options): Ditto.
14616
14617         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14618
14619         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14620         (FL_ARCH6): Renamed from FL_ARCH6J.
14621         (arm_arch3m): Renamed from arm_fast_multiply.
14622         (arm_arch6): Renamed from arm_arch6j.
14623         * arm.h: Update all uses of above.
14624         * arm-cores.def: Likewise.
14625         * arm.md: Likewise.
14626
14627         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14628         not arm6j.  Add entry for arch armv6.
14629
14630         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14631
14632         * arm.c (arm_emit_extendsi): Delete.
14633         * arm-protos.h (arm_emit_extendsi): Delete.
14634         * arm.md (zero_extendhisi2): Also handle zero-extension of
14635         non-subregs.
14636         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14637         (thumb_zero_extendhisi2): Only match if not v6.
14638         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14639         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14640         (thumb_extendqisi2): Likewise.
14641         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14642         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14643         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14644         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14645         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14646         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14647         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14648         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14649         (arm_extendqisi2addsi): Likewise.
14650
14651         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14652
14653         Revert this change:
14654         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14655         + REG addressing modes.
14656
14657         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14658         + REG addressing modes.
14659
14660         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14661
14662         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14663         CONSTANT_P_RTX.
14664
14665         2003-30-12  Paul Brook  <paul@codesourcery.com>
14666
14667         * longlong.h: protect arm inlines with !defined (__thumb__)
14668
14669         2003-30-12  Paul Brook  <paul@codesourcery.com>
14670
14671         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14672
14673         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14674
14675         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14676         change.
14677
14678         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14679
14680         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14681         to the virtual incoming args pointer for downward stacks.
14682
14683         2003-12-29  Paul Brook  <paul@codesourcery.com>
14684
14685         * config/arm/arm-cores.def: Add cost function.
14686         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14687         (arm_rtx_costs): Remove
14688         (struct processors): Add rtx_costs field.
14689         (all_cores, all_architectures): Ditto.
14690         (arm_override_options): Set targetm.rtx_costs.
14691         (thumb_rtx_costs): New function.
14692         (arm_rtx_costs_1): Remove cases handled elsewhere.
14693         * config/arm/arm.h (processor_type): Add COSTS parameter.
14694
14695         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14696
14697         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14698         (arm926ejs.md): Include it.
14699         * config/arm/arm926ejs.md: New pipeline description.
14700
14701         2003-12-24  Paul Brook  <paul@codesourcery.com>
14702
14703         * config/arm/arm.c (arm_arch6j): New variable.
14704         (arm_override_options): Set it.
14705         (arm_emit_extendsi): New function.
14706         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14707         * config/arm/arm.h (arm_arch6j): Declare.
14708         * config/arm/arm.md: Add sign/zero extend insns.
14709
14710         2003-12-23  Paul Brook  <paul@codesourcery.com>
14711
14712         * config/arm/arm.c (all_architectures): Add armv6.
14713         * doc/invoke.texi: Document it.
14714
14715         2003-12-19  Paul Brook  <paul@codesourcery.com>
14716
14717         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14718         insn patterns to match.
14719         * config/arm/arm-generic.md: Ditto.
14720         * config/arm/cirrus.md: Ditto.
14721         * config/arm/fpa.md: Ditto.
14722         * config/amm/iwmmxt.md: Ditto.
14723         * config/arm/arm1026ejs.md: Ditto.
14724         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14725         for 11_loadb.
14726
14727         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14728
14729         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14730         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14731         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14732         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14733         arm_no_early_mul_dep): Correctly deal with conditional execution,
14734         parallels and single shift operations.
14735         (arm_no_early_alu_shift_value_dep): Define.
14736         * arm.md (attr type): Replace 'normal' with 'alu',
14737         'alu_shift' and 'alu_shift_reg'.
14738         (attr core_cycles): Adjust.
14739         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14740         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14741         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14742         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14743         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14744         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14745         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14746         attribute appropriately.
14747         * config/arm/arm1026ejs.md (alu_op): Adjust.
14748         (alu_shift_op, alu_shift_reg_op): New.
14749         * config/arm/arm1136.md: Add better bypasses for early
14750         registers. Remove load[234] and store[234] bypasses.
14751         (11_alu_op): Adjust.
14752         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14753
14754         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14755
14756         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14757         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14758         * config/arm/arm.c (arm_no_early_store_addr_dep,
14759         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14760         * config/arm/arm1026ejs.md: Add load-store bypass.
14761         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14762         Add bypasses between instructions.
14763
14764         2003-12-10  Paul Brook  <paul@codesourcery.com>
14765
14766         * config/arm/arm.c (arm_fpu_model): New variable.
14767         (arm_fload_abi): New variable.
14768         (target_fpe_name): Rename from target_fp_name.
14769         (target_fpu_name): New variable.
14770         (arm_is_cirrus): Remove.
14771         (fpu_desc): New struct.
14772         (all_fpus): Define.
14773         (pf_model_for_fpu): Define.
14774         (all_loat_abis): Define.
14775         (arm_override_options): Set fp arch flags based on -mfpu=
14776         and -float-abi=.
14777         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14778         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14779         (*): Use new TARGET_* flags.
14780         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14781         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14782         (TARGET_SOFT_FLOAT): Ditto.
14783         (TARGET_SOFT_FLOAT_ABI): New.
14784         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14785         TARGET_HARD_FLOAT.
14786         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14787         (TARGET_OPTIONS): Add -mfpu=.
14788         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14789         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14790         (arm_pf_model): Define.
14791         (arm_float_abi_type): Define.
14792         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14793         * config/arm/arm.md: Use new TARGET_* flags.
14794         * config/arm/cirrus.md: Ditto.
14795         * config/arm/fpa.md: Ditto.
14796         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14797         * config/arm/semi.h (ASM_SPEC): Ditto.
14798         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14799         (FPUTYPE_DEFAULT): Set to VFP.
14800         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14801
14802         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14803
14804         PR target/12476
14805         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14806         'bx' instead of 'b' to avoid branch range restrictions.  Output
14807         the thunk immediately before the thunked-to function.
14808         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14809         .thumb_func if a thunk is being generated.  Emit .code 16 along
14810         with .thumb_func if a thunk is not being generated.
14811
14812         2003-11-15  Nicolas Pitre <nico@cam.org>
14813
14814         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14815         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14816         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14817         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14818         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14819
14820         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14821             Ian Lance Taylor  <ian@wasabisystems.com>
14822
14823         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14824         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14825
14826         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14827
14828         * config/arm/arm.md (insn):  Add new V6 instruction names.
14829         (generic_sched):  New attr.
14830         * config/arm/arm-generic.md:  Use generic_sched here.
14831         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14832         stages of pipeline.  Adjust latency counts accordingly.
14833         * config/arm/arm1136jfs.md:  New file.
14834
14835         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14836
14837         * config/arm/arm.h (processor_type): New enumeration type.
14838         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14839         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14840         (CPP_CPU_ARCH_SPEC): Likewise.
14841         * config/arm/arm.c (arm_tune): New variable.
14842         (all_cores): Use cores.def.
14843         (all_architectures): Add representative processor.
14844         (arm_override_options): Restructure way in which tuning
14845         information is deduced.
14846         * arm.md: Update "insn" and "type" attributes throughout.
14847         (insn): New attribute.
14848         (type): Compute "mult" from "insn" attribute.  Add load2,
14849         load3, load4 alternatives.
14850         (arm automaton): Move to arm-generic.md.
14851         * config/arm/arm-cores.def: New file.
14852         * config/arm/arm-generic.md: Likewise.
14853         * config/arm/arm1026ejs.md: Likewise.
14854
14855 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14856
14857         * doc/invoke.texi (SPARC options): Remove -mflat and
14858         all -mxxx (xxx:chip) options.
14859         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14860         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14861         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14862         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14863         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14864         * config/sparc/sparc.c: Likewise.
14865         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14866         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14867         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14868         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14869         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14870         (sparc_flat_must_save_register_p): Likewise.
14871         (sparc_flat_compute_frame_size): Likewise.
14872         (sparc_flat_save_restore): Likewise.
14873         (sparc_flat_function_prologue): Likewise.
14874         (sparc_flat_function_epilogue): Likewise.
14875         (sparc_flat_epilogue_delay_slots): Likewise.
14876         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14877         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14878         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14879         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14880         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14881         (CONDITIONAL_REGISTER_USAGE): Likewise.
14882         (FRAME_POINTER_REQUIRED): Likewise.
14883         (INITIAL_ELIMINATION_OFFSET): Likewise.
14884         (BASE_RETURN_VALUE_REG): Likewise.
14885         (BASE_OUTGOING_VALUE_REG): Likewise.
14886         (BASE_PASSING_ARG_REG): Likewise.
14887         (BASE_INCOMING_ARG_REG): Likewise.
14888         (INCOMING_REGNO): Likewise.
14889         (OUTGOING_REGNO): Likewise.
14890         (LOCAL_REGNO): Likewise.
14891         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14892         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14893         (EPILOGUE_USES): Likewise.
14894         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14895         ("flat" attribute): Delete.
14896         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14897         handling.
14898         (call followed by jump define_peephole's): Delete.
14899         (exception_receiver): Likewise.
14900         (builtin_setjmp_receiver): Likewise.
14901         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14902
14903 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14904
14905         PR c/11658
14906         PR c/13994
14907         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14908         on langhooks.h.
14909         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14910         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14911         Include langhooks.h.  Replace c_common_truthvalue_conversion
14912         with the truthvalue_conversion language hook throughout.
14913         (expr_no_commas): Call default_conversion before save_expr
14914         for the first term of the production 'x ? : y'.
14915         * c-common.c (c_common_truthvalue_conversion): Remove
14916         obsolete block.  Invoke recursively the hook instead
14917         of this function.
14918         * c-convert.c (convert): handle ERROR_MARK_NODE.
14919         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14920         returned by the truthvalue_conversion language hook.
14921         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14922         c_objc_common_truthvalue_conversion.
14923         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14924         New function.
14925         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14926         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14927         c_objc_common_truthvalue_conversion.
14928
14929 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14930
14931         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14932         of gen_rtx.
14933         (LIBCALL_VALUE): Likewise.
14934         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14935         gen_rtx_CC0 instead of gen_rtx.
14936         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14937         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14938         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14939         gen_rtx.
14940         (m68hc11_emit_logical): Likewise.
14941
14942 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14943
14944         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14945         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14946         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14947         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14948         config/mips/mips.md, config/mmix/mmix.c,
14949         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14950         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14951         config/rs6000/altivec.md, config/s390/s390.c,
14952         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14953         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14954         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14955         constants that are readily available.
14956
14957 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14958
14959         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14960         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14961         instead of GEN_INT (0).  Do the same for other constants that
14962         are readily available.
14963
14964 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14965
14966         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14967         gen_rtx.
14968         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14969         instead of gen_rtx.
14970         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14971         gen_rtx.
14972         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14973         gen_rtx_ASHIFT instead of gen_rtx.
14974         (udivmodqi4): Likewise.
14975
14976 2004-02-02  Richard Henderson  <rth@redhat.com>
14977
14978         PR target/13789
14979         * expr.c (store_expr): Use force_operand before emit_move_insn.
14980
14981 2004-02-02  Jeff Law  <law@redhat.com>
14982             Roger Sayle  <roger@eyesopen.com>
14983
14984         * tree.c (commutative_tree_code, associative_tree_code): New
14985         functions.
14986         (iterative_hash_expr): Use commutative_tree_code.
14987         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14988         * fold-const.c (operand_equal_p): Use commutative_tree_code
14989         rather than inlining the commutativity check.
14990         (fold): Likewise.
14991
14992 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14993
14994         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14995         * config/frv/frv-protos.h: Remove the prototype for
14996         frv_function_arg_keep_as_reference.
14997         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14998         Remove.
14999         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
15000         * config/stormy16/stormy16.h: Remove the commented-out
15001         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
15002
15003 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
15004
15005         PR target/13914
15006         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
15007         for retaddr_column.
15008
15009 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15010
15011         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
15012         gen_rtx.
15013
15014 2004-02-02  Eric Christopher  <echristo@redhat.com>
15015             Zack Weinberg  <zack@codesourcery.com>
15016
15017         * c-opts.c (c_common_handle_option): Add -finput-charset.
15018         * c.opt: Ditto.
15019         * cppcharset.c (one_iso88591_to_utf8): Remove.
15020         (convert_iso88591_utf8): Ditto.
15021         (conversion_tab): Remove 8859-1 converter.
15022         (_cpp_input_to_utf8): Remove.
15023         (_cpp_init_iconv_buffer): Ditto.
15024         (_cpp_close_iconv_buffer): Ditto.
15025         (_cpp_convert_input): New function.
15026         (_cpp_default_encoding): Ditto.
15027         * cpphash.h: Add/remove prototypes for above.
15028         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
15029         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
15030         for narrow execution and input character sets.
15031         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
15032         * doc/cppopts.texi: Document -finput-charset.
15033
15034 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
15035
15036         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
15037         against FIRST_PSEUDO_REGISTER.
15038
15039 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15040
15041         * doc/invoke.texi (SPARC options): Further improve.
15042
15043 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15044
15045         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
15046         config/h8300/h8300.c, config/ip2k/ip2k.md,
15047         config/iq2000/iq2000.c, config/mips/mips.c,
15048         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
15049         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
15050         config/v850/v850.md: Fix indentation.
15051
15052 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15053
15054         * config/sparc/sparc.c (function_arg_slotno): Align TImode
15055         arguments on a 16-byte boundary in the parameter array if ARCH64.
15056         Split handling of TFmode.
15057
15058 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
15059
15060         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
15061         Don't test CONSTANT_P (x).
15062         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
15063         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
15064         Fix misindentation.
15065
15066 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
15067
15068         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
15069
15070 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
15071
15072         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
15073         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
15074         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
15075         config/iq2000/iq2000.c, config/m32r/m32r.c,
15076         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
15077         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
15078         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
15079         config/stormy16/stormy16.c, config/v850/v850.md,
15080         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
15081
15082 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15083
15084         * config/mcore/mcore.c (block_move_sequence): Replace
15085         gen_rtx_CONST_INT with GEN_INT.
15086
15087 2004-02-02  Jan Hubicka  <jh@suse.cz>
15088
15089         * alias.c (record_set): Use hard_regno_nregs.
15090         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
15091         * builtins.c (apply_args_size): Likewise.
15092         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
15093         mark_set_regs, add_stored_regs, mark_referenced_regs,
15094         insert_restore, insert_save, insert_one_insn): Likewise.
15095         * cfgcleanup.c: Include regs.h
15096         (mark_effect, mentions_nonequal_regs): Likewise.
15097         * cfgrtl.c (mark_killed_regs): Likewise
15098         * combine.c (update_table_tick, record_value_for_reg,
15099         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
15100         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
15101         reg_bitfield_target_p, distribute_notes): Likewise.
15102         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
15103         exp_equiv_p, cse_insn): Likewise.
15104         * cselib.c (cselib_lookup): Likewise.
15105         (cselib_invalidate_regno, cselib_record_set): Likewise.
15106         * df.c (df_ref_record): Likewise.
15107         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
15108         Likewise.
15109         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
15110         count_or_remove_death_notes_bb): Likewise.
15111         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
15112         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
15113         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
15114         * integrate.c (mark_stores): Likewise.
15115         * jump.c (delete_prior_computation): Likewise.
15116         * lcm.c (reg_dies, reg_becomes_live): Likewise.
15117         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15118         * loop.c (LOOP_REGNO_NREGS): Likewise.
15119         * postreload.c (reload_combine, reload_combine_note_store,
15120         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15121         * ra-colorize.c (combine, color_usable_p, get_free_reg,
15122         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
15123         try_recolor_web, insert_coalesced_conflicts, check_colors,
15124         break_precolored_alias): Likewise.
15125         * ra-debug.c: Include regs.h
15126         (ra_print_rtx_object): Likewise.
15127         * ra-rewrite (choose_spill_colors): Likewise.
15128         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15129         * ra.c (init_ra): Likewise.
15130         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15131         peep2_find_free_register): Likewise.
15132         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15133         * regclass.c (hard_regno_nregs): New array.
15134         (init_reg_modes_once): Initialize it.
15135         (choose_hard_reg_mode): Use it.
15136         (record_reg_classes): Likewise.
15137         * regmove.c (mark_flags_life_zones): Likewise.
15138         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15139         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15140         copy_value, maybe_mode_change, find_oldest_value_reg,
15141         copyprop_hardreg_forward_1):
15142         * regs.h (hard_regno_nregs): Declare.
15143         * realod.c (reload_inner_reg_of_subreg): Use it.
15144         (push_reload, combine_reloads, find_dummy_reload,
15145         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15146         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15147         reload_adjust_reg_for_mode): Likewise.
15148         * reload1.c (compute_use_by_pseudos, count_pseudo,
15149         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15150         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15151         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15152         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15153         delete_output_reload): Likewise.
15154         * resource.c (update_live_status, mark_referenced_resources,
15155         mark_set_resources, mark_target_live_regs): Likewise.
15156         * rtlanal.c:  Include regs.h
15157         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15158         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15159         subreg_regno_offset, subreg_offset_representable_p,
15160         hoist_test_store): Likewise.
15161         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15162         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15163         * stmt.c: Include regs.h
15164         (decl_conflicts_with_clobbers_p): Likewise.
15165         * varasm.c (make_decl_rtl): Likewise.
15166         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15167
15168 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15169
15170         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15171         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15172         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15173         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15174         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15175         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15176         config/iq2000/iq2000.h, config/m32r/m32r.c,
15177         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15178         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15179         config/mcore/mcore.c, config/mcore/mcore.h,
15180         config/mcore/mcore.md, config/mips/mips.c,
15181         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15182         config/rs6000/rs6000.c, config/s390/s390.c,
15183         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15184         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15185         "gen_rtx (FOO, " with "gen_rtx_FOO (".
15186
15187 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15188
15189         * config/h8300/h8300.md (two peephole2's): New.
15190
15191 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15192
15193         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15194         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15195         (ASM_CPU_SPEC): Likewise
15196         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15197         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
15198
15199 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15200
15201         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15202         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15203         (expand_builtin): Always call expand_builtin_pow.
15204
15205 2004-02-01  Roger Sayle  <roger@eyesopen.com>
15206
15207         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15208         BUILT_IN_SIGNBITL): New GCC builtins.
15209         * builtins.c (expand_builtin_signbit): New function to RTL expand
15210         calls to signbit, signbitf and signbitl as inline intrinsics.
15211         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15212         (fold_builtin_signbit): New function to perform constant folding
15213         of signbit, signbitf and signbitl.
15214         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15215
15216         * doc/extend.texi: Document new signbit{,f,l} builtins.
15217
15218 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
15219
15220         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15221
15222 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
15223
15224         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15225         "mips_const_double_ok" and "simple_memory_operand", which were
15226         removed from the MIPS port with the mips-3_4-rewrite branch merge.
15227         * config/mips/mips.c (mips16_lay_out_constants): Update comment
15228         for removal of simple_memory_operand.
15229
15230 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15231
15232         * config/c4x/c4x.md: Use GEN_INT instead of
15233         gen_rtx (CONST_INT, ...).
15234
15235 2004-01-31  Richard Henderson  <rth@redhat.com>
15236
15237         * varasm.c (output_constant_pool): Don't zap the pool.
15238
15239 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15240
15241         * genrecog.c (decision_type): Add DT_const_int.
15242         (write_cond) [DT_const_int]: Print a comparison against small
15243         constant.
15244         (write_node): Simplify comparisons against small constants
15245         before printing tests.
15246
15247 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15248
15249         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15250         instead of gen_rtx_CONST_INT.
15251
15252 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15253
15254         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15255         instead of gen_rtx_CONST_INT.
15256
15257 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15258
15259         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15260         hook_bool_CUMULATIVE_ARGS_false.
15261         * targhooks.c (default_strict_argument_naming): Rename to
15262         hook_bool_CUMULATIVE_ARGS_false.
15263         * targhooks.h: Update the prototype for
15264         default_strict_argument_naming.
15265
15266 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15267
15268         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15269         * config/sh/sh.h: Likewise.
15270         * config/sh/sh.md: Likewise.
15271
15272 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
15273
15274         * doc/invoke.texi (SPARC options): Restructure and update.
15275
15276 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15277
15278         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15279         STRICT_ARGUMENT_NAMING): Poison.
15280         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15281         hook_bool_tree_false.
15282         * targhooks.c (default_promote_function_args): Remove.
15283         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15284         Don't check incoming.
15285         (default_strict_argument_naming): Don't use
15286         STRICT_ARGUMENT_NAMING.
15287         * targhooks.h: Remove the prototype for
15288         default_promote_function_args.
15289
15290 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15291
15292         * config/i386/i386-protos.h: Remove the prototype for
15293         ix86_setup_incoming_varargs.
15294         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15295         (ix86_setup_incoming_varargs): Make it static.
15296         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15297
15298 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15299
15300         * alloc-pool.c: Fix comment typos.
15301         * builtin-types.def: Likewise.
15302         * builtins.def: Likewise.
15303         * c-pretty-print.c: Likewise.
15304         * df.h: Likewise.
15305         * reload1.c: Likewise.
15306
15307 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15308
15309         * doc/invoke.texi: Follow spelling conventions.
15310         * doc/tm.texi: Likewise.
15311
15312 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15313
15314         * doc/install.texi: Fix typos.
15315         * doc/invoke.texi: Likewise.
15316
15317 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15318
15319         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15320         registers as pointers.
15321         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15322
15323 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
15324
15325         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15326         and restore it to gen_lowpart_general on exit.
15327         (gen_lowpart_for_combine): Adjust all callers to go through
15328         gen_lowpart.
15329         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15330         and restore it to gen_lowpart_general on exit.
15331         (gen_lowpart_if_possible): Adjust all callers to go through
15332         gen_lowpart.
15333         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15334         (gen_lowpart): Declare as pointer to function, initialized to
15335         gen_lowpart_general.
15336         * rtl.h (gen_lowpart): Declare as pointer to function.
15337
15338 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15339
15340         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15341         * calls.c: Likewise.
15342         * emit-rtl.c: Likewise.
15343         * function.c: Likewise.
15344         * reload1.c: Likewise.
15345         * config/i386/cygming.h: Likewise.
15346         * config/i386/i386.c: Likewise.
15347         * config/i386/winnt.c: Likewise.
15348
15349 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
15350
15351         PR bootstrap/9249
15352         * doc/install.texi: document --enable-__cxa_atexit option.
15353         * configure.ac: Disable __cxa_atexit if not supported.
15354         * configure: Regenerate.
15355
15356 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
15357
15358         * ggc-zone.c (ggc_free): New function.
15359
15360 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15361
15362         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15363         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15364         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15365         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15366         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15367         config/alpha/alpha.c, config/alpha/alpha.h,
15368         config/alpha/alpha.md, config/alpha/unicosmk.h,
15369         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15370         config/c4x/c4x-protos.h, config/c4x/c4x.md,
15371         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15372         config/frv/frvend.c, config/i386/cygming.h,
15373         config/i386/djgpp.h, config/i386/emmintrin.h,
15374         config/i386/gthr-win32.c, config/i386/i386-interix.h,
15375         config/i386/i386-protos.h, config/i386/openbsd.h,
15376         config/i386/winnt.c, config/i386/xm-mingw32.h,
15377         config/i386/xmmintrin.h, config/ia64/ia64.md,
15378         config/iq2000/iq2000.md, config/m32r/m32r.md,
15379         config/m68k/m68k.md, config/mcore/mcore-elf.h,
15380         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15381         config/mips/iris5gas.h, config/mips/iris6.h,
15382         config/mips/iris6gas.h, config/mips/linux.h,
15383         config/mips/mips.md, config/mips/netbsd.h,
15384         config/mips/openbsd.h, config/mips/windiss.h,
15385         config/pa/fptr.c, config/rs6000/aix.h,
15386         config/rs6000/altivec.h, config/rs6000/darwin.h,
15387         config/rs6000/xcoff.h, config/s390/s390-protos.h,
15388         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15389         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15390         config/sparc/sol2.h: Update copyright.
15391
15392 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
15393
15394         * Makefile.in (abs_docdir, abs_srcdir): Define.
15395         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15396
15397 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15398
15399         * genconfig.c (main): Have CC0_P check its operand even on a
15400         target without cc0.
15401
15402 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15403
15404         * config/alpha/alpha.c: Remove mentions of deprecates macros
15405         in comments, remove some target-independent comments about target
15406         macros, and/or add minimal function comments for target hook
15407         implementations.
15408         * config/avr/avr.c: Likewise.
15409         * config/ia64/ia64.h: Likewise.
15410         * config/ip2k/ip2k.c: Likewise.
15411         * config/iq2000/iq2000.c: Likewise.
15412         * config/m32r/m32r.h: Likewise.
15413         * config/m68hc11/m68hc11.c: Likewise.
15414         * config/mcore/mcore.c: Likewise.
15415         * config/mmix/mmix.c: Likewise.
15416         * config/mn10300/mn10300.c: Likewise.
15417         * config/pa/pa.c: Likewise.
15418         * config/pdp11/pdp11.c: Likewise.
15419         * config/rs6000/rs6000.h: Likewise.
15420         * config/sh/sh.c: Likewise.
15421         * config/sh/sh.h: Likewise.
15422         * config/sparc/sparc.c: Likewise.
15423         * config/sparc/sparc.h: Likewise.
15424         * config/stormy16/stormy16.c: Likewise.
15425         * config/xtensa/xtensa.c: Likewise.
15426
15427 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15428
15429         PR optimization/12147
15430         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15431         RELOAD_FOR_OPADDR_ADDR.
15432         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15433         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15434
15435 2004-01-30  Jan Hubicka  <jh@suse.cz>
15436
15437         * reload.c (get_secondary_mem): Fix updating of
15438         secondary_memlocs_elim_used.
15439
15440 2004-01-30  Richard Henderson  <rth@redhat.com>
15441
15442         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15443         (MAX_RTX_HASH_TABLE): Remove.
15444         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15445         (first_pool, last_pool, pool_offset): Remove.
15446         (struct rtx_constant_pool): Split out from ...
15447         (struct varasm_status): ... here.  Reference one via pointer.
15448         (struct constant_descriptor_rtx): Merge struct pool_constant.
15449         (SYMHASH): Remove.
15450         (decode_rtx_const): Remove.
15451         (const_hash_rtx, compare_constant_rtx): Remove.
15452         (record_constant_rtx): Remove.
15453         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15454         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15455         (const_rtx_hash_1, const_rtx_hash): New.
15456         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15457         (simplify_subtraction): Use simplify_rtx.
15458         (force_const_mem): Rewrite to use new data structures.
15459         (find_pool_constant): Likewise.
15460         (get_pool_constant, get_pool_constant_mark,
15461         get_pool_constant_for_function, get_pool_mode,
15462         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15463         (output_constant_pool_2): Split out from output_constant_pool.
15464         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15465         (output_constant_pool): Zap entire pool datastructure.
15466         (mark_constant): Use new pool datastructures.
15467         (mark_constants): Use for_each_rtx.
15468         (mark_constant_pool): Use new pool datastructures.
15469
15470 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15471
15472         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15473         Copy operands[1] to pseudo for simplify_gen_subreg.
15474
15475 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15476
15477         * gcse.c (bypass_block): Fix a typo in the previous check-in
15478         to the file.
15479
15480 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15481
15482         * toplev.c: Include alloc-pool.h.
15483         * Makefile.in (toplev.c): Update dependencies.
15484
15485 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15486
15487         * combine.c (simplify_shift_const, case XOR): Be careful when
15488         commuting XOR with ASHIFTRT.
15489
15490 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15491             Eric Botcazou  <ebotcazou@libertysurf.fr>
15492
15493         * config/sparc/sparc-protos.h: Remove the prototype for
15494         sparc_builtin_saveregs.
15495         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15496         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15497         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15498         (TARGET_STRUCT_VALUE_RTX): Likewise.
15499         (TARGET_RETURN_IN_MEMORY): Likewise.
15500         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15501         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15502         (sparc_builtin_saveregs): Make it static.
15503         (sparc_promote_prototypes): New.
15504         (sparc_struct_value_rtx): Likewise.
15505         (sparc_return_in_memory): Likewise.
15506         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15507         (PROMOTE_FUNCTION_RETURN): Likewise.
15508         (RETURN_IN_MEMORY): Likewise.
15509         (STRUCT_VALUE): Likewise.
15510         (STRUCT_VALUE_INCOMING): Likewise.
15511         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15512         (STRICT_ARGUMENT_NAMING): Likewise.
15513         (PROMOTE_PROTOTYPES): Likewise.
15514
15515         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15516
15517 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15518
15519         PR c/12818
15520         * varasm.c (const_hash_1) <STRING_CST>: Use the
15521         address to compute the hash value if flag_writable_strings.
15522         (compare_constant) <STRING_CST>: Compare the addresses
15523         if flag_writable_strings.
15524         (build_constant_desc): Do not copy the expression for a
15525         STRING_CST if flag_writable_strings.
15526
15527 2004-01-30  Jan Hubicka  <jh@suse.cz>
15528
15529         * alloc-pool.c: Include hashtab.h
15530         (alloc_pool_descriptor): New structure
15531         (alloc_pool_hash): New global variable.
15532         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15533         (create_alloc_pool): Update statistics.
15534         (free_alloc_pool): Likewise.
15535         (pool_alloc): Likewise.
15536         (output_info): New structure
15537         (print_statistics, dump_alloc_pool_statistics): New function.
15538         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15539         (dump_alloc_pool_statistics): Declare.
15540         * toplev.c (finalize):  Dump statistics.
15541
15542         * reload.c (secondary_memlocs_elim_used): New static variable.
15543         (get_secondary_mem): Update it.
15544         (find_reloads): Use it.
15545
15546 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15547
15548         * toplev.c: Fix broken checkin of 2003-12-30, again.
15549
15550 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15551
15552         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15553         s390*-*-* targets by specifying a 'nop' insn.
15554         * configure: Regenerate.
15555
15556 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15557
15558         PR target/11475
15559         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15560
15561 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15562
15563         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15564         of addr when creating MEM copy.
15565
15566 2004-01-29  Devang Patel  <dpatel@apple.com>
15567
15568         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15569
15570 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15571
15572         PR inline-asm/6162
15573         * reload.c (find_reloads): Only support one pair of commutative
15574         operands.
15575
15576 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15577
15578         PR java/13824
15579         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15580         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15581         recursion.
15582
15583 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15584
15585         * config/frv/frv.c: Don't mention deprecated macros in
15586         comments.  Remove some target-independent comments about
15587         target macros.
15588         * config/frv/frv.h: Likewise.
15589
15590 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15591
15592         * cfghooks.c (split_block): Set probability and count of the
15593         new edge.
15594
15595 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
15596
15597         * dwarf2out.c (struct die_struct): Added field decl_id.
15598         (decl_die_table): Changed to hash table.
15599         (decl_die_table_allocated): Deleted.
15600         (decl_die_table_in_use): Deleted.
15601         (DECL_DIE_TABLE_INCREMENT): Deleted.
15602         (decl_die_table_hash): New function.
15603         (decl_die_table_eq): New function.
15604         (lookup_decl_die): Lookup in a hash table.
15605         (equate_decl_number_to_die): Insert into a hash table.
15606         (dwarf2out_init): Init hash table decl_die_table.
15607
15608 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15609
15610         PR optimization/13424
15611         * expr.c (store_constructor): Revert 2003-12-03 change.
15612
15613         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15614         expected before returning early.  Avoid sharing RTL if they
15615         need to be changed.
15616
15617         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15618         handling so that memory attributes are preserved.  Don't call
15619         ix86_set_move_mem_attrs.
15620         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15621         (ix86_expand_clrstr): Rename src argument to
15622         dst.  Rework rep_stos and strset handling so that memory attributes
15623         are preserved.
15624         (ix86_expand_strlen): Pass src argument to
15625         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15626         memory attributes are preserved.
15627         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15628         change_address instead of gen_rtx_MEM.
15629         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15630         expanders.
15631         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15632         strmovqi, strmovqi_rex64): Remove.
15633         (rep_mov*, strmov*): Prefix insn names with *.
15634         (strset, strset_singleop, rep_stos): New expanders.
15635         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15636         strsetqi, strsetqi_rex64): Remove.
15637         (rep_stos*, strset*): Prefix insn names with *.
15638         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15639         to SImode.
15640         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15641         are preserved.
15642         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15643         Prefix insn names with *.
15644         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15645         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15646         (strlenqi_1): New expander.
15647         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15648
15649 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15650
15651         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15652         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15653         verify_flow_info): Declaration removed.
15654         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15655         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15656         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15657         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15658         instead of delete_block.
15659         * cfghooks.c: Include timevar.h and toplev.h.
15660         (cfg_hooks): Define here.
15661         (verify_flow_info, dump_bb): Moved from cfg.c.
15662         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15663         split_block, split_block_after_labels, move_block_after,
15664         delete_basic_block, split_edge, create_basic_block,
15665         create_empty_bb, can_merge_blocks_p, merge_blocks,
15666         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15667         New functions.
15668         * cfghooks.h (struct cfg_hooks): Added fields name,
15669         make_forwarder_block, tidy_fallthru_edge and
15670         move_block_after. Changed type of verify_flow_info, dump_bb,
15671         split_block fields. Renamed cfgh_split_edge and delete_block
15672         fields.
15673         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15674         split_block, delete_block, split_edge, create_basic_block,
15675         can_merge_blocks_p, merge_blocks): Macros removed.
15676         (cfg_hooks): Do not export.
15677         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15678         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15679         move_block_after, delete_basic_block, split_edge, create_basic_block,
15680         create_empty_bb, can_merge_blocks_p, merge_blocks,
15681         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15682         Declare.
15683         (cfg_layout_rtl_cfg_hooks): Declare.
15684         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15685         New functions.
15686         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15687         (redirect_edge_with_latch_update): Removed.
15688         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15689         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15690         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15691         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15692         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15693         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15694         cfghooks.c.
15695         (rtl_create_basic_block): Coding style fix.
15696         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15697         rtl_make_forwarder_block): New functions.
15698         (update_cfg_after_block_merging): Removed.
15699         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15700         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15701         to dump_bb.
15702         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15703         find_if_case_2): Don't update dominators.
15704         * timevar.def (TV_CFG_VERIFY): New.
15705         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15706         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15707         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15708         (remove_bbs): Don't call remove_bbs.
15709         (create_preheader): Use make_forwarder_block.
15710         (mfb_keep_just, mfb_update_loops): New static functions.
15711
15712 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15713
15714         * config/avr/avr.h: Remove target-independent comments about
15715         target macros.
15716
15717 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15718
15719         * timevar.c (timevar_print): Mention when checking is enabled.
15720
15721 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15722
15723         * c-lex.c (c_lex): Rename to...
15724         (c_lex_with_flags): Add new parameter to get CPP flags.
15725         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15726         * c-pragma.h (c_lex_with_flags): Declare.
15727
15728 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15729
15730         * config/mcore/mcore.c (mcore_external_libcall): Add a
15731         comment.
15732         (mcore_return_in_memory): Likewise.
15733
15734 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15735
15736         * config/mcore/mcore-protos.h: Remove the prototype for
15737         mcore_setup_incoming_varargs.
15738         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15739         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15740         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15741         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15742         (TARGET_STRUCT_VALUE_RTX): Likewise.
15743         (TARGET_RETURN_IN_MEMORY): Likewise.
15744         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15745         (mcore_setup_incoming_varargs): Make it static.  Receive the
15746         first argument by reference.  Add argument second_time.
15747         (mcore_external_libcall): New.
15748         (mcore_return_in_memory): Likewise.
15749         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15750         (PROMOTE_FUNCTION_RETURN): Likewise.
15751         (STRUCT_VALUE): Likewise.
15752         (RETURN_IN_MEMORY): Likewise.
15753         (SETUP_INCOMING_VARARGS): Likewise.
15754         (PROMOTE_PROTOTYPES): Likewise.
15755         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15756
15757 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15758
15759         * config/m32r/m32r-protos.h: Remove the prototype for
15760         m32r_setup_incoming_varargs.
15761         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15762         (TARGET_STRUCT_VALUE_RTX): Likewise.
15763         (TARGET_RETURN_IN_MEMORY): Likewise.
15764         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15765         (m32r_return_in_memory): New.
15766         (m32r_setup_incoming_varargs): Make it static.
15767         * config/m32r/m32r.h: Remove #undef of
15768         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15769         definitions of PROMOTE_FUNCTION_ARGS and
15770         PROMOTE_FUNCTION_RETURN.
15771         (PROMOTE_PROTOTYPES): Remove.
15772         (RETURN_IN_MEMORY): Likewise.
15773         (STRUCT_VALUE): Likewise.
15774
15775 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15776
15777         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15778         (TARGET_STRUCT_VALUE_RTX): Likewise.
15779         (m68k_struct_value_rtx): Likewise.
15780         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15781         STRUCT_VALUE_REGNUM.
15782         (PROMOTE_PROTOTYPES): Remove.
15783         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15784         STRUCT_VALUE_REGNUM.
15785         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15786         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15787
15788 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15789
15790         * config/stormy16/stormy16.c
15791         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15792         TARGET_BUILD_BUILTIN_VA_LIST.
15793
15794 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15795
15796         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15797         (TARGET_STRUCT_VALUE_RTX): Likewise.
15798         (TARGET_RETURN_IN_MEMORY): Likewise.
15799         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15800         (v850_return_in_memory): Likewise.
15801         (v850_setup_incoming_varargs): Likewise.
15802         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15803         (SETUP_INCOMING_VARARGS): Likewise.
15804         (RETURN_IN_MEMORY): Likewise.
15805         (STRUCT_VALUE): Likewise.
15806
15807 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15808
15809         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15810         (fr30_setup_incoming_varargs): Don't use
15811         STRICT_ARGUMENT_NAMING.
15812         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15813         (STRICT_ARGUMENT_NAMING): Likewise.
15814
15815 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15816
15817         * config/frv/frv-protos.h: Remove the prototype for
15818         frv_expand_builtin_saveregs.
15819         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15820         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15821         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15822         STRUCT_VALUE_REGNUM.
15823         (frv_expand_builtin_saveregs): Make it static.
15824         (frv_struct_value_rtx): New.
15825         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15826
15827 2004-01-29  Jan Hubicka  <jh@suse.cz>
15828
15829         PR c++/12850
15830         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15831         initial pointers.
15832         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15833         for functions that will be only inlined.
15834         (cgraph_mark_function_to_output): Likewise.
15835         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15836         do not clear function body.
15837         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15838         (tree_rest_of_compilation): Reorganize the logic releasing function
15839         body to use callgraph datastructure.
15840
15841 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15842
15843         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15844         to register_operand.
15845
15846 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15847
15848         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15849         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15850         match_operand expressions so that all match_dups appear
15851         lexically after their corresponding match_operands.
15852
15853 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15854
15855         * config/h8300/h8300.c (WORD_REG_USED): Use
15856         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15857         (compute_saved_regs): Likewise.
15858         (h8300_expand_prologue): Likewise.  Allocate locals after
15859         saving registers.
15860         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15861         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15862         registers.
15863         (h8300_initial_elimination_offset): Adjust for the new frame
15864         layout, which swaps flips the order of locals and saved
15865         registers.
15866         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15867         (HARD_FRAME_POINTER_REGNUM): New.
15868         (ELIMINABLE_REGS): Add an elimination rule from
15869         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15870         (REGISTER_NAMES): Add fp.
15871         * config/h8300/h8300.md (FP_REG): Change to 11.
15872         (HFP_REG): New.
15873
15874 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15875
15876         * genrecog.c (write_node): Remove a useless local variable.
15877
15878 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15879
15880         * Makefile.in (options.c options.h): Use stamp file s-options to
15881         avoid unnecessary rebuilds.
15882         (options.o): New target listing dependencies.
15883         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15884         (STAGESTUFF): Add s-gtyp-gen.
15885
15886 2004-01-28  Richard Henderson  <rth@redhat.com>
15887
15888         * ggc.h (ggc_free): Declare.
15889         * ggc-common.c (ggc_realloc): Use it.
15890         * ggc-page.c: Remove lots of inline markers.
15891         (globals): Add free_object_list.
15892         (ggc_alloc): Tidy.
15893         (ggc_free, validate_free_objects): New.
15894         (poison_pages): Provide default.
15895         (ggc_collect): Call validate_free_objects; emit markers to
15896         the debug file.
15897
15898 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15899             Jim Wilson  <wilson@specifixinc.com>
15900
15901         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15902         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15903         scratch pointer.
15904         (ia64_secondary_reload_class): Delete case GR_REGS.
15905         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15906         Do not allocate a scratch register.
15907         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15908
15909 2004-01-28  Jan Hubicka  <jh@suse.cz>
15910
15911         * gcse.c (bypass_block): Prevent edges to be unified when we are
15912         about to emit compenstation code.
15913
15914 2004-01-28  Nick Clifton  <nickc@redhat.com>
15915
15916         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15917         the setcwx insn into a register.
15918
15919 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15920
15921         * config/fp-bit.c (pack_d): When using paired doubles to implement
15922         a long double, round the high part separately.
15923         (unpack_d): Fix the case in which the high part is a power of two
15924         and the low part is a nonzero value of the opposite sign.
15925
15926 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15927
15928         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15929         (TARGET_STRUCT_VALUE_RTX): Likewise.
15930         (c4x_external_libcall): Likewise.
15931         (c4x_struct_value_rtx): Likewise.
15932         * config/c4x/c4x.h: Remove.
15933         (STRUCT_VALUE_REGNUM): Likewise.
15934         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15935
15936 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15937
15938         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15939         (TARGET_STRUCT_VALUE_RTX): Likewise.
15940         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15941         (STRUCT_VALUE): Likewise.
15942         (PROMOTE_PROTOTYPES): Likewise.
15943
15944 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15945
15946         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15947         CONST_INT before using INTVAL.
15948
15949 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15950
15951         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15952         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15953         frame if !TARGET_BACKCHAIN.
15954         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15955         TARGET_BACKCHAIN.
15956         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15957
15958 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15959
15960         * ia64.c (ia64_function_arg): When placing HFAs in integer
15961         registers, do not special case the mode used for complex
15962         types.  Do not advance int_regs until the current register
15963         is full.
15964
15965 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15966
15967         PR target/7297
15968         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15969
15970 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15971
15972         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15973         slow, unaligned loads and stores while debugging.  Fix formatting.
15974
15975 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15976
15977         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15978         of computing wmode.
15979         (restore_stack_nonlocal): Same.
15980
15981 2004-01-27  Devang Patel <dpatel@apple.com>
15982
15983         * Makefile.in (dwarf2out.o): Depend on input.h
15984         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15985         imported_module_or_decl.
15986         (xcoff_debug_hooks): Same.
15987         * sdbout.c (sdb_debug_hooks): Same.
15988         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15989         * debug.c (do_nothing_debug_hooks): Same.
15990         (debug_nothing_tree_tree): New function.
15991         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15992         * dwarf2out.c: Include input.h.
15993         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15994         (remove_child_TAG): New function.
15995         (dwarf_tag_name): Handle DW_TAG_imported_module.
15996         (gen_subprogram_die): Equate decl number to declaration die. Do not
15997         remove all children dies while reusing declaration die for definition.
15998         Instead, selectively remove only formal parameters.
15999         (gen_variable_die): Equate variable decl to declaration die.
16000         (gen_field_die): Equate field decl to line number.
16001         (force_namespace_die): Replace it with ...
16002         (force_decl_die): ... this.
16003         (force_type_die): New function.
16004         (setup_namespace_context): Replace use of force_namespace_die() with
16005         force_decl_die().
16006         (gen_namespace_die): Same.
16007         (dwarf2out_imported_module_or_decl): New function.
16008
16009 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
16010
16011         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
16012         on CQImode and CHImode incoming arguments in register a7.
16013         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
16014         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
16015         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
16016         xtensa_copy_incoming_a7 before reload.
16017
16018 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
16019
16020         * coverage.c (get_coverage_counts): Give a different message
16021         if flag_guess_branch_prob is set.
16022         * predict.c (counts_to_freqs): Return an int.
16023         (estimate_bb_frequencies): If counts_to_freqs returns zero,
16024         calculate estimates.
16025
16026 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
16027
16028         * config/iq2000/iq2000-protos.h: Remove the prototype for
16029         iq2000_setup_incoming_varargs.
16030         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16031         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16032         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16033         (TARGET_STRUCT_VALUE_RTX): Likewise.
16034         (TARGET_RETURN_IN_MEMORY): Likewise.
16035         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16036         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16037         (iq2000_return_in_memory): Likewise.
16038         (iq2000_setup_incoming_varargs): Make it static.  Receive the
16039         first argument by reference.
16040         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
16041         (PROMOTE_FUNCTION_RETURN): Likewise.
16042         (PROMOTE_PROTOTYPES): Likewise.
16043         (RETURN_IN_MEMORY): Likewise.
16044         (STRUCT_VALUE): Likewise.
16045         (SETUP_INCOMING_VARARGS): Likewise.
16046         (STRICT_ARGUMENT_NAMING): Likewise.
16047
16048 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
16049
16050         * fixinc/fixinc.c (test_test): Initialize res.
16051         (start_flexer): Initialize pz_cmd_save.
16052
16053 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16054
16055         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
16056         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
16057
16058 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16059
16060         PR 7198
16061         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
16062         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
16063         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
16064         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
16065         Possibly rename pattern for consistency.
16066         Remove ??? comments suggesting that this be done.
16067         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
16068         New patterns.
16069         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
16070         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
16071         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
16072         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
16073         Update to match.
16074
16075 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
16076
16077         * config/arm/arm.c (output_return_instruction): Only restore IP
16078         into SP if frame_pointer_needed.
16079
16080 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16081
16082         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16083         for SCmode and DCmode if ARCH32.
16084         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
16085         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
16086         if ARCH32.
16087         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
16088         if ARCH32.
16089         (BASE_OUTGOING_VALUE_REG): Likewise.
16090
16091 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
16092
16093         PR target/10904
16094         PR target/13058
16095         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
16096         Forbid mode changes from SImode for lower FP regs if ARCH64.
16097
16098 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
16099
16100         * Makefile.in (bt-load.o): Depend on except.h.
16101         * bt-load.c (except.h): #include.
16102         (compute_defs_uses_and_gen): If insn at end of BB can throw
16103         within this function, consider registers used by it unavailable for
16104         btr migration.
16105         (move_btr_def): If insn at end of BB can throw, insert before rather
16106         than after.
16107
16108         * flags.h (flag_btr_bb_exclusive): Declare.
16109         * toplev.c (flag_btr_bb_exclusive): New variable.
16110         (f_options): Add btr-bb-exclusive.
16111         * bt-load.c (augment_live_range): Restore old behaviour if
16112         flag_btr_bb_exclusive is set.
16113         * common.opt: Add entry for -fbtr-bb-exclusive.
16114         * opts.c (common_handle_options): Same.
16115         * doc/invoke.texi: Document -fbtr-bb-exclusive.
16116
16117         * bt-load.c (btrs_live_at_end): New variable.
16118         (compute_defs_uses_and_gen): Compute its pointed-to array.
16119         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16120         (augment_live_range): When augmenting with a new dominator,
16121         use only its btrs_live_at_end set, but also add in the full set
16122         of the old dominator.
16123         (btr_def_live_range): Use btrs_live_at_end.
16124         (move_btr_def): Set other_btr_uses_before_def, and move new set
16125         to the end of the basic block, if appropriate.
16126         (migrate_btr_defs): Allocate and free btrs_live_at_end.
16127
16128         * bt-load.c (basic_block_freq): Remove outdated comment.
16129
16130 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
16131
16132         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16133         (PREDICATE_CODES): Remove duplicate.
16134         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16135         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16136         (MASK_PROFILE_KERNEL): Adjust define.
16137
16138 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
16139
16140         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16141         of long string literals from 32 bytes to sizeof (void *) when !-Os
16142         and to 1 with -Os.
16143
16144 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16145
16146         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16147         constant addresses in the normal mode.
16148
16149 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16150
16151         * system.h (CHAR_BITFIELD): Delete.
16152         (BOOL_BITFIELD): New.
16153         * c-decl.c (c_scope): Use BOOL_BITFIELD.
16154         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16155
16156 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16157
16158         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16159         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16160         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16161         (TARGET_STRUCT_VALUE_RTX): Likewise.
16162         (TARGET_RETURN_IN_MEMORY): Likewise.
16163         (arc_return_in_memory): Likewise.
16164         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16165         (PROMOTE_FUNCTION_RETURN): Likewise.
16166         (RETURN_IN_MEMORY): Likewise.
16167         (STRUCT_VALUE): Likewise.
16168
16169 2004-01-26  Richard Henderson  <rth@redhat.com>
16170
16171         * c-parse.in (extension): Use itype.
16172         (SAVE_EXT_FLAGS): Don't allocate a tree.
16173         (RESTORE_EXT_FLAGS): Don't read a tree.
16174
16175 2004-01-26  Jan Hubicka  <jh@suse.cz>
16176
16177         * cselib.c (discard_useless_values):  Clear out value pointer pointing
16178         to datastructure to be recycled.
16179
16180 2004-01-25  Jan Hubicka  <jh@suse.cz>
16181
16182         * genextract.c (main): Do not output the memset when not checking.
16183
16184 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16185
16186         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16187         switch statement instead of a chain of if statements.
16188
16189 2004-01-26  Jeff Law  <law@redhat.com>
16190
16191         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
16192         acute accents for Petur Runolfsson's entry.
16193
16194 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16195
16196         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16197         (TARGET_RETURN_IN_MEMORY): Likewise.
16198         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16199         (RETURN_IN_MEMORY): Likewise.
16200
16201 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16202
16203          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16204          unaligned load/store into smaller loads and stores.
16205
16206 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16207
16208         * function.c (assign_parms): Do not assign
16209         long long argument to memory in prologue if
16210         is it loaded into register.
16211
16212 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16213
16214          PR middle-end/13779
16215          * expr.c (emit_group_load): split constant
16216          correctly into register components of PARALLEL insn.
16217
16218 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
16219
16220         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16221         Use adjust_address_nv directly with appropriate mode.
16222         (restore_stack_nonlocal): Ditto.
16223
16224 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16225
16226         * config/xtensa/xtensa-protos.h: Remove the prototype for
16227         xtensa_builtin_saveregs.
16228         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16229         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16230         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16231         (TARGET_STRUCT_VALUE_RTX): Likewise.
16232         (TARGET_RETURN_IN_MEMORY): Likewise.
16233         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16234         (xtensa_builtin_saveregs): Make it static.
16235         (xtensa_return_in_memory): New.
16236         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16237         (PROMOTE_FUNCTION_RETURN): Likewise.
16238         (PROMOTE_PROTOTYPES): Likewise.
16239         (STRUCT_VALUE): Likewise.
16240         (RETURN_IN_MEMORY): Likewise.
16241         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16242
16243 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16244
16245         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16246         (arm_setup_incoming_varargs): Likewise.
16247         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16248
16249 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16250
16251         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16252         (cris_setup_incoming_varargs): Likewise.
16253         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16254
16255 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16256
16257         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16258         (ns32k_struct_value_rtx): Likewise.
16259         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16260         NS32K_STRUCT_VALUE_REGNUM.
16261
16262 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16263
16264         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16265         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16266         (TARGET_STRUCT_VALUE_RTX): Likewise.
16267         (arm_struct_value_rtx): Likewise.
16268         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16269         (STRUCT_VALUE): Likewise.
16270         (STRUCT_VALUE_REGNUM): Likewise.
16271         (PROMOTE_PROTOTYPES): Likewise.
16272
16273 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16274
16275         * config/ia64/ia64-protos.h: Remove the prototype for
16276         ia64_setup_incoming_varargs and ia64_return_in_memory.
16277         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16278         (TARGET_RETURN_IN_MEMORY): Likewise.
16279         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16280         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16281         (ia64_setup_incoming_varargs): Adjust the arguments to meet
16282         the requirement of TARGET_SETUP_INCOMING_VARARGS.
16283         (ia64_return_in_memory): Make it static.  Change the return
16284         type to bool from int.  Add an argument.
16285         (ia64_struct_value_rtx): New.
16286         * config/ia64/ia64.h: Remove commented-out definitions of
16287         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16288         PROMOTE_PROTOTYPES.
16289         (RETURN_IN_MEMORY): Remove.
16290         (STRUCT_VALUE_REGNUM): Likewise.
16291         (STRICT_ARGUMENT_NAMING): Likewise.
16292
16293 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
16294
16295         PR target/13666
16296         * config/sparc/sparc.c (function_arg_union_value): New function.
16297         (function_arg): Use it to deal with unions.
16298         (function_value): Likewise.  Define 'regbase' only for ARCH64.
16299         Replace a conditional statement by a simpler one.
16300
16301 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
16302
16303         * config/mips/mips.c (mips16_optimize_gp): Delete.
16304         (mips_reorg): Don't call it.
16305
16306 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16307
16308         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16309         (floatunsqihf2): Remove operand 6.
16310         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16311         fix patterns.
16312         (ldi_conditional, ldf_conditional): Validate operands.
16313
16314 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16315
16316         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16317         (HAVE_GAS_HIDDEN): Undefine as interim measure.
16318
16319 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16320
16321         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
16322         memory references if TARGET_EXPOSE_LDP nonzero.
16323
16324 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16325
16326         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16327
16328 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16329
16330         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16331         invalid operand combinations.
16332
16333 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16334
16335         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16336         c4x_legitimate_address_p.  Fix post_modify check.
16337
16338         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16339         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16340
16341 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16342
16343         * config/pa/pa-protos.h: Remove the prototype for
16344         hppa_builtin_saveregs.  Add a prototype for
16345         pa_return_in_memory.
16346         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16347         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16348         (TARGET_STRUCT_VALUE_RTX): Likewise.
16349         (TARGET_RETURN_IN_MEMORY): Likewise.
16350         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16351         (pa_struct_value_rtx): Likewise.
16352         (pa_return_in_memory): Likewise.
16353         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16354         PA_STRUCT_VALUE_REGNUM.
16355         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16356         (EXPAND_BUILTIN_SAVEREGS): Remove.
16357         (PROMOTE_PROTOTYPES): Likewise.
16358         (PROMOTE_FUNCTION_RETURN): Likewise.
16359
16360 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16361
16362         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16363         (TARGET_STRUCT_VALUE_RTX): Likewise.
16364         (vax_struct_value_rtx): Likewise.
16365         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16366         VAX_STRUCT_VALUE_REGNUM.
16367         (PROMOTE_PROTOTYPES): Remove.
16368
16369 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16370
16371         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
16372
16373 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
16374
16375         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16376         and MIPS64 have HI/LO interlocks.  Update comment.
16377
16378 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16379
16380         * config/stormy16/stormy16-protos.h: Remove the prototype for
16381         xstormy16_setup_incoming_varargs.
16382         * config/stormy16/stormy16.c
16383         (xstormy16_setup_incoming_varargs): Remove.
16384         (xstormy16_return_in_memory): New.
16385         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16386         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16387         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16388         (TARGET_STRUCT_VALUE_RTX): Likewise.
16389         (TARGET_RETURN_IN_MEMORY): Likewise.
16390         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16391         (PROMOTE_FUNCTION_RETURN): Likewise
16392         (PROMOTE_PROTOTYPES): Likewise
16393         (RETURN_IN_MEMORY): Likewise
16394         (STRUCT_VALUE): Likewise
16395         (SETUP_INCOMING_VARARGS): Likewise
16396
16397 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16398
16399         * config/mips/mips.c (mips_offset_within_object_p): New function.
16400         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16401         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16402         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16403
16404 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16405
16406         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16407         (PROMOTE_FUNCTION_RETURN): Likewise.
16408
16409 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16410
16411         * config/mn10300/mn10300-protos.h: Remove the prototype for
16412         mn10300_builtin_saveregs.
16413         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16414         (TARGET_STRUCT_VALUE_RTX): Likewise.
16415         (TARGET_RETURN_IN_MEMORY): Likewise.
16416         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16417         (mn10300_return_in_memory): Likewise.
16418         (mn10300_builtin_saveregs): Make it static.
16419         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16420         (RETURN_IN_MEMORY): Likewise.
16421         (STRUCT_VALUE): Likewise.
16422         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16423
16424 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16425
16426         PR bootstrap/13853
16427         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16428
16429 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16430
16431         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16432         using ccr.
16433
16434 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16435
16436         * config/i860/i860-protos.h: Remove the prototype for
16437         i860_saveregs.
16438         * config/i860/i860.c (i860_saveregs): Make it static.
16439         (i860_struct_value_rtx): New.
16440         (TARGET_STRUCT_VALUE_RTX): Likewise.
16441         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16442         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16443         I860_STRUCT_VALUE_REGNUM.
16444         (EXPAND_BUILTIN_SAVEREGS): Remove.
16445
16446 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16447
16448         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16449         (TARGET_RETURN_IN_MEMORY): Likewise.
16450         (m68hc11_struct_value_rtx): Likewise.
16451         (m68hc11_return_in_memory): Likewise.
16452         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16453         of PROMOTE_PROTOTYPES.
16454         (RETURN_IN_MEMORY): Remove.
16455         (STRUCT_VALUE_REGNUM): Likewise.
16456
16457 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16458
16459         * config/mmix/mmix-protos.h: Remove the prototype for
16460         mmix_setup_incoming_varargs.
16461         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16462         (TARGET_STRUCT_VALUE_RTX): Likewise.
16463         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16464         (mmix_setup_incoming_varargs): Make it static.
16465         (mmix_struct_value_rtx): New.
16466         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16467         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16468         (STRUCT_VALUE_REGNUM): Remove.
16469         (SETUP_INCOMING_VARARGS): Likewise.
16470
16471 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16472
16473         * config/mips/mips-protos.h: Remove the prototypes for
16474         mips_setup_incoming_varargs and mips_return_in_memory.
16475         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16476         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16477         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16478         (TARGET_STRUCT_VALUE_RTX): Likewise.
16479         (TARGET_RETURN_IN_MEMORY): Likewise.
16480         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16481         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16482         (mips_setup_incoming_varargs): Match the prototype for
16483         TARGET_SETUP_INCOMING_VARARGS.
16484         (mips_return_in_memory): Make it static.  Add argument fntype.
16485         (mips_strict_argument_naming): New.
16486         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16487         (PROMOTE_FUNCTION_ARGS): Likewise.
16488         (PROMOTE_FUNCTION_RETURN): Likewise.
16489         (STRUCT_VALUE): Likewise.
16490         (RETURN_IN_MEMORY): Likewise.
16491         (SETUP_INCOMING_VARARGS): Likewise.
16492         (STRICT_ARGUMENT_NAMING): Likewise.
16493
16494 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16495
16496         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16497         (TARGET_RETURN_IN_MEMORY): Likewise.
16498         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16499         (ip2k_return_in_memory): Likewise.
16500         (ip2k_setup_incoming_varargs): Likewise.
16501         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16502         (STRUCT_VALUE): Likewise.
16503         (STRUCT_VALUE_INCOMING): Likewise.
16504         (SETUP_INCOMING_VARARGS): Likewise.
16505
16506 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16507
16508         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16509         (TARGET_RETURN_IN_MEMORY): Likewise.
16510         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16511         (avr_return_in_memory): Remove.
16512         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16513         (STRUCT_VALUE): Likewise.
16514         (STRUCT_VALUE_INCOMING): Likewise.
16515         (STRICT_ARGUMENT_NAMING): Likewise.
16516
16517 2004-01-25  Jan Hubicka  <jh@suse.cz>
16518
16519         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16520
16521 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16522
16523         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16524         (mips_regno_mode_ok_for_base_p): Declare.
16525         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16526         (FRAME_POINTER_REGNUM): Renumber to 78.
16527         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16528         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16529         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16530         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16531         (REG_MODE_OK_FOR_BASE_P): Likewise.
16532         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16533         entry for 77 to "$arg" and entry for 78 to "$frame".
16534         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16535         (mips_reg_mode_ok_for_base_p): Remove.
16536         (mips_regno_mode_ok_for_base_p): New function, derived from old
16537         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16538         restrictions unless we're being strict.
16539         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16540
16541 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16542
16543         * c-common.h: Fix comment typos.
16544         * c-decl.c: Likewise.
16545         * cgraphunit.c: Likewise.
16546         * combine.c: Likewise.
16547         * et-forest.c: Likewise.
16548         * flow.c: Likewise.
16549         * function.c: Likewise.
16550         * ifcvt.c: Likewise.
16551         * integrate.c: Likewise.
16552         * jump.c: Likewise.
16553         * postreload.c: Likewise.
16554         * varray.c: Likewise.
16555
16556 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16557
16558         * doc/frontends.texi: Update copyright.
16559         * doc/gcov.texi: Likewise.
16560         * doc/gty.texi: Likewise.
16561         * doc/sourcebuild.texi: Likewise.
16562         * doc/standards.texi: Likewise.
16563
16564 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16565
16566         PR target/12978
16567         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16568         Remove movstrqi_small because it conflicts with movstrqi_large.
16569
16570 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16571
16572         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16573         (TARGET_STRUCT_VALUE_RTX): Likewise.
16574         (cris_struct_value_rtx): Likewise.
16575         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16576         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16577         STRUCT_VALUE_REGNUM.
16578         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16579
16580 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16581
16582         PR bootstrap/13848
16583         * cse.c (cse_cc_succs): Change the mode of the source expression
16584         as soon as decide we need a new mode.  Don't permit changing modes
16585         if we found a match in a successor block.
16586         (cse_condition_code_reg): Save original mode of source expression
16587         so that we know whether we have to change the mode in other
16588         insns.
16589
16590 2004-01-24  Jan Hubicka  <jh@suse.cz>
16591
16592         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16593         widen_memory_access):  Return early when there is nothing to change.
16594
16595 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16596
16597         * simplify-rtx.c (simplify_relational_operation): Don't
16598         simplify address == constant into address + -constant == 0.
16599
16600 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16601
16602         * gcc.c (process_command): Don't internationalize the
16603         Copyright message.
16604         * mips-tfile.c (main): Likewise.
16605
16606 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16607
16608         * cse.c: (cse_cc_succs) Fix comparison warning.
16609
16610 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16611
16612         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16613
16614 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16615
16616         * config/h8300/h8300-protos.h: Provide prototypes for
16617         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16618         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16619         (h8300_rtx_ok_for_base_p): Likewise.
16620         (h8300_legitimate_address_p): Likewise.
16621         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16622         h8300_legitimate_constant_p.
16623         (RTX_OK_FOR_BASE_P): Remove.
16624         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16625
16626 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16627
16628         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16629         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16630         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16631         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16632         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16633         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16634         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16635         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16636
16637 2004-01-24  Jan Hubicka  <jh@suse.cz>
16638
16639         * cselib.c (remove_useless_values):  Do not access discarded values.
16640
16641 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16642
16643         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16644         arrays.
16645
16646 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16647
16648         * recog.c: Fix a typo in copyright.
16649
16650 2004-01-23  Andrew Pinski  <apinski@apple.com>
16651
16652         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16653         (call_value): Likewise.
16654
16655 2004-01-23  Richard Henderson  <rth@redhat.com>
16656
16657         PR opt/12941
16658         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16659         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16660         if SHIFT_COUNT_TRUNCATED is set.
16661
16662 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16663
16664         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16665         separate real and imaginary parts.
16666         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16667
16668 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16669
16670         PR target/13674
16671         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16672         loading into GPR.
16673
16674 2004-01-23  Jan Hubicka  <jh@suse.cz>
16675
16676         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16677         change.
16678
16679         * alloc-pool.c (align_four): Kill.
16680         (create_alloc_pool): Align size to eight.
16681         (free_alloc_pool, free_pool): Invalidate deallocated data.
16682
16683 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16684
16685         PR gcc/1532
16686         * cse.c (cse_change_cc_mode): New static function.
16687         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16688         (cse_condition_code_reg): New function.
16689         * rtl.h (cse_condition_code_reg): Declare.
16690         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16691         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16692         cc_modes_compatible.
16693         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16694         (TARGET_CC_MODES_COMPATIBLE): Define.
16695         (TARGET_INITIALIZER): Add new initializers.
16696         * targhooks.c (default_cc_modes_compatible): New function.
16697         * targhooks.c (default_cc_modes_compatible): Declare.
16698         * hooks.c (hook_bool_intp_intp_false): New function.
16699         * hooks.h (hook_bool_intp_intp_false): Declare.
16700         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16701         (TARGET_CC_MODES_COMPATIBLE): Define.
16702         (ix86_fixed_condition_code_regs): New static function.
16703         (ix86_cc_modes_compatible): Likewise.
16704         * doc/tm.texi (Condition Code): Document new hooks.
16705
16706 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16707
16708         * fixinc/inclhack.def (bad_lval): Renamed to ...
16709         (alpha_bad_lval): ... this.
16710         Removed file list.
16711         Restrict to alpha*-dec-osf*.
16712         * fixinc/fixincl.x: Regenerate.
16713         * fixinc/tests/base/dirent.h: Remove, moving test ...
16714         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16715
16716 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16717
16718         PR c/13814
16719         * c-decl.c (diagnose_mismatched_decls): Also discard a
16720         built-in if we encounter an old-style definition with the
16721         same name.
16722
16723 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16724
16725         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16726         set to default{32,64}.
16727
16728 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16729
16730         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16731         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16732
16733 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16734             Olivier Hainque  <hainque@act-europe.fr>
16735
16736         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16737         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16738
16739 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16740
16741         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16742         size for minipool references.
16743
16744 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16745
16746         * real.c (real_floor, real_ceil): Tweak to allow input and output
16747         arguments to overlap.
16748         (real_round): New function to implement round(3m) semantics.
16749         * real.h (real_round): Prototype here.
16750         * builtins.c (fold_builtin_round): New function to constant fold
16751         round, roundf and roundl.
16752         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16753
16754 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16755
16756         PR optimization/13819
16757         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16758         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16759         (sh_handle_sp_switch_attribute): Remove warning.
16760
16761 2004-01-23  Jan Hubicka  <jh@suse.cz>
16762
16763         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16764
16765 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16766
16767         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16768         may or may not return non-NIL.
16769         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16770         check CANNOT_CHANGE_MODE_CLASS
16771
16772 2004-01-23  Jan Hubicka  <jh@suse.cz>
16773
16774         * basic-block.h (PROP_POSTRELOAD): New macro.
16775         (CLEANUP_LOG_LINKS): New.
16776         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16777         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16778
16779         * cselib.c (value_pool): New.
16780         (new_cselib_val): Use pool.
16781         (cselib_init): Initialize value_pool
16782         (cselib_finish): Free pool.
16783
16784 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16785
16786         * config/sparc/sparc.c (scan_record_type): New function.
16787         (function_arg_slotno): Use it to determine which kinds of
16788         registers the record can be passed in.
16789
16790 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16791
16792         * config/pa/fptr.c: Fix old-style definition.
16793
16794 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16795
16796         PR optimization/13724
16797         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16798         represents the zero bits produced by a ZERO_EXTEND operation.
16799
16800 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16801
16802         PR optimization/13821
16803         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16804         correctly calculate the lowpart offset of the contracted subreg.
16805
16806 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16807
16808         * doc/invoke.texi (Optimize Options): Note that --param arguments
16809         are subject to change without notice.
16810
16811 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16812
16813         * config.gcc (mips-sgi-irix6*o32): Removed.
16814         * config/mips/iris6-o32-as.h: Likewise.
16815         * config/mips/iris6-o32-gas.h: Likewise.
16816         * config/mips/iris6-o32.h: Likewise.
16817
16818 2004-01-22  Jan Hubicka  <jh@suse.cz>
16819
16820         * cfgcleanup.c (first_pass): New static variable.
16821         (try_forward_edges):  Add work limiting check for threading.
16822         (try_crossjump_bb):  Add work limiting check for crossjumping.
16823         (try_optimize_cfg):  Maintain first pass variable.
16824
16825 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16826
16827         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16828         handles complex and vector modes.
16829
16830 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16831
16832         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16833         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16834         (STRICT): Likewise.
16835
16836 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16837
16838         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16839         (genrtl_for_stmt): Remove emit_nop calls.
16840
16841 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16842
16843         PR target/13713
16844         PR target/13324
16845         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16846         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16847         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16848
16849 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16850
16851         * config/arm/arm.c: Include "debug.h".
16852         (thumb_pushpop): Take two new arguments.  Add some commentary.
16853         Output frame information when pushing.
16854         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16855         thumb_pushpop.
16856         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16857         offset, and pass it to thumb_pushpop.  Output CFI information.
16858         (thumb_expand_prologue): Add some frame-related markers and notes.
16859
16860 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16861
16862         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16863         for TARGET_64BIT.
16864         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16865         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16866
16867 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16868             Paolo Bonzini  <bonzini@gnu.org>
16869
16870         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16871         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16872         * rtl.h (subreg_lsb_1): Prototype here.
16873         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16874         sign extensions.
16875
16876 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16877
16878         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16879         macro need not be defined if jump-tables should contain
16880         relative addresses only when -fPIC or -fPIC is in effect.
16881
16882 2004-01-22  Jan Hubicka  <jh@suse.cz>
16883
16884         * alias.c (reg_base_value): Turn into varray.
16885         (reg_base_value_size): Kill.
16886         (old_reg_base_value): New deletable varray.
16887         (alias_invariant_size): New variable.
16888         (REG_BASE_VALUE): Update to use varray.
16889         (find_base_value): Likewise.
16890         (record_set): Likewise.
16891         (record_base_value): Likewise.
16892         (memrefs_conflict_p): Likewise.
16893         (record_set): Likewise
16894         (record_base_value): Likewise.
16895         (memrefs_conflict_p): Use alias_invariant_size.
16896         (init_alias_analysis): Use varray; set alias_invariant_size;
16897         rescale other arrays to be sized by maxreg.
16898         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16899
16900 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16901
16902         * config/sparc/sparc.c (function_arg_slotno): Use
16903         FLOAT_TYPE_P to detect FP fields in structures.
16904         (function_arg_record_value_1): Likewise.
16905         (function_arg_record_value_2): Likewise.
16906
16907 2004-01-22  Jan Hubicka  <jh@suse.cz>
16908
16909         * function.c (allocate_struct_function): Do not initialize expr, emit
16910         and varasm.
16911         (prepare_function_start): Do it here.
16912         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16913
16914 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16915
16916         PR target/13559
16917         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16918         to 'word_mode' once the first slot has been filled.
16919
16920 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16921
16922         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16923         computation of the number of integer registers required.
16924
16925 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16926
16927         * config/i386/i386.md: Simplify certain comparisons of
16928         const_int.
16929
16930 2004-01-21  Andrew Pinski  <apinski@apple.com>
16931
16932         PR target/13785
16933         * config/rs6000/rs6000.md (call_value): Force operand
16934         1 not operand 0 into a register.
16935
16936 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16937
16938         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16939         unwind-dw2-fde.h: Update copyright.
16940
16941 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16942
16943         * pa-protos.h: Update copyright.
16944         * pa.h: Likewise.
16945         * pa.md: Likewise.
16946
16947 2004-01-21  Caroline Tice  <ctice@apple.com>
16948
16949         PR target/12308
16950         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16951         flags register.
16952         (fix_truncdfdi2): Likewise.
16953         (fix_truncsfdi2): Likewise.
16954         (*fix_truncdi_1): Likewise.
16955         (fix_truncxfsi2): Likewise.
16956         (fix_truncdfsi2): Likewise.
16957         (fix_truncsfsi2): Likewise.
16958         (*fix_truncsi_1): Likewise.
16959         (fix_truncxfhi2): Likewise.
16960         (fix_truncdfhi2): Likewise.
16961         (fix_truncsfhi2): Likewise.
16962         (*fix_trunchi_1): Likewise.
16963
16964 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16965
16966         * alias.c, basic-block.h, c-common.c, c-common.h,
16967         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16968         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16969         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16970         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16971         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16972         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16973         genautomata.c, genconditions.c, genemit.c, genflags.c,
16974         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16975         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16976         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16977         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16978         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16979         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16980         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16981         unwind.h, varray.c, varray.h: Update copyright.
16982
16983 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16984
16985         * config/h8300/coff.h: Update copyright.
16986         * config/h8300/elf.h: Likewise.
16987         * config/h8300/h8300-protos.h: Likewise.
16988         * config/h8300/h8300.c: Likewise.
16989         * config/h8300/h8300.h: Likewise.
16990         * config/h8300/h8300.md: Likewise.
16991
16992 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16993
16994         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16995         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16996         ultrix_unistd): New hacks.
16997         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16998         ULTRIX_CONST2_CHECK): Add checks.
16999         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
17000         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
17001         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
17002         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
17003         * fixinc/tests/base/locale.h: New file.
17004         * fixinc/fixincl.x: Rebuilt.
17005
17006 2004-01-21  Andreas Jaeger  <aj@suse.de>
17007             Michael Matz  <matz@suse.de>
17008
17009         * doc/extend.texi (Extended Asm): Clarify memory clobber.
17010
17011 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
17012
17013         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
17014         _Jv_RegisterClasses through a function pointer.
17015
17016 2004-01-21  Falk Hueffner  <falk@debian.org>
17017
17018         PR target/12898
17019         * config/alpha/alpha.c (alpha_emit_set_const_1): If
17020         no_new_pseudos, use gen_rtx_SET directly for SImode constants
17021         which need multiple instructions to emit.
17022
17023 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
17024
17025         * config/m32r/m32r.h (CPP_SPEC): Define.
17026
17027 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
17028
17029         * c-decl.c (merge_decls): Kill different_binding_level and
17030         different_tu arguments; simplify throughout.
17031         (duplicate_decls): Likewise.
17032         (pushdecl, merge_translation_unit_decls): Update calls to
17033         duplicate_decls.
17034
17035 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17036
17037         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
17038         $(SYSTEM_H).
17039         (print-rtl1.o): Depend on $(SYSTEM_H).
17040
17041 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17042
17043         PR bootstrap/12730
17044         * configure.ac: Delete definition and subsitution of docdir.
17045         Add info, man, srcman and srcinfo to target hooks. Create doc/
17046         directory.
17047         * configure: Regenerate.
17048         * Makefile.in: Don't substitute docdir and delete all references
17049         throughout.
17050         (MAKEINFOFLAGS): Define.
17051         (stmp-docobjdir): Delete.
17052         (INFOFILES, MANFILES): Define.
17053         (info): Call lang.info, srcinfo and lang.srcinfo.
17054         (generated-manpages): Call lang.man, srcman and lang.srcman.
17055         (srcinfo, srcman): New rules to copy back files to source directory.
17056         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
17057         (install-man): Revamp rule.
17058         (clean): Update dvi directory.
17059         (distclean): Delete TAGS from front end directorys.
17060         (maintainer-clean): Delete all document files in source directory.
17061
17062         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
17063         (objc.srcman, objc.srcinfo): Likewise.
17064
17065 2004-01-20  Bruce Korb  <bkorb@gnu.org>
17066
17067         * fixinc/inclhack.def(math_exception): bypass only for glibc.
17068         (matherr_decl): rename & relocate as exception_structure.
17069         This fix must precede the math_exception fix.
17070
17071 2004-01-20  Roger Sayle  <roger@eyesopen.com>
17072
17073         * fold-const.c (fold_convert): Rename to fold_convert_const.
17074         (fold_convert_const): Change arguments to take a tree_code,
17075         a type and the operand/expression to be converted.  Return
17076         NULL_TREE if no simplification is possible.  Add support for
17077         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
17078         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
17079         Adjust call to fold_convert to match new fold_convert_const.
17080         Avoid modifying the tree passed to fold in-place.
17081
17082 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
17083
17084         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
17085         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
17086         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
17087
17088 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17089
17090         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
17091         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
17092         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
17093         (emit_move_sequence): Check scratch_reg first in various if statements.
17094         Extend source simplification to handle all 64-bit CONST_INTs.
17095         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
17096         frame size.
17097         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
17098         frame offset calculations.
17099         * pa.h (NEW_HP_ASSEMBLER): Add comment.
17100         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
17101         LEGITIMATE_64BIT_CONST_INT_P): Define.
17102         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
17103         any CONST_INT as legitimate during and after reload.
17104         (VAL_32_BITS_P, INT_32_BITS): Define.
17105         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
17106
17107 2004-01-20  Jan Hubicka  <jh@suse.cz>
17108
17109         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
17110         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
17111         containing hard regs are shared.
17112         (gen_hard_reg_clobber): New function.
17113         (hard_reg_clobbers): New array.
17114         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
17115         (copy_rtx): Do not copy clobbers containing hard regs.
17116         * rtl.h (gen_hard_reg_clobber): Declare.
17117
17118 2004-01-20  Jan Hubicka  <jh@suse.cz>
17119
17120         * varray.c:  Include hashtab.h
17121         (varray_descriptor): New structure.
17122         (hash_descriptor, eq_descriptor, varray_descriptor,
17123         print_statistics): New static functions
17124         (varray_init, varray_grow): Update statistics
17125         (dump_varray_statistics): New function.
17126         * varray.h (dump_varray_statistics): Declare.
17127         * toplev.c (finalize): Call it.
17128         * Makefile.in (varray.o): Add dependency.
17129
17130 2004-01-20  Jan Hubicka  <jh@suse.cz>
17131
17132         * cselib.c: Include alloc-pool.h
17133         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17134         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17135         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17136         unchain_one_elt_loc_list_pool, unchain_one_value,
17137         new_cselib_val): Simplify using allocpool.
17138         (cselib_init): Initialize allocpools.
17139         (cselib_finish): Finish allocpools.
17140         * Makefile.in (cselib.o): Depend on alloc-pool.h
17141
17142 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
17143
17144         * config/mips/mips.c (mips_load_call_address): Make the call insn
17145         use $gp if it could be calling a lazy binding stub.
17146
17147 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17148
17149         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17150         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17151         (TARGET_STRUCT_VALUE_RTX): Likewise.
17152         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17153         (PROMOTE_FUNCTION_RETURN): Remove.
17154         (STRUCT_VALUE): Remove.
17155
17156 2004-01-20  Denis Chertykov  <denisc@overta.ru>
17157
17158         PR bootstrap/13735
17159         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17160         register as pointer after reload.
17161
17162 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17163
17164         PR optimization/12440
17165         * loop.c: Include ggc.h.
17166         (loop_optimize): Run garbage collector between optimization of loops.
17167         * Makefile.in (loop.o): Add GGC_H dependency.
17168
17169 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
17170
17171         * gcc/config/rs6000/rs6000.c (function_arg) Handle
17172         vector register special in function without prototype.
17173         (function_arg_advance): Vector parameters get always
17174         GPRs allocated for the linux64 target.
17175
17176 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17177
17178         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17179         not TARGET_M32RX_MASK.
17180
17181 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
17182
17183         PR target/13557
17184         * config/sparc/sparc.c (function_arg): Reorder the cases.
17185
17186 2004-01-19  Per Bothner  <per@bothner.com>
17187
17188         Move cpp_reader's line_maps field to a shared global.
17189         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
17190         and change the type to a pointer rather than a struct.
17191         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
17192         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17193         Likewise.
17194         * cppfiles.c (validate_pch):  Likewise.
17195         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17196         Likewise.
17197         * cpperror.c (print_location):  Likewise.
17198         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
17199         * cppinit.c (cpp_create_reader):  Handle new parameter.
17200         (cpp_destroy):  Don't free line_maps - that's no longer our job.
17201         * input.h (line_table):  New variable.
17202         * toplev.c (line_table):  Declare variable.
17203         (general_init):  Initialize line_table.
17204         * c-opts.c (c_common_init_options):  Pass line_table to
17205         cpp_create_reader.
17206         * fix-header.c (read_scan_file):  New local variable line_table.
17207         Initialize, and pass it to cpp_create_reader.
17208         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
17209         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
17210
17211 2004-01-19  Per Bothner  <per@bothner.com>
17212
17213         Implement a cache for linemap_lookup.
17214         * line-map.h (struct_line_maps):  Add cache field.
17215         * line-map.c (linemap_init):  Zero cache field.
17216         (linemap_add):  Set cache field to offset of newly allocated map.
17217         (linemap_lookup):  Use and set cache field.
17218
17219 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17220
17221         PR optimization/13567
17222         * cse.c (cse_basic_block): Call cse_insn with a non-null
17223         libcall_insn for the last SET insn of a no-confilict block.
17224
17225 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
17226
17227         * Makefile.in (target_noncanonical, program_transform_name): Use
17228         immediate define instead of deferred.
17229         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17230         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17231         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17232         deferred backquote.
17233
17234 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
17235
17236         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17237         true unconditionally.
17238         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17239         Remove.
17240         (build_unary_op, build_modify_expr): Don't handle extended
17241         lvalues.
17242         (build_component_ref, build_conditional_expr): Call non_lvalue
17243         instead of pedantic_non_lvalue.
17244         (build_c_cast): Don't condition use of non_lvalue on pedantic.
17245         * fold-const.c (fold): Don't check pedantic directly for
17246         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
17247         passed to pedantic_non_lvalue.
17248         * doc/extend.texi: Remove documentation of extended lvalues.
17249
17250 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17251
17252         PR optimization/5263
17253         * simplify-rtx.c (associative_constant_p): Delete.
17254         (simplify_associative_operation): Rewrite to linearize terms, and
17255         attempt to simplify new term against both left and right subterms.
17256         (simplify_binary_operation): Call swap_commutative_operands_p on
17257         op0 and op1, not trueop0 and trueop1.  Move the initialization of
17258         trueop0 and trueop1 down to where first needed.
17259         (simplify_relational_operation): Likewise.
17260         * rtlanal.c (commutative_operand_precedence): Also order constant
17261         operands using avoid_constant_pool_reference.
17262
17263 2004-01-19  Richard Henderson  <rth@redhat.com>
17264
17265         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17266         don't check memory mode.
17267         (unaligned_memory_operand): Likewise.
17268         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17269         abort for op0 not MEM.
17270
17271         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17272         is not a reg, copy to a scratch first.
17273         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17274         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17275         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17276         (reload_inqi, reload_inhi): Fix mode of op0.
17277         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17278         reload_outhi_help): Likewise.  Use define_insn_and_split.
17279
17280         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17281         as well as $29 dead.
17282
17283 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
17284
17285         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
17286         "tls_object" for thread-local objects.
17287         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17288         "#tls" for thread-local sections.
17289         * configure.ac (thread-local checks): Specify --fatal-warnings in
17290         every binutils-specific checks.  For sparc*-*-*, test whether the
17291         OS is Solaris and the tools are native and act accordingly.
17292         * configure: Rebuild.
17293
17294 2004-01-19  Jeff Law  <law@redhat.com>
17295
17296         * contrib.texi: Update Paolo Carlini's entry.  New entries for
17297         Jerry Quinn and Petur Runolfsson.
17298
17299 2004-01-19  Roger Sayle  <roger@eyesopen.com>
17300
17301         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17302         size, don't use the larger zero-extending loads.
17303
17304 2004-01-19  Richard Henderson  <rth@redhat.com>
17305
17306         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17307         * alpha.md (UNSPEC_NT_LDA): Remove.
17308         (UNSPEC_CVTLQ, cvtlq): New.
17309         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17310         (extendsidi2_fix): Remove.
17311         (extendsidi2 splitter): Use cvtlq.
17312         (extendsidi2 fp peepholes): Remove.
17313         (cvtql): Use SFmode instead of SImode.
17314         (fix_trunc?fsi): Update to match.
17315         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17316         (movsi): Rename from movsi_nofix, remove f alternatives.
17317         (movsi_nt_vms): Similarly.
17318         (movsi_fix, movsi_nt_vms_fix): Remove.
17319         (nt_lda): Remove.
17320         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17321
17322 2004-01-19  Jan Hubicka  <jh@suse.cz>
17323
17324         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17325         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17326         list.
17327         (cgraph_remove_unreachable_nodes): New function
17328         (cgraph_decide_inlining_of_small_function): Fix pasto.
17329         (cgraph_decide_inlining_incrementally): Fix pasto.
17330         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17331
17332 2004-01-19  Steven Bosscher  <stevenb@suse.de>
17333
17334         * gengtype.c (header_file): Make it static.
17335         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17336         * gengtype.h (header_file): No longer extern.
17337
17338 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17339
17340         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17341         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17342         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17343
17344 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17345
17346         * stmt.c (HAVE_casesi): Define it not already defined.
17347         (HAVE_tablejump): Likewise.
17348         (expand_end_case_type): Resort to the binary tree method if
17349         neither casesi or tablejump is available.
17350
17351 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
17352
17353         * final.c (final_scan_insn): Make non-static again.
17354         * output.h (final_scan_insn): Re-add prototype.
17355         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17356         to final_scan_insn call.
17357         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17358         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17359         * config/pa/pa.c (output_lbranch, output_call): Likewise.
17360         * config/sh/sh.c (print_slot): Likewise.
17361         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17362         (output_sibcall, sparc_flat_function_epilogue): Likewise.
17363
17364 2004-01-18  Jan Hubicka  <jh@suse.cz>
17365
17366         * basic-block.h (try_redirect_by_replacing_jump): Declare.
17367         * cfgcleanup.c (try_optimize_cfg): Use it.
17368         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17369         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17370         Kill hack.
17371         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17372
17373         Revert:
17374         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17375
17376                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17377                 even after reload, just don't remove the actual jump tables.
17378
17379 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17380
17381         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17382
17383 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17384
17385         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17386         the size of a pointer in bytes.
17387
17388 2004-01-18  Roger Sayle  <roger@eyesopen.com>
17389
17390         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17391         live "next" variable, which could lead to an infinite loop.
17392
17393 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
17394
17395         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17396         block.
17397
17398         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17399         Check for NULL in the chain and remove repeated code.
17400
17401 2004-01-18  Jan Hubicka  <jh@suse.cz>
17402
17403         * coverage.c (checksum_string): Rename to ...
17404         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17405         names containing random number and zero the number out in order to get
17406         match.
17407
17408 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17409
17410         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17411
17412 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17413
17414         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17415         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17416         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17417         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17418         doc/trouble.texi: Remove trailing whitespace.
17419
17420 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17421
17422         PR target/7618
17423         * config/mips/mips.c: Include cfglayout.h.
17424         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17425         (mips_unspec_offset_high): Add temporary register argument.
17426         (mips_load_call_address): New function, split out from...
17427         (mips_expand_call): ...here.
17428         (mips_output_cplocal): New function.
17429         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17430         (mips_emit_loadgp): New function, split out from...
17431         (mips_expand_prologue): ...here.
17432         (mips_output_mi_thunk): New function.
17433
17434 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17435
17436         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17437         mcpu32): Remove redundant checks for implied target predefines.
17438
17439 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17440
17441         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17442         Return type is unsigned int not int.
17443         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17444         Likewise.
17445
17446 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17447
17448         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17449         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17450         "GNU/Linux" and "Microsoft Windows" terminology.
17451
17452 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17453
17454         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17455         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17456         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17457         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17458         @smallexample instead of @example.
17459
17460 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17461
17462         * objc/objc-act.c (build_objc_method_call): Use target
17463         hooks instead of macros to determine if ..._stret
17464         dispatchers should be used (NeXT runtime only).
17465
17466 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17467
17468         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17469         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17470
17471 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17472
17473         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17474         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17475         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17476         macros.
17477         * reload1.c (emit_reload_insns): Use them.
17478         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17479         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17480         for NULL PATTERN.
17481
17482 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17483
17484         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17485         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17486         a line note after the prologue.  Make static.
17487         (line_note_exists): Remove.
17488         (final): Don't initialize line_note_exists.  Update call to
17489         final_scan_insn.
17490         * output.h (final_scan_insn): Remove prologue.
17491         * function.c (set_insn_locators): Update comment.
17492         (thread_prologue_and_epilogue_insns): Add a comment.
17493
17494 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17495
17496         PR target/10781
17497         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17498         Prototype.
17499         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17500         New function.
17501         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17502         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17503         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17504
17505 2004-01-17  Jan Hubicka  <jh@suse.cz>
17506
17507         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17508         commit.
17509
17510         * toplev.c (HAVE_conditional_execution): Provide default.
17511         (rest_of_handle_reorder_blocks): For conditional_execution target
17512         update liveness once after all transformations
17513         (rest_of_compilation): Do crossjumping before ce3.
17514
17515 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17516
17517         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17518         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17519         for PCH.
17520         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17521         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17522         (get_TOC_alias_set): Mark 'set' for PCH.
17523
17524 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17525
17526         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17527         even after reload, just don't remove the actual jump tables.
17528
17529 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17530
17531         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17532         Remove checks for is_ada() and TREE_UNSIGNED.
17533         (subrange_type_die): Emit a byte_size attribute if the subrange
17534         type size is different from the base type size.
17535         (modified_type_die): Replace call to is_ada_subrange_type() by
17536         call to is_subrange_type().
17537
17538 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17539
17540         * config/sh/sh.c: Include ggc.h.
17541
17542 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17543
17544         * Makefile.in (MD5_H): New.
17545         (fold-const.o): Depend on md5.h.
17546         (dwarf2out.o): Likewise.
17547         (cppfiles.o): Likewise.
17548         * cppfiles.c: Include md5.h.
17549         (should_stack_file): Check against list read from PCH file.
17550         (struct pchf_data): New.
17551         (pchf): New variable.
17552         (struct pchf_adder_info): New.
17553         (pchf_adder): New.
17554         (pchf_save_compare): New.
17555         (_cpp_save_file_entries): New.
17556         (_cpp_read_file_entries): New.
17557         (struct pchf_compare_data): New.
17558         (pchf_compare): New.
17559         (check_file_against_entries): New.
17560         * cpphash.h (_cpp_save_file_entries): Prototype.
17561         (_cpp_read_file_entries): Prototype.
17562         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17563         (cpp_read_state): Read the list of headers.
17564
17565 2004-01-17  Jan Hubicka  <jh@suse.cz>
17566
17567         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17568         builtin_expect specially.
17569         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17570         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17571         * invoke.texi (max-inline-insns-single): Set to 100.
17572         (large-function-insns): Set to 3000.
17573
17574 2004-01-16  Eric Christopher  <echristo@redhat.com>
17575             Chandrakala Chavva <cchavva@redhat.com>
17576
17577         * cppcharset.c (one_iso88591_to_utf8): New function.
17578         (convert_iso88591_utf8): Ditto. Use.
17579         (conversion_tab): Use.
17580         (_cpp_input_to_utf8): New function.
17581         (_cpp_init_iconv_buffer): Ditto.
17582         (_cpp_close_iconv_buffer): Ditto.
17583         * cpphash.h: Prototype new functions.
17584         (cpp_buffer): Add input_cset_desc.
17585         * cppinit.c: Add input_charset default.
17586         * cpplib.c (cpp_push_buffer): Support init and
17587         close of iconv.
17588         * cpplib.h (cpp_options): Add input_charset.
17589
17590 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17591
17592         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17593         * config/alpha/unicosmk.h: Remove a commented-out definition
17594         of ASM_OUTPUT_SECTION_NAME.
17595         * config/stormy16/stormy16.h: Likewise.
17596
17597 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17598
17599         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17600         (alpha___extern_prefix_sys_stat): ... this.
17601         Apply to <sys/mount.h>, too.
17602         Tweak to match more variations.
17603         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17604
17605         * fixinc/inclhack.def (alpha___extern_prefix,
17606         alpha___extern_prefix_standards): New hacks to obey
17607         __PRAGMA_EXTERN_PREFIX.
17608         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17609         test.
17610         * fixinc/tests/base/standards.h: Likewise.
17611
17612         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17613         variations.
17614         New testcase.
17615         * fixinc/tests/base/pthread.h: Handle it.
17616
17617         * fixincl/inclhack.def (bad_lval): Sort file list.
17618         Add many missing files up to Tru64 UNIX V5.1B.
17619         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17620         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17621         order.
17622
17623         * fixinc/fixincl.x: Regenerate.
17624
17625 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17626
17627         * version.c (version_string): Change to 3.5.0.
17628         * doc/include/gcc-common.texi (version-GCC): Likewise.
17629
17630 2004-01-16  Jan Hubicka  <jh@suse.cz>
17631
17632         * i386.md (load_tp_di): Fix pasto.
17633
17634         PR opt/13608
17635         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17636
17637         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17638         pp_c_character_constant, pp_c_floating_constant,
17639         pp_c_additive_expression, pp_c_shift_expression,
17640         pp_c_equality_expression, pp_c_and_expression,
17641         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17642         pp_c_logical_and_expression): Remove inline modifier.
17643         * dwarf2out.c (get_AT): Likewise.
17644         * et-forest.c (et_splay): Likewise.
17645         * ra.h (ra_alloc, ra_calloc): Likewise
17646
17647 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17648
17649         * config/frv/frv-protos.h: Fix comment formatting.
17650         * config/frv/frv.c: Likewise.
17651         * config/frv/frv.h: Likewise.
17652         * config/frv/frv.md: Likewise.
17653         * config/frv/frvbegin.c: Likewise.
17654         * config/frv/frvend.c: Likewise.
17655
17656 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17657
17658         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17659         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17660         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17661         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17662
17663 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17664
17665         PR 11864
17666         * postreload.c (reload_cse_simplify_operands): Don't remove
17667         implicit extension from LOAD_EXTEND_OP.
17668
17669 2004-01-16  Jan Hubicka  <jh@suse.cz>
17670
17671         PR opt/11350
17672         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17673         after reload.
17674         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17675         rtl_try_redirect_by_replacing_branch): Likewise.
17676
17677 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17678
17679         PR pch/13689
17680         * alias.c (struct alias_set_entry): Mark for GC.
17681         (alias_sets): Make static, mark for GC.
17682         (record_alias_subset): Use GC to allocate alias structures.
17683         * varray.c (element): Make generic varrays GCed.
17684
17685         PR pch/13361
17686         * c-typeck.c (constructor_asmspec): Delete.
17687         (struct initializer_stack): Delete field 'asmspec'.
17688         (start_init): Delete saving of asmspec.
17689         (finish_init): Don't update constructor_asmspec.
17690         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17691         * stmt.c (expand_asm): Duplicate strings from tree.
17692         (expand_asm_operands): Likewise.
17693         * tree.c (tree_size): Update computation of size of STRING_CST.
17694         (make_node): Don't make STRING_CST nodes.
17695         (build_string): Allocate string with tree node.
17696         * tree.def (STRING_CST): Update comment.
17697         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17698         (tree_string): Place contents of string in tree node.
17699         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17700         from tree.
17701
17702         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17703         altivec operands.
17704
17705 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17706
17707         * c-common.h: Fix comment formatting.
17708         * c-cppbuiltin.c: Likewise.
17709         * c-pragma.c: Likewise.
17710         * calls.c: Likewise.
17711         * collect2.c: Likewise.
17712         * cppcharset.c: Likewise.
17713         * cpptrad.c: Likewise.
17714         * dbxout.c: Likewise.
17715         * defaults.h: Likewise.
17716         * dwarf2out.c: Likewise.
17717         * fold-const.c: Likewise.
17718         * genautomata.c: Likewise.
17719         * genconditions.c: Likewise.
17720         * genflags.c: Likewise.
17721         * gengtype.c: Likewise.
17722         * integrate.c: Likewise.
17723         * loop.c: Likewise.
17724         * predict.c: Likewise.
17725         * sdbout.c: Likewise.
17726
17727 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17728
17729         * config/ia64/ia64.md (*movti_internal): C output template
17730         extracted to ia64.c.
17731         (*movti_internal_reg): Delete.
17732         (reload_inti, reload_outti): Use the correct mode on operand 2
17733         in the first place, don't fix it up in the output template.
17734         (movtf, reload_ointf, reload_outtf): New expanders.
17735         (*movtf_internal): New define_insn_and_split.
17736         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17737         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17738         (ia64_split_tmode_move): New function, body mostly pulled
17739         from ia64.md:*movti_internal.
17740         (ia64_function_arg_words): New function, extracted common
17741         logic from ia64_function_arg et seq.
17742         (ia64_function_arg_offset): Likewise.  Handle correctly the
17743         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17744         (ia64_function_arg, ia64_function_arg_partial_nregs)
17745         (ia64_function_arg_advance): Use ia64_function_arg_words and
17746         ia64_function_arg_offset.
17747         (ia64_function_value): TCmode does not go in float regs.
17748         (ia64_secondary_reload_class): Also handle TFmode.
17749         * config/ia64/ia64-protos.h: Remove prototype for
17750         ia64_split_timode; add prototype for ia64_split_tmode_move.
17751
17752 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17753
17754         * Makefile.in (MAINT): Make it an immediate assignment.
17755
17756 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17757
17758         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17759
17760 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17761
17762         * config/h8300/coff.h: Replace Hitachi with Renesas.
17763         * config/h8300/elf.h: Likewise.
17764         * config/h8300/h8300-protos.h: Likewise.
17765         * config/h8300/h8300.c: Likewise.
17766         * config/h8300/h8300.h: Likewise.
17767         * config/h8300/h8300.md: Likewise.
17768         * config/h8300/lib1funcs.asm: Likewise.
17769
17770 2004-01-15  Andrew Pinski  <apinski@apple.com>
17771
17772         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17773         around it.
17774
17775 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17776
17777         * config/h8300/h8300.c (h8300_return_in_memory): New.
17778         (TARGET_STRUCT_VALUE_RTX): Likewise.
17779         (TARGET_RETURN_IN_MEMORY): Likewise.
17780         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17781         (RETURN_IN_MEMORY): Likewise.
17782
17783 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17784
17785         PR optimization/13375
17786         * gcse.c (handle_avail_expr): Just return if the source is not a
17787         single set.
17788
17789 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17790             Daniel Jacobowitz  <drow@mvista.com>
17791
17792         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17793         (EQUIV): Define.
17794         (ARM_FUNC_ALIAS): New macro.
17795         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17796         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17797
17798 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17799
17800         PR optimization/12372
17801         * calls.c (expand_call): Add call_fusage data for stack arguments in
17802         constant calls.
17803
17804 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17805
17806         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17807         (rs6000_elf_declare_function_name): Formatting.
17808         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17809
17810 2004-01-15  Jan Hubicka  <jh@suse.cz>
17811
17812         PR bootstrap/13692
17813         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17814         previous patch.
17815
17816 2004-01-15  Richard Henderson  <rth@redhat.com>
17817
17818         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17819         integer regs of the same call-savedness.
17820
17821 2004-01-15  Andreas Schwab  <schwab@suse.de>
17822
17823         PR bootstrap/13562
17824         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17825         status for NOTB/NOTW/NEGW methods.
17826
17827 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17828
17829         * doc/invoke.texi: Update dump file names.  Fix a typo.
17830
17831 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17832
17833         * builtins.c (expand_builtin_va_end): Don't use
17834         EXPAND_BUILTIN_VA_END.
17835         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17836         * config/d30v/d30v.h: Remove a commented-out definition of
17837         EXPAND_BUILTIN_VA_END.
17838         * config/stormy16/stormy16.h: Likewise.
17839
17840 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17841
17842         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17843         * targhooks.c (default_struct_value_rtx): Don't use
17844         STRUCT_VALUE_INCOMING_REGNUM.
17845
17846 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17847
17848         PR bootstrap/12744
17849         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17850         GENINSRC and not parsedir.  Define srcextra as a langhook.
17851         * configure: Regenerate.
17852         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17853         parsedir and delete all references throughout.  Conditionally define
17854         rule for srcextra dependent on GENINSRC.
17855         (stmp-docobjdir): Delete.
17856         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17857         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17858         and gengtype-yacc.h back to source directory.
17859         (maintainer-clean): Delete all parse files in source directory.
17860         (distclean): Delete generated files.
17861
17862         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17863         (objc-parse.c, objc-parse.y): Don't use parsedir.
17864         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17865         directory if requested.
17866         (po-generated): Don't use parsedir.
17867         (objc.maintainer-clean): Delete above files from source directory.
17868
17869 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17870
17871         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17872
17873 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17874
17875         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17876         TARGET_RETURN_IN_MEMORY.
17877
17878 2004-01-15  Jan Hubicka  <jh@suse.cz>
17879
17880         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17881         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17882         functions accepting SSE arguments
17883         (function_arg): Warn only when asked to warn.
17884         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17885
17886 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17887
17888         * c-parse.in (stmts_and_decls): Make label at end of compound
17889         statement a hard error.
17890
17891 2004-01-14  Jan Hubicka  <jh@suse.cz>
17892
17893         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17894         * cgraph.h (cgraph_local_info): Sort fields by size; add
17895         redefined_extern_inline
17896         (cgraph_global_info): Sort fields by size.
17897         (cgraph_node): Likewise.
17898         * cgraphunit.c (cgraph_finalize_function): Se
17899         local.redefined_extern_inline on redefinition.
17900         (cgraph_analyze_function): Use it; fix formating.
17901
17902 2004-01-14  Jan Hubicka  <jh@suse.cz>
17903
17904         PR c++/10776
17905         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17906         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17907         bitmaps
17908         (cache_size): New variable
17909         (add_dependence): Update use; canonize early memory locations
17910         (sched_analyze_1): Likewise.
17911         (sched_analyze_2): Likewise.
17912         (init_dependency_caches): Initialize bitmaps.
17913         (free_dependency_caches): Free bitmaps
17914
17915 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17916
17917         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17918         targetm.calls.strict_argument_naming().
17919         * target.h: Likewise.
17920
17921 2004-01-14  Richard Henderson  <rth@redhat.com>
17922
17923         PR debug/13231
17924         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17925         instructions.
17926
17927 2004-01-14  Richard Henderson  <rth@redhat.com>
17928
17929         PR c++/12491
17930         * except.c (struct eh_region): Add u.fixup.resolved.
17931         (resolve_one_fixup_region): Split out from ...
17932         (resolve_fixup_regions): ... here.
17933
17934 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17935
17936         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17937
17938 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17939
17940         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17941         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17942         (STRUCT_VALUE): Remove.
17943
17944 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17945
17946         * system.h: Poison PROMOTED_MODE
17947         * integrate.c (expand_inline_function): Don't mention the
17948         PROMOTED_MODE.
17949         * loop.c (update_giv_derive): Same.
17950         * tree.h (DECL_RTL): Same.
17951
17952 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17953
17954         PR target/9365
17955         * sh.c (gen_block_redirect): Add special handling of RETURN.
17956         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17957         far branch target (i.e. it's a return).
17958
17959 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17960
17961         * regrename.c (find_oldest_value_reg): Fix a warning.
17962
17963 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17964
17965         PR bootstrap/12527
17966         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17967         Move linux-gas.h and linux-elf.h before aout.h.
17968         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17969         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17970
17971 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17972
17973         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17974         (CONST_INT, VOIDmode, ...).
17975
17976 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17977
17978         * regrename.c (find_oldest_value_reg): If the replacement uses
17979         multiple hard registers, check that all of them are in CLASS.
17980
17981 2004-01-14  Jan Hubicka  <jh@suse.cz>
17982
17983         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17984         impossible.
17985
17986 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17987
17988         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17989
17990 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17991
17992         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17993         Calculate always vrsave_mask if TARGET_ALTIVEC.
17994         (rs6000_emit_prologue): Emit code for vrsave
17995         only if TARGET_ALTIVEC_VRSAVE.
17996         (rs6000_emit_epilogue): Likewise.
17997
17998 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17999
18000         * config/sparc/sparc.md (tie_add32): Fix pasto.
18001         (tie_add64): Likewise.
18002
18003 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18004
18005         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
18006
18007 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18008
18009         * config/iq2000/iq2000-protos.h: Fix comment formatting.
18010         * config/iq2000/iq2000.c: Likewise.
18011         * config/iq2000/iq2000.md: Likewise.
18012
18013 2004-01-14  J. Brobecker  <brobecker@gnat.com>
18014
18015         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
18016         (subrange_type_die): Add handle for nameless subrange types.
18017
18018 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18019
18020         * config/h8300/h8300-protos.h: Replace do_movsi with
18021         h8300_expand_movsi.
18022         * config/h8300/h8300.c (do_movsi): Change to
18023         h8300_expand_movsi.
18024         * config/h8300/h8300.md (movsi): Replace do_movsi with
18025         h8300_expand_movsi.
18026         (movsf): Likewise.
18027
18028 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18029
18030         * config/h8300/h8300.c (dosize): Change to
18031         h8300_emit_stack_adjustment.  Update callers.
18032
18033 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18034
18035         * config/h8300/h8300.md (movstrictqi): Add an alternative with
18036         the source being post_inc.  Tighten the predicate for the
18037         destination to register_operand.
18038         (movstricthi): Likewise.
18039
18040 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18041
18042         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
18043         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
18044         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
18045
18046 2004-01-14  Jan Hubicka  <jh@suse.cz>
18047
18048         Partial fix PR c++/12850
18049         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
18050         at zero nest level.
18051
18052 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
18053
18054         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
18055         pseudo-register.
18056
18057 2004-01-13  Devang Patel <dpatel@apple.com
18058
18059         PR debug/7078
18060         * dbxout.c (dbxout_symbol_name): Emit mangled names for
18061         NAMESPACE_DECL memebers.
18062
18063 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
18064
18065         PR c++/12709
18066         * c-common.c (finish_fname_decls): Use the chain only if the
18067         tree is an expr_stmt.
18068
18069 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
18070
18071         * rtl.def: Add comment about new option in automata_option.
18072
18073         * genautomata.c (PROGRESS_OPTION): New macro.
18074         (progress_flag): New global variable.
18075         (gen_automata_option): Process `progress'.
18076         (transform_insn_regexps, check_unit_distributions_to_automata,
18077         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
18078         expand_automata, write_automata): Print about the progress only if
18079         progress_flag.  Remove fflush.
18080         (initiate_automaton_gen): Process command line flag `-progress'.
18081
18082         * doc/md.texi: Describe the new option.
18083
18084 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18085
18086         * cfg.c (dump_bb): Dump entry edges.
18087
18088 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
18089
18090         * arm.c (thumb_legitimate_address_p): Only allow constant pool
18091         references from SImode.
18092         * arm.md (thumb_movhi_insn): Don't allow minipool references.
18093
18094 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
18095
18096         * system.h (TEXT_SECTION): Poison.
18097         * varasm.c (text_section): Don't use TEXT_SECTION.
18098         * config/sh/sh.c (sh_file_start): Fix a comment typo.
18099         * doc/tm.texi (TEXT_SECTION): Remove.
18100
18101 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
18102
18103         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
18104
18105 2004-01-12  James E Wilson  <wilson@specifixinc.com>
18106
18107         * unwind-libunwind.c: Delete.
18108
18109 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18110
18111         PR 13656
18112         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
18113         oldtype is set, set *newtypep or *oldtypep too.  Do not set
18114         them at the very end.
18115         (validate_proto_after_old_defn): Restructure for comprehensibility;
18116         make error messages clearer.
18117
18118 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
18119
18120         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18121         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18122         * varray.c: No need to prototype error.
18123         (varray_check_failed): Wrap long string onto two lines.
18124         (varray_underflow): New function.
18125
18126 2004-01-13  Steven Bosscher  <stevenb@suse.de>
18127
18128         PR c++/13376
18129         * function.h (struct function): Kill `name' field.
18130         (current_function_name): Make it an extern function.
18131         * function.c (current_function_name): New function.
18132         * graph.c: Update all uses of current_function_name.
18133         * gcse.c: Likewise.
18134         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18135         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18136         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18137         instead of a strcmp with "main".
18138
18139 2004-01-13  Jan Hubicka  <jh@suse.cz>
18140
18141         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
18142
18143         * cgraphunit.c (cgraph_optimize_function):  Always do
18144         optimize_inline_calls when there is always_inline callee.
18145         (cgraph_decide_inlining): Fix formating.
18146         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18147         functions.
18148         (expand_call_inline): Likewise.
18149         * toplev.h (sorry): Fix prototype.
18150
18151 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18152
18153         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18154         conditional jumps that drop through to unconditional jumps or the
18155         end of the sequence.
18156
18157 2004-01-13  Jan Hubicka  <jh@suse.cz>
18158
18159         * alias.c (new_alias_set): Construct the alias_set varray.
18160         (init_alias_once): Don't do it here.
18161
18162 2004-01-12  Marc Espie <espie@openbsd.org>
18163
18164         * system.h: handle YYBYACC like YYBISON.
18165
18166 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
18167
18168         PR target/10847
18169         * config.gcc: No longer includes conflicting header sparc/sol2.h when
18170         building on sparc64-*-openbsd*.
18171
18172 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
18173
18174         PR debug/13539
18175         * dbxout.c (dbxout_type): Protected inheritance is not
18176         private but protected.
18177
18178 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18179
18180         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18181
18182 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
18183
18184         PR optimization/12508.
18185         * combine.c (try_combine): Remove a dead set in a parallel
18186         even if its destination is a subreg.
18187
18188         Revert:
18189         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
18190         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18191         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18192
18193 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
18194
18195         * real.c: Update copyright date.
18196         * emit-rtl.c: Likewise.
18197         * rtl.h: Likewise.
18198         * dwarf2out.c: Likewise.
18199         * config/rs6000/darwin-ldouble.c: Likewise.
18200         * config/rs6000/rs6000.md: Likewise.
18201
18202 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18203
18204         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18205         TFmode to SImode libfuncs.
18206
18207 2004-01-12  Roger Sayle  <roger@eyesopen.com>
18208
18209         PR middle-end/11397
18210         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18211
18212 2004-01-12  Jan Hubicka  <jh@suse.cz>
18213
18214         PR opt/12826
18215         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18216         stored.
18217
18218         PR opt/12863
18219         * cfgcleanup.c (label_is_jump_target_p): Move to...
18220         * rtlanal.c (label_is_jump_target_p): ... here.
18221         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
18222         edges unified with branch edges.
18223
18224 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
18225
18226         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18227         high word of an integral CONST_DOUBLE.
18228
18229 2004-01-12  Paul Brook  <paul@codesourcery.com>
18230
18231         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18232
18233 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
18234
18235         PR target/13585
18236         * sh-protos.h (check_use_sfunc_addr): Declare.
18237         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18238         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18239
18240 2004-01-12  Jan Hubicka  <jh@suse.cz>
18241
18242         * alias.c:  Invlude varray.h
18243         (alias_sets): Turn into varray.
18244         (get_alias_set_entry): Use VARRAY; mark inline.
18245         (mems_in_disjoint_alias_sets_p): Mark inline.
18246         (record_alias_subset): Use varray.
18247         (init_alias_once): Initialize varray.
18248         (new_alias_set): Grow array.
18249         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18250
18251 2004-01-12  Jan Hubicka  <jh@suse.cz>
18252
18253         Partial fix for PR opt/10776 II
18254         * cselib.c: Include params.h
18255         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
18256         locations.
18257         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18258         * Makefile.in (cselib.o): Depend on params.h
18259
18260 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
18261
18262         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18263         simplify_unary_operation if the operand has a known mode.
18264
18265 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
18266
18267         PR target/13534
18268         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18269         predicate to handle 'ld' conform addresses.
18270         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18271         contraint.
18272         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18273         are memory contraints.
18274         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18275         New prototype.
18276         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18277         Change 'o' to 'Y' constraint.
18278         (*movdf_softfloat64): Ditto.
18279
18280 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
18281
18282         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18283         brace-enclosed syntax in all C output statements.
18284
18285 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
18286
18287         PR target/13401
18288         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18289         Objective-C language type value is 14.
18290
18291 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
18292
18293         PR c/12148
18294         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18295         `int' in a number of places to make sure we always have a SImode
18296         and not a HImode.  Add a 'L' suffix to a number of constants.
18297
18298 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18299
18300         * pa.c: Don't include obstack.h.
18301
18302         * pa.md: Correct constraint in pattern for loading PIC label address.
18303
18304 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18305
18306         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18307          before defining.
18308
18309 2004-01-11  Steven Bosscher  <stevenb@suse.de>
18310
18311         PR fortran/9972
18312         * toplev.c (rest_of_handle_inline): Also consider functions
18313         for deferral if the language is GNU F77.
18314
18315 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
18316
18317         * c-decl.c (diagnose_arglist_conflict): Add missing space to
18318         diagnostic messages.
18319
18320 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
18321
18322         PR middle-end/13392
18323         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18324         to drop through label.  Don't fall back to SCC even when conditional
18325         jump has not been found.
18326
18327 2004-01-11  Jan Hubicka  <jh@suse.cz>
18328
18329         * invoke.texi: Fix syntax error in previous patch.
18330
18331         Partial fix for PR opt/10776
18332         * Makefile.in (reload.o): Include param.h
18333         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18334         * reload.c: Include params.h.
18335         (find_equiv_reg): Work limiting check.
18336         * invoke.texi: Document.
18337
18338 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18339
18340         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18341         out-of-bounds accesses to string constants.  Simplify mips16
18342         case accordingly.
18343
18344 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
18345
18346         PR optimization/13469
18347         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18348         reload_cse_regs (-fnon-call-exceptions only).
18349
18350 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
18351
18352         * config/mcore/lib1.asm: Fix comment formatting.
18353         * config/mcore/mcore-elf.h: Likewise.
18354         * config/mcore/mcore.c: Likewise.
18355         * config/mcore/mcore.h: Likewise.
18356         * config/mcore/mcore.md: Likewise.
18357
18358 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18359
18360         * c-decl.c (duplicate_decls): Break apart into...
18361         (diagnose_arglist_conflict, validate_proto_after_old_defn)
18362         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18363         ... these new functions.  Restructure for comprehensibility.
18364         Remove various archaic special cases.  Always report the
18365         location of the previous declaration when a diagnostic is issued.
18366         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18367         (match_builtin_function_types): Delete unnecessary forward declaration.
18368
18369 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
18370
18371         * genautomata.c (make_automaton, NDFA_to_DFA):
18372         Print progress bars with '.' characters instead of '*'.
18373         (build_automaton): Change notes to match.
18374
18375 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18376
18377         * config/m32r/m32r.md: Use define_constants for unspec and
18378         unspec_volatile.
18379
18380 2004-01-10  Jan Hubicka  <jh@suse.cz>
18381
18382         PR opt/11635
18383         * expr.c (expand_expr_real):  More curefully expand union casts.
18384
18385 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18386
18387         * config/m32r/m32r.md (flush_icache): Use 1 for
18388         unspec_volatile.
18389
18390 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
18391             James E Wilson  <wilson@specifixinc.com>
18392
18393         PR debug/12860
18394         * dbxout.c (dbxout_symbol): Remove initialization of
18395         current_sym_code, current_sym_value, and current_sym_addr.
18396         (dbxout_symbol_location): Same.
18397         (dbxout_prepare_symbol): Zero current_sym_code,
18398         current_sym_value, and current_sym_addr.
18399
18400 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18401
18402         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18403         check is done first.
18404
18405 2004-01-09  Eric Christopher  <echristo@redhat.com>
18406
18407         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18408         if we're running mark_constant_function.
18409
18410 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18411
18412         PR target/12561
18413         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18414
18415 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18416
18417         PR debug/11231
18418         * dbxout.c (dbxout_type_fields): Return if any item is
18419         error_mark_node or the type is error_mark_node.
18420
18421 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18422
18423         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18424         exactly what is expected as a 'long double'.
18425         (_xlqadd): When a value to be returned is representable as a
18426         'double', just return it directly, do not construct it using a union.
18427         Also, correct final fixup.
18428         (_xlqmul): Likewise.
18429         (_xlqdiv): Likewise.
18430         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18431
18432         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18433
18434 2004-01-09  Richard Henderson  <rth@redhat.com>
18435
18436         * recog.c (constrain_operands): Validate mem operands.
18437
18438 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18439
18440         * gcc.c (init_spec): Remove -lunwind from shared case.
18441         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18442
18443 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18444
18445         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18446         * configure: Regenerate
18447
18448 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18449
18450         PR c/11234
18451         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18452         between function and object pointers.
18453         (digest_init): When comparing a pointer to function type to the
18454         target type, only apply TREE_TYPE once to the pointer to function
18455         type.
18456         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18457         function pointer rather than casting it to a function pointer.
18458         (for_each_eh_label): Update caller.
18459         * recog.h (struct insn_data): Use a struct or union for output.
18460         * genoutput.c (output_insn_data): Update.
18461         * final.c (get_insn_template): Update.
18462
18463 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18464
18465         * expr.h (expand_expr): Make it a macro, not a function.
18466         (expand_expr_real): New function.
18467         * expr.c (store_expr): Adjust logic for deciding whether or not to
18468         copy the value returned by expand_expr.
18469         (expand_expr): Rename to ...
18470         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18471         calls to language hooks.
18472         * c-common.h (c_expand_expr): Adjust prototype.
18473         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18474         * langhooks-def.h (lhd_expand_expr): Change prototype.
18475         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18476         * langhooks.h (lang_hooks): Change type of expand_expr.
18477         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18478         (last_expr_alt_rtl): Likewise.
18479         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18480         (clear_last_expr): Clear it.
18481         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18482         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18483         * tree.def (RTL_EXPR): Give it an additional operand.
18484         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18485
18486 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18487
18488         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18489         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18490
18491 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18492
18493         PR target/13380.
18494         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18495         or (ne:SI (reg:CC 17) (const_int 0)).
18496         Be specific about modes wherever possible.
18497
18498 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18499
18500         * config/m32r/m32r.c (m32r_expand_block_move): Call
18501         gen_movestrsi_internal with two more arguments.
18502         (m32r_output_block_move): Adjust operand numbers.
18503         Properly update the source and destination pointers.
18504         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18505         'r+'.  Change the set detinations to match_operand.
18506
18507 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18508
18509         * final.c (FIRST_INSN_ADDRESS): Remove.
18510         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18511         * system.h (FIRST_INSN_ADDRESS): Poison.
18512         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18513         * config/m32r/m32r-protos.h: Remove the prototype for
18514         m32r_first_insn_address.
18515         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18516         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18517         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18518
18519 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18520
18521         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18522         we just created.
18523         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18524         emitted as subrange types too.
18525         (subrange_type_die): Add handling of enumeration subtypes.
18526
18527 2004-01-08  Richard Henderson  <rth@redhat.com>
18528
18529         PR opt/12441
18530         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18531         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18532         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18533         (ix86_address_cost): Be prepared for SUBREGed registers.
18534         (legitimate_address_p): Accept SUBREGed registers.
18535
18536 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18537
18538         * Makefile.in: Rename configure.in to configure.ac
18539         * doc/sourcebuild.texi: Likewise.
18540         * configure: Regenerate.
18541         * config.in: Regenerate.
18542
18543 2004-01-08  Stuart Hastings  <stuart@apple.com>
18544
18545         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18546
18547 2004-01-08  Jan Hubicka  <jh@suse.cz>
18548
18549         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18550
18551 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18552
18553         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18554         (UNSPEC_FIX_TRUNC_TF): New constant.
18555         (movtf_internal): Make splitter active only when insn is active.
18556         (extenddftf2): Rewrite to properly load zero into low part.
18557         (extenddftf2_internal): New.
18558         (extendsftf2): Rewrite.
18559         (truncdftf2): Correct length.
18560         (floatditf2): Delete.
18561         (fix_trunc_helper): New.
18562         (fix_trunctfdi2): Use fix_trunc_helper.
18563         (fix_trunctfsi2): Likewise.fix_trunc
18564         (fix_trunctfsi2_internal): New.
18565
18566         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18567         addresses are legitimate on Darwin even when flag_pic.
18568         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18569         non-offsettable addresses for loads of TFmode constants.
18570
18571 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18572
18573         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18574         variables in the appropriate bss section.
18575
18576 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18577
18578         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18579         target_flags has MASK_POWERPC64 when -m64.
18580         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18581         to 620, 630, power3, power4 and rs64a entries.
18582         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18583
18584 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18585
18586         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18587         floating-point constants.
18588
18589 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18590
18591         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18592         Create the subrange_type DIE using the given context DIE.
18593         (modified_type_die): Update call to subrange_type_die.
18594
18595 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18596
18597         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18598         Add multiple-include guard.
18599
18600 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18601
18602         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18603         all vector constant loadable by vsplt*.
18604         (output_vec_const_move): Likewise.
18605
18606 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18607
18608         PR c/6024
18609         * c-typeck.c (comptypes): Only treat enumerated types in the same
18610         translation unit as compatible with each other when they are the
18611         same type.
18612         * doc/extend.texi: Update.
18613
18614 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18615
18616         PR c/12165
18617         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18618         array type from the array element type.
18619
18620 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18621
18622         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18623         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18624         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18625         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18626         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18627
18628 2004-01-06  Eric Christopher  <echristo@redhat.com>
18629
18630         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18631         (DWARF2_DEBUGGING_INFO): Define.
18632         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18633         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18634         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18635         for irix as.
18636         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18637         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18638         * config/mips/iris5gas.h: Ditto.
18639         (DBX_DEBUGGING_INFO): Remove.
18640         (DWARF2_DEBUGGING_INFO): Ditto.
18641         (MIPS_DEBUGGING_INFO): Ditto.
18642         (PREFERRED_DEBUGGING_TYPE): Ditto.
18643         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18644         (PREFERRED_DEBUGGING_TYPE): Ditto.
18645         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18646         * config/mips/elf64.h: Ditto.
18647
18648 2004-01-06  Jan Hubicka  <jh@suse.cz>
18649
18650         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18651         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18652
18653 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18654
18655         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18656         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18657         * config/rs6000/darwin-ldouble.c: New.
18658
18659         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18660         for constants.
18661         (constant_subword): Delete.
18662         * rtl.h (constant_subword): Delete prototype.
18663         (immed_double_const): Is not in varasm.c.
18664         * simplify-rtx.c (simplify_immed_subreg): New.
18665         (simplify_subreg): Use simplify_immed_subreg.
18666
18667         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18668         than trying to generate RTL directly.
18669         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18670         RTL directly.
18671
18672         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18673
18674 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18675
18676         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18677         function into a separate macro.
18678         (read_only_data_section): Add void argument.
18679         (private_data_section): Same.
18680         (read_only_private_data_section): Same.
18681         (toc_section): Same.
18682
18683 2004-01-06  Jan Hubicka  <jh@suse.cz>
18684
18685         * invoke.texi:  Remove typo in last change.
18686
18687         PR target/10301
18688         * config.gcc: Accept opteron and athlon-64 as variants
18689         of k8.
18690         * i386.c (override_options): Likewise.
18691         * invoke.texi (i386 -mtune): Expand documentation.
18692
18693 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18694
18695         * alias.c: Fix comment typos.
18696         * builtins.c: Likewise.
18697         * cfg.c: Likewise.
18698         * df.c: Likewise.
18699         * dominance.c: Likewise.
18700         * dwarf2out.c: Likewise.
18701         * emit-rtl.c: Likewise.
18702         * expr.c: Likewise.
18703         * final.c: Likewise.
18704         * fold-const.c: Likewise.
18705         * gcse.c: Likewise.
18706         * genattrtab.c: Likewise.
18707         * genrecog.c: Likewise.
18708         * gensupport.c: Likewise.
18709         * ggc-zone.c: Likewise.
18710         * integrate.c: Likewise.
18711         * local-alloc.c: Likewise.
18712         * loop.c: Likewise.
18713         * recog.c: Likewise.
18714         * regmove.c: Likewise.
18715         * reg-stack.c: Likewise.
18716         * reorg.c: Likewise.
18717         * rtlanal.c: Likewise.
18718         * rtl.h: Likewise.
18719         * sched-ebb.c: Likewise.
18720         * simplify-rtx.c: Likewise.
18721         * toplev.c: Likewise.
18722         * varasm.c: Likewise.
18723
18724 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18725
18726         * doc/install.texi: Fix typos.
18727         * doc/invoke.texi: Likewise.
18728         * doc/md.texi: Likewise.
18729
18730 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18731
18732         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18733
18734 2004-01-06  Jan Hubicka  <jh@suse.cz>
18735
18736         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18737         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18738         of MMX_REGPARM.
18739         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18740         add MMX_REGPARM.
18741         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18742         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18743         (MMX_REGPARM_MAX): Similarly for -mmmx.
18744
18745 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18746
18747         * config/sh/linux.h: Fix comment formatting.
18748         * config/sh/netbsd-elf.h: Likewise.
18749         * config/sh/sh.c: Likewise.
18750         * config/sh/sh.h: Likewise.
18751         * config/sh/vxworks.h: Likewise.
18752
18753 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18754
18755         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18756         * toplev.c (output_file_directive): Don't use
18757         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18758
18759 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18760
18761         * toplev.c: Fix broken checkin of 2003-12-30.
18762
18763 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18764
18765         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18766         (USING_MMAP): We don't support non-mmap.
18767         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18768         large objects.
18769         (struct page_entry): Remove bytes_free.
18770         (struct page_table_chain): Remove.
18771         (struct globals): Remove page_table member.
18772         (loookup_page_table_entry): Function deleted.
18773         (set_page_table_entry): Ditto.
18774         (ggc_allocated_p): No longer need page table lookups.
18775         (ggc_marked_p): Ditto.
18776         (alloc_small_page): Don't care about bytes_free anymore.
18777         (alloc_large_page): Round up size.
18778         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18779         their size the new way.
18780         Remove page table lookups and setting.
18781         (ggc_get_size): Calculate large object size the new way.
18782         (sweep_pages): Redo to account for fact that we no longer have
18783         bytes_free.
18784         (ggc_collect): No longer need to reincrement bytes_free.
18785         (ggc_pch_alloc_object): Handle new large objects properly.
18786         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18787
18788 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18789
18790         * doc/invoke.texi: Remove a page break.
18791
18792 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18793
18794         * config/avr/avr.c (avr_output_function_prologue): Remove an
18795         extra pair of curly braces.
18796
18797 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18798
18799         * config/mn10300/mn10300.c: Fix comment formatting.
18800         * config/mn10300/mn10300.h: Likewise.
18801
18802 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18803
18804         * tree.h: Update documentation on nothrow_flag.
18805         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18806         types.
18807
18808 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18809
18810         * doc/invoke.texi: Remove traces of dead ports.
18811
18812 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18813
18814         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18815         option.
18816
18817 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18818
18819         PR target/12945
18820         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18821         counter labels.
18822         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18823         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18824         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18825         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18826         (mips_symbol_insns): Don't trust the local/global classification.
18827         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18828         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18829         -mno-explicit-relocs.
18830         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18831         between local and global symbols.
18832
18833 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18834
18835         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18836         (mips_preferred_reload_class): Declare.
18837         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18838         (EXTRA_CONSTRAINT): Update accordingly.
18839         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18840         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18841         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18842         mips_dangerous_for_la25_p.
18843         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18844         if mips_dangerous_for_la25_p.
18845
18846 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18847
18848         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18849         warning.
18850
18851 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18852
18853         * configure.ac: Use AC_PROG_CPP_WERROR.
18854         * configure: Regenerate.
18855
18856 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18857
18858         * .cvsignore: Add autom4te.cache.
18859
18860 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18861
18862         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18863         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18864         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18865         then architecture options, then ABI options.  General rewording.
18866
18867 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18868
18869         PR c/3414
18870         * doc/extend.texi: Clarify definition of malloc attribute.
18871
18872 2004-01-04  Jan Hubicka  <jh@suse.cz>
18873
18874         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18875         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18876         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18877         (cgraph_inline_p): Add extra argument reason.
18878         * cgraphunit.c: Minor formating fixes.
18879         cgraph_first_inlined_callee): New functions.
18880         (record_call_1): Record builtins too.
18881         (cgraph_analyze_function): Update inline_failed messages.
18882         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18883         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18884         (cgraph_check_inline_limits): Likewise; Add argument reason.
18885         (cgraph_set_inline_failed): New static function.
18886         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18887         reasons.
18888         (cgraph_inline_p): Add new argument reason.
18889         * tree-inline.c (expand_call_inline):  Update warning.
18890
18891 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18892
18893         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18894         with modern equivalents.
18895         * configure: Regenerate.
18896
18897         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18898         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18899         * configure: Regenerate.
18900
18901         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18902
18903         * configure.in: Rename to configure.ac.
18904         * configure.ac: Renamed from configure.in; make minimum necessary
18905         changes for autoconf 2.5x.
18906         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18907         * configure: Regenerate with autoconf 2.57.
18908
18909 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18910
18911         * config/mips/linux.h: Fix comment formatting.
18912         * config/mips/mips.c: Likewise.
18913         * config/mips/mips.h: Likewise.
18914         * config/mips/mips.md: Likewise.
18915         * config/mips/netbsd.h: Likewise.
18916         * config/mips/windiss.h: Likewise.
18917
18918 2004-01-02  Richard Henderson  <rth@redhat.com>
18919
18920         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18921         for sse and 387; add suppression for mmx.
18922
18923 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18924
18925         * loop.c (loop_optimize): Free all loops_info's mems.
18926
18927         * c-typeck.c (finish_init): Free spelling_base before
18928         setting it again.
18929
18930         * cfgloop.c (flow_loops_find): Always free the sbitmap
18931         headers.
18932
18933         * predict.c (estimate_probability): Free bbs after being
18934         done with it.
18935
18936 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18937
18938         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18939         const_8bit_operand and call_address_operand.
18940
18941 2004-01-02  Jan Hubicka  <jh@suse.cz>
18942
18943         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18944         when there is nothing to inline but warnings are requested.
18945         (cgraph_decide_inlining):  Fix memory leak.
18946
18947 2004-01-02  Jan Hubicka  <jh@suse.cz>
18948
18949         * expr.c (store_constructor):  Fix pasto in previous patch.
18950
18951 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18952
18953         * config/i386/cygming.h: Fix comment formatting.
18954         * config/i386/djgpp.h: Likewise.
18955         * config/i386/gthr-win32.c: Likewise.
18956         * config/i386/i386-interix.h: Likewise.
18957         * config/i386/i386.c: Likewise.
18958         * config/i386/i386.h: Likewise.
18959         * config/i386/openbsd.h: Likewise.
18960         * config/i386/winnt.c: Likewise.
18961         * config/i386/xm-mingw32.h: Likewise.
18962
18963 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18964
18965         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18966         copyright and last modification dates.
18967
18968 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18969
18970         * doc/install.texi (Specific): Mention x86_64.
18971
18972 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18973
18974         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18975         Call force_operand on plus_constant result.
18976
18977 2004-01-01  Jan Hubicka  <jh@suse.cz>
18978
18979         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18980         * expr.c (store_constructor): Use vec_init pattern.
18981         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18982         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18983         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18984         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18985         New patterns.
18986         (sse2_unpc?pd): Fix pattern.
18987         (sse2_movlpd): Kill.
18988         (sse2_movsd): Deal with movlpd too.
18989         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18990         (ix86_expand_vector_init): New.
18991         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18992         * md.texi (vec_set, vec_extract): Document
18993
18994 2003-12-31  Jan Hubicka  <jh@suse.cz>
18995
18996         PR opt/13473
18997         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18998         ASM input operands
18999
19000         PR opt/12617
19001         * toplev.c (dump_file_index): Reorder ce3 and bbro.
19002         (dump_file): Likewise.
19003         (rest_of_compilation): Likewise.
19004
19005         PR debug/13367
19006         * cgraph.c (cgraph_function_possibly_inlined):  Even with
19007         flag_really_no_inline we inline always_inline functions.
19008         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
19009         for non-always_inline functions when there is flag_really_no_inline.
19010         (cgraph_decide_inlining): Limit work done when not inlining.
19011         (cgraph_decide_inlining_incrementally): Likewise.
19012         (cgraph_optimize_function): Check whether something got inlined.
19013         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
19014         extern inline functions when not inlining.
19015
19016         * opts.c (decode_options):  Disable crossjumping at -O1
19017         * invoke.texi (-O1): Document change.
19018
19019 See ChangeLog.10 for earlier changes.