OSDN Git Service

* c-parse.in: Unify Objective-C token names.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-17  David Ayers  <d.ayers@inode.at>
2  
3         * c-parse.in: Unify Objective-C token names.
4
5 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
6
7         Bug 14610
8         * Makefile.in (min-insn-modes.o): Correct dependencies.
9         * real.c (encode_ieee_extended, decode_ieee_extended): Always
10         produce/consume 12-byte little-endian Intel format.
11         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
12         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
13         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
14         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
15         New functions which convert between 12-byte little-endian Intel
16         format and the desired format.
17         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
18         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
19         Update.
20
21 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
22
23         * expmed.c (expand_mult_const): In sanity check, compare only
24         the bits of val and val_so_far that are significant in the
25         result mode.
26
27 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
28
29         * tree-ssa-pre.c:  Update comments.
30         (val_expr_pair_eq): Factor code from here.
31         (expr_pred_trans_eq): and here.
32         (expressions_equal_p): To here.
33         (print_value_set): Print value for expression.
34         (phi_trans_lookup): Rename some variables.
35         (lookup): Ditto.
36         (value_exists_in_set_bitmap): Ditto.
37         (value_remove_from_set_bitmap): Ditto.
38         (value_insert_into_set_bitmap): Ditto.
39
40 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
41
42         * config/s390/s390-modes.def (CCL3mode): New machine mode.
43         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
44         (s390_alc_comparison, s390_slb_comparison): Likewise.
45         (s390_branch_condition_mask): Likewise.
46         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
47         ("*subsi3_cc2", "*subsi3_cconly2"): New.
48
49         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
50         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
51         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
52         Handle SIGN_EXTEND and ZERO_EXTEND.
53
54         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
55         * config/s390/s390.c (s390_expand_addcc): New function.
56         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
57         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
58         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
59
60 2004-06-17  Ben Elliston  <bje@au.ibm.com>
61
62         * tree-alias-common.c: Add whitespace.
63         * tree-inline.c: Correct comment about this file's purpose.
64         * tree-optimize.c: Likewise.
65         * tree-tailcall.c: Likewise.
66
67         * tree-alias-ander.h: Add standard top-of-file comment.
68         * tree-alias-common.h: Likewise.
69         * tree-alias-type.h: Likewise.
70
71 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
72
73         * tree-ssa-pre.c (compute_avail): Value number uses as well.
74         Strip useless type conversions.
75         Casts have to be treated slightly different than normal unaries.
76
77 2004-06-16  Richard Henderson  <rth@redhat.com>
78
79         * c-common.def (COMPOUND_STMT): Remove.
80         * c-common.c (finish_fname_decls): Don't look through it.
81         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
82         * c-common.h (COMPOUND_BODY): Remove.
83         (c_common_stmt_codes): Remove COMPOUND_STMT.
84         * c-dump.c (c_dump_tree): Likewise.
85         * c-gimplify.c (c_gimplify_stmt): Likewise.
86         * c-pretty-print.c (pp_c_statement): Likewise.
87         * tree.h (DECL_SAVED_TREE): Update commentary.
88         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
89         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
90         (GOTO_EXPR): Rename from GOTO_STMT.
91         (GOTO_FAKE_P): Remove.
92         (COMPOUND_STMT): Remove.
93         (HANDLER): Update wrt COMPOUND_STMT.
94         (STMT_EXPR): Likewise.
95         (LABEL_EXPR): Rename from LABEL_STMT.
96         (SCOPE_STMT): Remove.
97         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
98         through COMPOUND_STMT.
99
100 2004-06-16  Richard Henderson  <rth@redhat.com>
101
102         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
103         c_finish_while_stmt_cond): Remove decls.
104         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
105         * c-typeck.c (c_begin_if_stmt): Return void.
106         (c_begin_else): Tidy.  Save stmt_count.
107         * c-tree.h (c_begin_if_stmt): Update decl.
108
109         * objc/objc-act.c (objc_build_try_enter_fragment,
110         objc_build_extract_fragment, objc_build_try_epilogue,
111         objc_build_catch_stmt, objc_build_catch_epilogue,
112         objc_build_finally_prologue, objc_build_finally_epilogue): Update
113         for if builder function changes.
114
115 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
116
117         * config/s390/s390.c (struct machine_function):  New member
118         last_restore_gpr.
119         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
120         Do not modify machine->save_return_addr_p or regs_ever_live.
121         Fill in machine->last_restore_gpr.
122         (s390_optimize_prolog): Use s390_frame_info to compute registers
123         to save/restore, remove duplicated code.
124         (s390_arg_frame_offset): Use s390_frame_info to compute frame
125         size, remove duplicated code.
126         (s390_emit_prologue): Adapt s390_frame_info call.  Update
127         machine->save_return_addr_p and regs_ever_live.
128         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
129         machine->last_save_gpr.
130
131 2004-06-16  Richard Henderson  <rth@redhat.com>
132
133         * c-parse.in (if_stmt_locus): Remove.
134         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
135         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
136         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
137         empty_locus.  Add stmt_count, saw_else.
138         (c_begin_if_stmt): Push if_stack here.
139         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
140         (c_finish_then, c_finish_else): Record empty_locus.
141         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
142         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
143         if or else body.
144         * c-tree.h: Update prototypes.
145
146 2004-06-16  Steven Bosscher  <stevenb@suse.de>
147
148         * tree.h (PHI_CHAIN): New.
149         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
150         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
151         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
152         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
153         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
154         when traversing a list of PHI_NODEs.
155
156 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
157
158         PR target/13292
159         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
160         on -msoft-float.
161         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
162         68040 and soft-float.
163         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
164         in the TARGET_68040_ONLY case.
165
166 2004-06-16 Peter Barada  <peter@the-baradas.com>
167
168         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
169         (movsi_cf): Make named, don't match TARGET_CFV4.
170         (pushexthisi_const): Use mov3q if possible.
171         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
172         to special case mvz.w for ColdFire V4.
173         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
174         to special case mvz.b for ColdFire V4.
175         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
176         divide.
177         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
178         * config/m68k/m68k.c(valid_mov3q_const):  New function.
179         (const_method): SWAP is valid for ColdFire.
180         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
181         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
182
183 2004-06-16  Richard Henderson  <rth@redhat.com>
184
185         * c-common.def (CASE_LABEL): Remove.
186         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
187         (match_case_to_enum_1): Likewise.
188         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
189         * c-dump.c (c_dump_tree): Likewise.
190         * c-gimplify.c (c_gimplify_stmt): Likewise.
191         * c-pretty-print.c (pp_c_statement): Likewise.
192         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
193         * tree.h (CASE_LOW): Update commentary.
194
195 2004-06-16  Richard Henderson  <rth@redhat.com>
196
197         * c-common.def (ASM_STMT): Remove.
198         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
199         * c-dump.c (c_dump_tree): Likewise.
200         * c-gimplify.c (c_gimplify_stmt): Likewise.
201         * c-pretty-print.c (pp_c_statement): Likewise.
202         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
203         * tree.h: Fix commentary.
204
205 2004-06-16  Richard Henderson  <rth@redhat.com>
206
207         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
208         * c-common.c (c_add_case_label): Use LABEL_EXPR.
209         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
210         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
211         * c-dump.c (c_dump_tree): Likewise.
212         * c-gimplify.c (c_gimplify_stmt): Likewise.
213         * c-pretty-print.c (pp_c_statement): Likewise.
214         * c-parse.in (stmt): Use GOTO_EXPR.
215         (label): Use LABEL_EXPR.
216         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
217         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
218
219 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
220
221         * cfgcleanup.c (try_simplify_condjump): Update test to make
222         sure we have a conditional branch around am unconditional branch.
223
224 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
225
226         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
227
228 2004-06-16  Dale Johannesen  <dalej@apple.com>
229
230         * loop.c (loop_givs_reduce): Avoid miscompilation of
231         loops entered at bottom.
232
233 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
234
235         * cfglayout.c (fixup_reorder_chain): Handle case where the
236         destination of E_FALL is EXIT_BLOCK_PTR.
237
238 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
239
240         PR target/15653
241         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
242         after shifts before asm.
243
244 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
245
246         PR tree-optimization/15993
247         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
248         destination is unchanged.
249
250 2004-06-16  Andreas Jaeger  <aj@suse.de>
251
252         * doc/install.texi (Configuration): Update description for
253         --enable-version-specific-runtime-libs.
254
255 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
256
257         * doc/install.texi: boehm-gc now uses automake 1.8.5.
258
259 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
260
261         * toplev.h (rest_of_compilation): Adjust prototype.
262
263 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
264
265         * coverage.c: Remove argument to rest_of_compilation.
266         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
267         * passes.c (rest_of_compilation): Remove argument.
268         (pass_rest_of_compilation): New.
269         (rest_of_handle_final, rest_of_handle_delay_slots,
270         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
271         rest_of_handle_machine_reorg, rest_of_handle_regrename
272         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
273         rest_of_handle_regmove, rest_of_handle_tracer
274         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
275         rest_of_handle_web, rest_of_handle_branch_prob
276         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
277         rest_of_handle_addressof, rest_of_handle_jump_bypass
278         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
279         Check that the two arguments are actually superfluous.
280         * tree-optimize.c (register_dump_files): Add properties argument.
281         Track validity of passes.  Only initialize dump files for
282         tree-based passes.  Store the full set of provided passes in
283         the pass.
284         (init_tree_optimization_passes): Register pass_expand and
285         pass_rest_of_compilation.
286         (execute_one_pass): Do not track the presence of required properties
287         here.  Set in_gimple_form.  Do not update current_properties.
288         (current_properties): Remove.
289         (set_save_expr_context): Remove.
290         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
291         expand to RTL here, and do not call rest_of_compilation.  Push
292         GGC context even before gimplification.
293         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
294         (pass_expand, pass_rest_of_compilation): Declare.
295
296 2004-06-15  Jeff Law  <law@redhat.com>
297
298         * fold-const.c (swap_tree_comparison): No longer static.
299         (tree_swap_operands_p): Similarly.  Return true if both operands
300         are SSA_NAMEs and the first operand has a higher version number than
301         the second operand.
302         * tree.h (swap_tree_comparison): Prototype.
303         (tree_swap_operands_p): Prototype.
304         * tree-ssa-operands.c (get_expr_operands): For commutative
305         operators and relational comparisons, canonicalize the
306         order of the operands.
307
308 2004-06-15  Richard Henderson  <rth@redhat.com>
309
310         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
311         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
312         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
313         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
314         (finish_fname_decls, fname_decl): Use statement_lists.
315         (c_expand_expr_stmt): Don't set last_expr_type.
316         (c_type_hash): Fix indentation.
317         (c_safe_from_p): Don't follow TREE_CHAIN.
318         (c_tree_chain_matters_p): Remove.
319         * c-common.def (SCOPE_STMT): Remove.
320         (CLEANUP_STMT): Redefine to contain its own body.
321         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
322         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
323         Add x_cur_stmt_list.
324         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
325         (cur_stmt_list): New.
326         (STATEMENT_LIST_STMT_EXPR): New.
327         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
328         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
329         (CLEANUP_BODY): New.
330         (CLEANUP_DECL): Move to operand 2.
331         (c_common_stmt_codes): Remove SCOPE_STMT.
332         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
333         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
334         (c_push_function_context, c_pop_function_context): Don't save it.
335         (finish_decl): Set TREE_USED on the decl for a cleanup.
336         Use push_cleanup.
337         (store_parm_decls): Use statement lists.
338         (finish_function): Remove compstmt rule workaround.  Use statement
339         lists.  Call finish_fname_decls after finalizing the body.
340         (c_begin_compound_stmt): Move to c-typeck.c.
341         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
342         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
343         (c_genericize): Invoke them.
344         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
345         (c_build_bind_expr): Export.
346         (gimplify_block, gimplify_cleanup): Remove.
347         (gimplify_condition): Use gimplify_stmt.
348         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
349         (gimplify_if_stmt): Remove recursion hack.
350         (c_gimplify_expr): Remove STMT_EXPR handling.
351         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
352         (is_last_stmt_of_scope): Remove.
353         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
354         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
355         c_end_compound_stmt.
356         * c-objc-common.c (build_cdtor): Likewise.
357         * c-parse.in (primary): Use c_finish_stmt_expr.
358         (push_scope, pop_scope): Remove.
359         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
360         (c99_block_end, compstmt): Use c_end_compound_stmt.
361         (c99_block_lineno_labeled_stmt): Likewise.
362         (compstmt_primary_start): Use c_begin_stmt_expr.
363         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
364         (do_stmt_start): Fill in body directly.
365         (lineno_stmt): Avoid setting lineno on constants.
366         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
367         Remove SCOPE_STMT.
368         * c-semantics.c (begin_stmt_tree): Remove.
369         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
370         (add_stmt): Use statement lists.
371         (add_scope_stmt, finish_stmt_tree): Remove.
372         (push_cleanup): New.
373         * c-tree.h: Move some decls from c-common.h.
374         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
375         (do_case, c_finish_case): Likewise.
376         (c_finish_then): Take body for then as argument.
377         (c_finish_else): Similarly.
378         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
379         c_finish_for_stmt_incr, c_finish_for_stmt): New.
380         (c_begin_stmt_expr, c_finish_stmt_expr): New.
381         (c_begin_compound_stmt): Do scope management.
382         (c_end_compound_stmt): New.
383         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
384         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
385         Look through exception handling constructs.
386         (gimplify_bind_expr): Accept temporary argument.
387         (gimplify_target_expr): Special case BIND_EXPR bodies.
388         (gimplify_expr): Handle fallback == fb_none like a statement.
389         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
390         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
391         * langhooks.h (tree_chain_matters_p): Remove.
392         * stub-objc.c (objc_clear_super_receiver): New.
393         * tree-gimple.h (voidify_wrapper_expr): Update decl.
394         (append_to_statement_list, append_to_statement_list_force): Move
395         to tree-iterator.h.
396         * tree-inline.c (expand_call_inline): Update call.
397         (clone_body): Use statement lists.
398         (walk_tree): Don't check tree_chain_matters_p.
399         (copy_tree_r): Likewise.
400         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
401         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
402         * tree-iterator.h (append_to_statement_list,
403         append_to_statement_list_force): Moved from tree-gimple.h.
404         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
405         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
406         (objc_enter_block): Likewise.
407         (objc_exit_block): Use c_end_compound_stmt.
408         (objc_build_try_enter_fragment): Add #error and comment for
409         rewriting for OBJCPLUS.
410         (objc_build_extract_fragment, objc_build_try_epilogue,
411         objc_build_catch_stmt, objc_build_finally_prologue,
412         objc_build_finally_epilogue): Update for C statement builders.
413         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
414         Remove.
415
416 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
417
418         * df.c (df_reg_clobber_gen): Removed.
419         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
420         Make more effective for hard regs.
421         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
422
423 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
424
425         * c-pragma.h (c_lex_string_translate): Change type to int.
426         * c-parse.in: Change all assignments of c_lex_string_translate
427         to true and false to 1 and 0.
428         * c-lex.c (c_lex_string_translate): Likewise.
429         (lex_string): Convert string without translation in the -1
430         case.
431
432 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
433
434         * convert.h: Add include guards
435
436 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
437
438         * tree-flow-inline.h: Document all functions.
439
440 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
441
442         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
443         * tree-dfa.c (create_stmt_ann): Ditto.
444         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
445         * tree-inline.c (estimate_num_insns_1): Ditto.
446         * tree.c (tree_size): Ditto.
447         (make_node_stat): Ditto.
448         (tree_node_structure): Ditto.
449         (ephi_node_elt_check_failed): Remove.
450         (is_essa_node): Ditto.
451         * tree.def (EPHI_NODE): Ditto.
452         (EEXIT_NODE): Ditto.
453         (EUSE_NODE): Ditto.
454         (EKILL_NODE): Ditto.
455         * tree.h (EREF_NODE_CHECK): Remove.
456         (EPHI_NODE_ELT_CHECK): Ditto.
457         (struct tree_eref_common): Ditto.
458         (struct tree_euse_node): Ditto.
459         (struct ephi_arg_d): Ditto.
460         (struct tree_ephi_node): Ditto.
461         (ephi_node_elt_check_failed): Remove prototype.
462         (is_essa_node): Ditto.
463         (enum tree_node_structure_enum): Remove TS_E*_NODE.
464         (union tree_node): Remove E*_NODE uses.
465
466 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
467
468         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
469         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
470         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
471         Likewise.
472         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
473         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
474         expand_builtin_strcmp, expand_builtin_strncmp,
475         expand_builtin_frame_address): Likewise.
476         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
477         insert_one_insn): Likewise.
478         * calls.c (prepare_call_address, precompute_register_parameters,
479         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
480         * cfganal.c (flow_active_insn_p): Likewise.
481         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
482         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
483         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
484         make_extraction, recog_for_combine, gen_lowpart_for_combine,
485         simplify_comparison, record_dead_and_set_regs_1,
486         record_dead_and_set_regs, record_promoted_value,
487         check_promoted_subreg, get_last_value_validate, get_last_value,
488         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
489         unmentioned_reg_p_1): Likewise.
490         * conflict.c (mark_reg): Likewise.
491         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
492         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
493         merge_equiv_classes, flush_hash_table, invalidate,
494         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
495         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
496         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
497         record_jump_cond, cse_insn, addr_affects_sp_p,
498         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
499         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
500         cse_cc_succs, cse_condition_code_reg): Likewise.
501         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
502         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
503         cselib_record_set, cselib_record_sets): Likewise.
504         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
505         dbxout_block): Likewise.
506         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
507         * dojump.c (do_jump): Likewise.
508         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
509         is_based_loc, rtl_for_decl_location): Likewise.
510         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
511         set_decl_incoming_rtl, mark_user_reg): Likewise.
512         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
513         copy_to_suggested_reg, allocate_dynamic_stack_space,
514         probe_stack_range, hard_function_value): Likewise.
515         * expmed.c (store_bit_field, store_fixed_bit_field,
516         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
517         extract_split_bit_field, expand_divmod, emit_store_flag_force):
518         Likewise.
519         * expr.c (convert_move, convert_modes,
520         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
521         use_group_regs, emit_move_insn, emit_move_insn_1,
522         compress_float_constant, push_block, emit_single_push_insn,
523         emit_push_insn, get_subtarget, expand_assignment, store_expr,
524         store_constructor, store_field, force_operand, safe_from_p,
525         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
526         Likewise.
527         * final.c (profile_function, final_scan_insn, alter_subreg,
528         get_mem_expr_from_op, output_asm_operand_names, output_operand,
529         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
530         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
531         find_regno_partial, propagate_one_insn, init_propagate_block_info,
532         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
533         attempt_auto_inc, find_auto_inc, mark_used_regs,
534         count_or_remove_death_notes_bb): Likewise.
535         * function.c (find_temp_slot_from_address, update_temp_slot_address,
536         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
537         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
538         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
539         purge_single_hard_subreg_set, instantiate_decl,
540         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
541         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
542         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
543         expand_function_start, diddle_return_value, clobber_return_register,
544         expand_function_end, keep_stack_depressed, handle_epilogue_set,
545         update_epilogue_consts): Likewise.
546         * genemit.c (gen_exp, gen_insn): Likewise.
547         * genrecog.c (make_insn_sequence): Likewise.
548         * global.c (global_conflicts, expand_preferences, mark_reg_store,
549         mark_reg_conflicts, set_preference, reg_becomes_live,
550         build_insn_chain, mark_reg_change): Likewise.
551         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
552         Likewise.
553         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
554         Likewise.
555         * integrate.c (copy_rtx_and_substitute, try_constants,
556         subst_constants, mark_stores, allocate_initial_values): Likewise.
557         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
558         delete_computation, rtx_renumbered_equal_p, true_regnum,
559         reg_or_subregno): Likewise.
560         * lcm.c (reg_dies, reg_becomes_live): Likewise.
561         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
562         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
563         wipe_dead_reg, no_conflict_p): Likewise.
564         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
565         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
566         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
567         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
568         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
569         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
570         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
571         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
572         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
573         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
574         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
575         try_swap_copy_prop): Likewise.
576         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
577         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
578         Likewise.
579         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
580         reload_cse_simplify_operands, reload_combine,
581         reload_combine_note_store, reload_combine_note_use,
582         reload_cse_move2add, move2add_note_store): Likewise.
583         * print-rtl.c (print_rtx): Likewise.
584         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
585         contains_pseudo, handle_asm_insn): Likewise.
586         * ra-debug.c (ra_print_rtx_object, dump_constraints,
587         dump_static_insn_cost): Likewise.
588         * ra-rewrite.c (slots_overlap_p, emit_colors,
589         remove_suspicious_death_notes): Likewise.
590         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
591         register_operand, scratch_operand, nonmemory_operand,
592         constrain_operands): Likewise.
593         * reg-stack (check_asm_stack_operands, remove_regno_note,
594         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
595         subst_asm_stack_regs): Likewise.
596         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
597         record_address_regs, reg_scan_mark_refs): Likewise.
598         * regmove.c (discover_flags_reg, replacement_quality,
599         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
600         fixup_match_1): Likewise.
601         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
602         kill_set_value, copyprop_hardreg_forward_1): Likewise.
603         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
604         reload_inner_reg_of_subreg, can_reload_into, push_reload,
605         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
606         operands_match_p, decompose, find_reloads, find_reloads_toplev,
607         find_reloads_address, subst_indexed_address, find_reloads_address_1,
608         find_reloads_subreg_address, find_replacement,
609         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
610         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
611         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
612         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
613         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
614         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
615         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
616         do_output_reload, emit_reload_insns, gen_reload,
617         delete_address_reloads_1, inc_for_reload): Likewise.
618         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
619         update_reg_unused_notes, fill_slots_from_thread): Likewise.
620         * resource.c (update_live_status, mark_referenced_resources,
621         mark_set_resources, mark_target_live_regs): Likewise.
622         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
623         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
624         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
625         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
626         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
627         parms_set, find_first_parameter_load, keep_with_call_p,
628         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
629         num_sign_bit_copies1): Likewise.
630         * rtlhooks.c (gen_lowpart_general): Likewise.
631         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
632         sched_analyze): Likewise.
633         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
634         Likewise.
635         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
636         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
637         simplify_binary_operation, simplify_const_relational_operation,
638         simplify_subreg): Likewise.
639         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
640         expand_end_stmt_expr, expand_return, expand_decl,
641         expand_anon_union_decl): Likewise.
642         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
643         find_splittable_regs, find_splittable_givs, find_common_reg_term,
644         loop_iterations): Likewise.
645         * var-tracking.c (variable_union, variable_part_different_p,
646         variable_different_p, count_uses, add_uses, add_stores,
647         compute_bb_dataflow, set_variable_part, delete_variable_part,
648         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
649         Likewise.
650         * varasm.c (assemble_variable): Likewise.
651
652 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
653
654         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
655         definition.
656         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
657         #undef and #if 0'd definition.
658
659 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
660
661         * combine.c (distribute_notes): Comment typo fix.
662
663 2004-06-15  Roger Sayle  <roger@eyesopen.com>
664
665         * expmed.c (synth_mult): Mask bits of the multiplier to the
666         machine mode of the multiplication.  Don't consider shifts
667         by more than (or equal to) the width of the operation's mode.
668
669 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
670
671         * doc/install.texi: Yet another update for autoconf
672         and automake versions.
673
674 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
675
676         * function.h (struct function): Remove cannot_inline field.
677         (current_function_cannot_inline): Remove.
678         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
679         Simplify conditionals to ignore warn_return_type.
680         * tree-optimize.c (tree_rest_of_compilation): Do not reset
681         DECL_DEFER_OUTPUT.
682         * objc/objc-act.c (build_module_descriptor, finish_method_def):
683         Do not set current_function_cannot_inline.
684
685 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
686
687         * cfglayout.c (fixup_reorder_chain): Handle case where the
688         destination of E_TAKEN is EXIT_BLOCK_PTR.
689
690 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
691
692         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
693
694 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
695
696         * fold-const.c (operand_equal_p): Update comment.
697
698 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
699
700         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
701         (INCOMING_RETURN_ADDR_RTX): Define.
702         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
703         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
704         __builtin_return_address(0).
705         (m32r_return_addr): Added for __builtin_return_address(0).
706         (m32r_reload_lr): Ditto.
707
708         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
709
710 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
711
712         * doc/install.texi (Prerequisites): Update libbanshee,
713         fastjar, libcpp, libjava/libltdl entries to
714         automake 1.8.5.
715
716 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
717             Olivier Hainque  <hainque@act-europe.fr>
718
719         * function.c (fixup_var_refs): Also adjust the start of sequence
720         after fixing up the insns.
721
722 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
723
724         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
725
726 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
727
728         * doc/install.texi (Prerequisites): Update libstdc++ entry to
729         automake 1.8.5.
730
731 2004-06-14  Eric Christopher  <echristo@redhat.com>
732
733         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
734         to -mtpf-trace (-mno-tpf-trace).
735         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
736         documentation.
737
738 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
739
740         * real.c: Fix bit count in head comment.
741
742 2004-06-14  Jeff Law  <law@redhat.com>
743
744         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
745         PHIs where the destination or an argument is marked with
746         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
747
748 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
749
750         PR middle-end/15945
751         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
752         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
753
754 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
755
756         * opts.sh (var_args): Fix regexp.
757
758 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
759
760         PR target/15178
761         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
762
763 2004-06-14  Paul Brook  <paul@codesourcery.com>
764
765         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
766
767 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
768
769         * Makefile.in (FLAGS_H): New.
770         (flags.h): Replace by FLAGS_H.
771         * c.opt: Document Var, VarExists, Init and Report attributes.
772         * common.opt: Fill the values of the attributes.
773         * diagnostic.c (flag_fatal_errors): Do not define.
774         * except.c (flag_non_call_exceptions): Do not define.
775         * flags.h: Include options.h.  Remove declarations conflicting with
776         the automatically defined ones.
777         * opts.c: Remove automatically defined variables.
778         (handle_option): Perform default initialization.
779         (common_handle_option): Do not handle options covered by the
780         default initialization.
781         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
782         fields.
783         (CL_REPORT): New.
784         * opts.sh: Generate variable declarations, handle CL_REPORT.
785         * toplev.c: Remove automatically defined variables.
786         (f_options): Removed.
787         (print_switch_values): Use cl_options instead of f_options.
788         * toplev.h (version_flag): Declaration removed.
789
790 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
791
792         * config/sparc/sparc.h: Correct comment about availability of
793         little endian option.
794
795         * config.gcc: Remove sparc64-*-aout*.
796         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
797         * config/sparc/sp64-aout.h: Remove.
798         * config/sparc/aout.h: Remove.
799
800 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
801
802         * config/s390/s390.c: Include "tree-gimple.h".
803         (s390_gimplify_va_arg): New function.
804         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
805         (s390_va_arg): Remove.
806         * config/s390/s390-protos.h (s390_va_arg): Remove.
807         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
808
809 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
810
811         * basic-block.h (could_fall_through): Declare.
812         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
813         Fail if the source already has a fallthrough edge to the exit
814         block pointer.
815         (could_fall_through): New function.
816         * cfgbuild.c (make_edges): Check if we already have a fallthrough
817         edge to the exit block pointer.
818         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
819         not called before reload has completed.
820         Handle special case of first block having a fall-through exit edge.
821         (cfg_layout_finalize): Don't call it before reload or if we have
822         rtl epilogues.
823         (fixup_reorder_chain): A fall through to the exit block does not
824         require the block to come last.  Add sanity checks.
825         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
826         edges to the exit block.
827         * function.c (cfglayout.h): #include.
828         (thread_prologue_and_epilogue_insns): If we have neither return nor
829         epilogue, but a fall through to the exit block from mid-function,
830         force a non-fall-through exit.
831         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
832
833 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
834
835         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
836         for power5 and rs64a.  Correct condition for default.  Correct power3,
837         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
838
839 2004-06-13  Steven Bosscher <stevenb@suse.de>
840
841         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
842         Revert previous change, don't use CALL_P.
843
844 2004-06-13  Jason Merrill  <jason@redhat.com>
845
846         * tree.h: Move std_gimplify_va_arg_expr protoype here.
847         * tree-gimple.h: From here.
848
849 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
850
851         Fix PR tree-optimization/15979
852         Fix PR tree-optimization/15981
853         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
854         try to insert values undefined along some path.
855
856 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
857
858         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
859         are available everywhere too.
860
861 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
862
863         * fold-const.c (fold_checksum_tree <case 't'>): Only
864         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
865         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
866         EXPR is an INTEGERAL_TYPE or a scalar float type.
867
868 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
869
870         * tree-sra.c (tree_sra): Update documentation.
871
872 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
873
874         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
875         function_types_compatible_p, type_lists_compatible_p): Remove
876         flags parameter.
877         * c-tree.h (comptypes): Likewise.
878         (COMPARE_STRICT): Remove.
879         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
880         callers changed.
881
882 2004-06-13  Eric Christopher  <echristo@redhat.com>
883
884         * c-decl.c (diagnose_mismatched_decls): Improve error message.
885         Remove unused code.
886         * c-typeck.c (comptypes): Add location in standard we're checking.
887
888 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
889
890         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
891         version 3.3.4.
892
893 2004-06-12  Roger Sayle  <roger@eyesopen.com>
894
895         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
896         index by machine mode.
897         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
898         tables inside the loop over machine modes.
899         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
900         expand_divmod): Index shift*_cost by the appropriate machine mode.
901
902 2004-06-12  Eric Christopher  <echristo@redhat.com>
903
904         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
905         * config/s390/s390.md: Ditto.
906         * config/s390/s390.c: Ditto.
907         (s390_frame_info): Conditionalize frame and setup info on
908         TARGET_TPF_PROFILING.
909         (s390_arg_frame_offset): Ditto.
910
911 2004-06-12  Roger Sayle  <roger@eyesopen.com>
912
913         * fold-const.c (omit_two_operands): New function.
914         * tree.h (omit_two_operands): Prototype here.
915         * builtins.c (fold_builtin_unordered_cmp): New function to lower
916         C99 unordered comparison builtins to the appropriate tree nodes.
917         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
918         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
919         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
920         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
921         (simplify_builtin_memcmp, simplify_builtin_strncmp,
922         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
923         omit_two_operands function to build the required COMPOUND_EXPRs.
924
925 2004-06-12  Steven Bosscher <stevenb@suse.de>,
926             Andreas Jaeger  <aj@suse.de>
927
928         * gcse.c (record_set_info): Use predicates like REG_P.
929         (mems_conflict_for_gcse_p): Likewise.
930         (load_killed_in_block_p): Likewise.
931         (hash_expr_1): Likewise.
932         (insert_set_in_table): Likewise.
933         (gcse_constant_p): Likewise.
934         (hash_scan_set): Likewise.
935         (hash_scan_insn): Likewise.
936         (canon_list_insert): Likewise.
937         (record_last_mem_set_info): Likewise.
938         (record_last_set_info): Likewise.
939         (compute_hash_table_work): Likewise.
940         (mark_set): Likewise.
941         (mark_clobber): Likewise.
942         (mark_oprs_set): Likewise.
943         (compute_transp): Likewise.
944         (find_avail_set): Likewise.
945         (cprop_insn): Likewise.
946         (do_local_cprop): Likewise.
947         (cprop): Likewise.
948         (find_implicit_sets): Likewise.
949         (find_bypass_set): Likewise.
950         (bypass_conditional_jumps): Likewise.
951         (insert_insn_end_bb): Likewise.
952         (pre_insert_copy_insn): Likewise.
953         (compute_transpout): Likewise.
954         (next_ls_expr): Likewise.
955         (invalidate_any_buried_refs): Likewise.
956         (compute_ld_motion_mems): Likewise.
957         (reg_set_info): Likewise.
958         (reg_clear_last_set): Likewise.
959         (find_moveable_store): Likewise.
960         (compute_store_table): Likewise.
961         (find_loads): Likewise.
962         (store_killed_in_insn): Likewise.
963         (insert_insn_start_bb): Likewise.
964         (reg_set_between_after_reload_p): Likewise.
965         (reg_used_between_after_reload_p): Likewise.
966         (is_jump_table_basic_block): Likewise.
967         (gcse_after_reload): Likewise.
968         (hash_scan_set_after_reload): Likewise.
969         (compute_hash_table_after_reload): Likewise.
970
971 2004-06-12  Steven Bosscher  <stevenb@suse.de>
972
973         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
974         (INSN_P): Don't look at the rtx code class, just explicitly
975         check for one of the tree RTX_INSN codes.
976
977 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
978
979         * c-typeck.c (default_function_array_conversion): Use
980         build_pointer_type not TYPE_POINTER_TO.
981
982 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
983
984         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
985         * configure, config.in: Regenerate.
986         * system.h: Unconditionally define bool as unsigned char,
987         BOOL_BITFIELD as unsigned int.
988         * domwalk.h: Use BOOL_BITFIELD.
989
990 2004-06-12  Andreas Jaeger  <aj@suse.de>
991
992         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
993         * libgcc-darwin.ver: Likewise.
994
995 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
996
997         * reload.c (find_reloads): Force reload for pseudo registers on big
998         endian machines.
999
1000 2004-06-11  Steven Bosscher <stevenb@suse.de>
1001
1002         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1003         Don't try to mark anything control dependent on the entry or
1004         exit blocks.
1005
1006 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1007
1008         Fix Bug 15899
1009         Fix Bug 15460
1010         * tree.h (SSA_NAME_VALUE): New macro.
1011         (struct tree_ssa_name): Add value_handle member.
1012         * tree-ssa-pre.c: Replaced.
1013         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1014         (struct cst_ann_d): New.
1015         (struct expr_ann_d): New.
1016         (union tree_ann_d): Add cst_ann, expr_ann.
1017         * tree-dfa.c (create_cst_ann): New function.
1018         (create_expr_ann): Ditto.
1019         * tree-flow-inline.h (cst_ann): New function.
1020         (expr_ann): Ditto.
1021         (get_cst_ann): Ditto.
1022         (get_expr_ann): Ditto..
1023
1024 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1025
1026         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1027         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1028         _U_Qfcmp library function.
1029         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1030         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1031
1032         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1033         unspec used for loading address from DLT.
1034         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1035         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1036         Don't use short code sequence when loading the address of a nonlocal
1037         label.
1038         (nonlocal_goto): New expander.
1039         (indirect_goto): New jump pattern for nonlocal gotos.
1040         (short_jump): Remove extra whitespace.
1041         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1042         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1043         pattern.
1044
1045 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1046
1047         * expmed.c (synth_mult): Add an additional MODE argument for the
1048         machine mode of the multiplication.  Update recursive calls.  Use
1049         mode instead of word_mode for determining operation costs.
1050         (choose_mult_variant): Update calls to synth_mult with "mode".
1051
1052 2004-06-11  Richard Henderson  <rth@redhat.com>
1053
1054         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1055         and makes_aliased_stores.
1056
1057 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1058
1059         * doc/install.text (--enable-shared): Fix typo.
1060
1061 2004-06-11  Richard Henderson  <rth@redhat.com>
1062
1063         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1064         argument.  Use internal post for call to gimplify_expr.  Tidy
1065         rounded type size computation.
1066         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1067         get_initialized_tmp_var.
1068
1069 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1070
1071         * doc/install.texi (--enable-shared): Update libobjc's shared library
1072         status.  Remove reference to libf2c.
1073
1074 2004-06-11  Jason Merrill  <jason@redhat.com>
1075
1076         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1077         * config/i386/i386.c (ix86_va_arg): Remove.
1078         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1079         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1080         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1081         * config/alpha/alpha.c (alpha_va_arg): Remove.
1082         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1083         * config/sparc/sparc.c (sparc_va_arg): Remove.
1084
1085         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1086         assignment might throw.
1087         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1088         expressions.
1089
1090 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1091
1092         PR 15886:
1093         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1094
1095 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1096
1097         * doc/install.texi (Prerequisites): Update documentation of
1098         required versions of autoconf and automake.  Remove mention of
1099         libf2c.
1100
1101 2004-06-11  Jason Merrill  <jason@redhat.com>
1102
1103         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1104         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1105
1106 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1107
1108         * typeclass.h: Add GPL plus exception license.  Add include
1109         guard.
1110
1111 2004-06-10  Jason Merrill  <jason@redhat.com>
1112
1113         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1114         of an aggregate_value_p type.
1115
1116 2004-06-10  Jeff Law  <law@redhat.com>
1117
1118         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1119         code when we are in gimple form.
1120
1121 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1122
1123         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1124         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1125         (highest_ssa_version): Remove.
1126         * tree-outof-ssa.c (new_temp_expr_table): Replace
1127         highest_ssa_version with num_ssa_names.
1128         (dump_replaceable_exprs): Likewise.
1129         (rewrite_vars_out_of_ssa): Likewise.
1130         * tree-ssa-ccp.c (initialize): Likewise
1131         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1132         * tree-ssa-dce.c (tree_dce_init): Likewise.
1133         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1134         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1135         (dump_var_map): Likewise.
1136         * tree-ssa.c (verify_ssa): Likewise.
1137         (kill_redundant_phi_nodes): Likewise.
1138         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1139         * tree-ssanames.c: Include tree-flow.h
1140         (ssa_names): New varray.
1141         (init_ssa_names): Initialize ssa_names.
1142         Reserve the first slot of the ssa_names table.
1143         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1144         Assign version numbers using num_ssa_names.
1145
1146 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1147
1148         * doc/sourcebuild.texi (Front End): Add details of more
1149         installation documentation required.
1150
1151 2004-06-10  Brian Booth  <bbooth@redhat.com>
1152
1153         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1154         of V_MAY_DEF and V_MUST_DEF.
1155         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1156         num_vdefs to num_v_may_defs.
1157         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1158         to v_may_def.
1159         (redirect_immediate_uses): Ditto.
1160         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1161         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1162         Also add code to sum up the number of v_must_defs.
1163         (vdefs_disappeared_p): Replace with...
1164         (v_may_defs_disappeared_p): This.
1165         (v_must_defs_disappeared_p): New function.
1166         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1167         Also add code to mark new variables found in V_MUST_DEFs for
1168         renameing.
1169         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1170         vdef_ops to v_may_def_ops.
1171         (get_vdef_ops): Replace with...
1172         (get_v_may_def_ops): This.
1173         * tree-flow-inline.h (get_vdef_ops): Replace with...
1174         (get_v_may_def_ops): This.
1175         (get_v_must_def_ops): New function.
1176         (get_vdef_result_ptr): Replace with...
1177         (get_v_may_def_result_ptr): This.
1178         (get_vdef_op_ptr): Ditto with...
1179         (get_v_may_def_op_ptr); This.
1180         (get_v_must_def_op_ptr): New function.
1181         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1182         to v_may_def. Also add code to mark statements with
1183         V_MUST_DEFs as definition sites.
1184         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1185         add code to register new V_MUST_DEFs made by the statement.
1186         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1187         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1188         add check for V_MUST_DEFs.
1189         (find_replaceable_in_bb): Ditto.
1190         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1191         to v_may_def. Also add code to dump V_MUST_DEFs.
1192         * tree-sra.c (mark_all_vdefs): Replace with...
1193         (mark_all_v_may_defs): This.
1194         (mark_all_v_must_defs): New function.
1195         (create_scalar_copies): Replace call to mark_all_vdefs with
1196         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1197         (scalarize_structures): Rename occurences of vdef to v_may_def.
1198         Also add a check for V_MUST_DEFs.
1199         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1200         * tree-ssa-alias.c (global_var): Update comment.
1201         (compute_may_aliases): Ditto.
1202         (compute_points_to_and_addr_escape): Rename occurences of vdef
1203         to v_may_def. Also add code to mark variables in V_MUST_DEF
1204         operands as being written to.
1205         (group_aliases): Update comment.
1206         (maybe_create_global_var): Ditto.
1207         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1208         Also add a check for V_MUST_DEFs on GIMPLE registers.
1209         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1210         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1211         to v_may_def. Also add code to mark all V_MUST_DEF operands
1212         VARYING.
1213         (initialize): Ditto.
1214         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1215         code to update SSA_NAMEs in V_MUST_DEFs.
1216         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1217         to v_may_def.
1218         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1219         occurences of vdef to v_may_def. Also add code to mark statements
1220         with V_MUST_DEFs as necessary.
1221         (propagate_necessity): Rename occurences of vdef to v_may_def.
1222         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1223         occurences of vdef to v_may_def. Also add code to mark operands
1224         in V_MUST_DEFs for renaming.
1225         (eliminate_redundant_computations): Rename occurences of vdef
1226         to v_may_def.
1227         (record_equivalences_from_stmt): Rename occurences of vdef
1228         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1229         (optimize_stmt): Remove unnesessary variable vdefs. Update
1230         comment.
1231         (register_definitions_for_stmt): Rename occurences of vdef
1232         to v_may_def. Also add code to register definitions made with
1233         V_MUST_DEFs.
1234         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1235         (fix_stmt_v_may_defs): This.
1236         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1237         (dse_optimize_stmt): Ditto.
1238         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1239         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1240         used in virtual operators.
1241         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1242         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1243         renaming.
1244         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1245         definitions.
1246         (build_vdefs): Renamed to...
1247         (build_v_may_defs): This.
1248         (build_v_must_defs): New variable.
1249         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1250         v_may_def_ops.
1251         (append_vdef): Replace with...
1252         (append_v_may_def): This.
1253         (append_v_must_def): New function.
1254         (NUM_FREE): Increment for V_MUST_DEF
1255         (optype_freelist): Increment its size for V_MUST_DEF
1256         (allocate_vdef_optype): Replace with...
1257         (allocate_v_may_def_optype): This.
1258         (allocate_v_must_def_optype): New function.
1259         (free_vdefs): Replace with...
1260         (free_v_may_defs): This.
1261         (free_v_must_defs): New function.
1262         (remove_vdefs): Replace with...
1263         (remove_v_may_defs): This.
1264         (remove_v_must_defs): New function.
1265         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1266         add code to initialize build_v_must_defs.
1267         (finalize_ssa_vdefs): Replace with...
1268         (finalize_ssa_v_may_defs): This.
1269         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1270         (finalize_ssa_v_must_defs): New function.
1271         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1272         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1273         (verify_start_operands): Rename occurences of vdef to v_may_def.
1274         Also add check for build_v_must_defs.
1275         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1276         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1277         killing definitions.
1278         (get_expr_operands): Update comment and use opf_kill_def for
1279         killing definitions.
1280         (add_stmt_operand): Replace code that appends VDEFs with code
1281         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1282         otherwise.
1283         (add_call_clobber_ops): Update comments.
1284         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1285         (v_may_def_optype_d): This.
1286         (v_must_def_optype_d): New structure.
1287         (VDEF_OPS): Replace with...
1288         (V_MAY_DEF_OPS): This.
1289         (STMT_VDEF_OPS): Same with...
1290         (STMT_V_MAY_DEF_OPS): This.
1291         (NUM_VDEFS): And...
1292         (NUM_V_MAY_DEFS): This.
1293         (VDEF_RESULT_PTR): As well as...
1294         (V_MAY_DEF_RESULT_PTR): This.
1295         (VDEF_RESULT): Same goes for...
1296         (V_MAY_DEF_RESULT): This.
1297         (VDEF_OP_PTR): And...
1298         (V_MAY_DEF_OP_PTR): This.
1299         (VDEF_OP): And...
1300         (V_MAY_DEF_OP): This.
1301         (V_MUST_DEF_OPS): New macro.
1302         (STMT_V_MUST_DEF_OPS): Ditto.
1303         (NUM_V_MUST_DEFS): Ditto.
1304         (V_MUST_DEF_OP_PTR): Ditto.
1305         (V_MUST_DEF_OP): Ditto.
1306         (remove_vdefs): Replace signature with...
1307         (remove_v_may_defs): This.
1308         (remove_v_must_defs): New function signature.
1309         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1310         with calls to remove_v_may_defs and remove_v_must_defs.
1311         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1312         Also add code that marks left occurences of operands in V_MUST_DEFs.
1313         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1314         to v_may_def. Also add check for V_MUST_DEFs.
1315         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1316
1317 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1318
1319         PR target/15653
1320         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1321         insn.
1322
1323 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1324
1325         PR web/15263
1326         * doc/install.texi: Remove superfluous linebreak.
1327
1328 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1329
1330         * builtins.c (expand_builtin): Fall back to library function call for
1331         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1332         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1333         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1334         IMAGPART_EXPR respectively.
1335
1336 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1337
1338         * sh.c (dump_table): New argument start.  Changed caller.
1339         (fixup_mova): New function.
1340         (find_barrier): Use it.
1341         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1342         If the label a mova refers to is above the mova itself, change
1343         the mova into a load.
1344         * sh.md (*casesi_worker): Rename to:
1345         (casesi_worker_1).
1346         (casesi_worker_2): New insn.
1347
1348 2004-06-10  Jason Merrill  <jason@redhat.com>
1349
1350         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1351         hook signature.
1352         * tree-gimple.h: Adjust.
1353         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1354         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1355         Use fold_convert.
1356         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1357         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1358         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1359         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1360         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1361         Gimplify valist rather than calling stabilize_va_list.
1362
1363 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1364
1365         * Makefile.in (df.o): Remove fibheap dependency.
1366         * df.h: Do not include sbitmap.h.
1367         (struct ref): New field "data".
1368         (DF_REF_DATA): New accessor macro.
1369         (struct df): Field "dom" removed.
1370         (df_analyze_subcfg): New function.
1371         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1372         (transfer_function): ... new type.
1373         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1374         (iterative_dataflow): ... new function.
1375         (enum set_representation, struct dataflow): New.
1376         * df.c: Do not include fibheap.h.
1377
1378         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1379         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1380         prune_to_subcfg, df_bb_modify): New functions.
1381         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1382         df_refs_update, df_reg_table_realloc, df_ref_create,
1383         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1384         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1385         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1386
1387         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1388         (df_rd_transfer_function, df_ru_transfer_function,
1389         df_lr_transfer_function): Type of bitmaps changed to void *.
1390         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1391         (hybrid_search): ... new function.
1392         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1393         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1394         a worklist.  Do not process basic blocks unnecessarily.
1395
1396 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1397
1398         * fold-const.c (fold_abs_const): Make extern.
1399         * tree.h (fold_abs_const): Prototype here.
1400         * builtins.c (fold_builtin_fabs): New function to transform
1401         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1402         (fold_builtin_abs): New function to transform abs, labs, llabs
1403         and imaxabs builtins into ABS_EXPR tree nodes.
1404         (expand_builtin): Fall back to a function call for abs, labs,
1405         llabs and imaxabs builtins that survive constant folding.
1406         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1407         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1408
1409 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1410
1411         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1412         leaf function without unwind info at RP 0.
1413
1414 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1415
1416         PR c++/14791
1417         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1418         (fileptr_type_node): Define.
1419         * tree.c (build_common_tree_nodes_2): Initialize
1420         fileptr_type_node to ptr_type_node.
1421         * c-common.c (c_common_nodes_and_builtins): For C++, make
1422         fileptr_type_node a distinct type copy.
1423         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1424         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1425         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1426         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1427         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1428         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1429         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1430         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1431         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1432         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1433         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1434         the above *FILEPTR* types instead of *PTR*.
1435
1436 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1437
1438         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1439         match.
1440
1441 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1442
1443         * fold-const.c (fold_not_const): New function.
1444         (fold) <ABS_EXPR>: Don't bother testing wins.
1445         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1446         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1447
1448 2004-06-09  Richard Henderson  <rth@redhat.com>
1449
1450         PR middle-end/15228
1451         * function.c (assign_parms): Always set_mem_align with the computed
1452         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1453
1454 2004-06-09  Richard Henderson  <rth@redhat.com>
1455
1456         PR opt/15108
1457         * tree-tailcall.c (find_tail_calls): Don't check early for
1458         tail_recursion failure.
1459
1460 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1461
1462         Move SSA_NAME annotations into tree_ssa_name.
1463
1464         * tree-dfa.c (create_ssa_name_ann): Remove.
1465         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1466         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1467         (struct ssa_name_ann_d): Remove.
1468         (union tree_ann_d): Update.
1469         (ssa_name_ann_t): Remove.
1470         * tree-ssa-alias.c: (get_ptr_info): New local function.
1471         Replace references to ssa_name_ann_t with struct ptr_info_def.
1472         * tree-ssa-operands.c (get_expr_operands): Likewise.
1473         * tree.h (SSA_NAME_PTR_INFO): Define.
1474         (struct ptr_info_def): Declare.
1475         (struct tree_ssa_name): Add field 'ptr_info'.
1476
1477 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1478
1479         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1480         misplaced ')'.
1481
1482 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1483
1484         * config/i386/k6.md: Rewrite using the DFA model.
1485         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1486         cost of load-operation insns for the K6.
1487         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1488         (ia32_multipass_dfa_lookahead): Likewise.
1489
1490 2004-06-09  Richard Henderson  <rth@redhat.com>
1491
1492         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1493         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1494
1495 2004-06-09  Richard Henderson  <rth@redhat.com>
1496
1497         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1498
1499 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1500
1501         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1502         (CPP_ID_DATA_H): New.
1503         (gtype-desc.o): Update dependencies.
1504         (GTFILES): Use CPP_ID_DATA_H.
1505
1506 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1507
1508         Revert:
1509         PR c++/15815
1510         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1511         * doc/extend.texi: Deprecate #pragma interface and #pragma
1512         implementation.
1513
1514 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1515
1516         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1517
1518 2004-06-09  Richard Henderson  <rth@redhat.com>
1519
1520         * basic-block.h (struct edge_def): Add goto_locus.
1521         * tree-cfg.c (make_goto_expr_edges): Set it.
1522         (disband_implicit_edges): Use it.
1523         * tree-pretty-print.c (dump_implicit_edges): Print it.
1524
1525 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1526
1527         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1528
1529 2004-06-08  Jason Merrill  <jason@redhat.com>
1530
1531         Gimplify VA_ARG_EXPR into simpler forms.
1532         * target.h: Add gimplify_va_arg_expr hook.
1533         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1534         * fold-const.c (build_fold_addr_expr)
1535         (build_fold_addr_expr_with_type): Move from gimplify.c.
1536         * tree.h: Declare them.
1537         * gimplify.c (gimplify_and_add): New fn.
1538         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1539         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1540         (gimplify_expr): Use build_fold_*.
1541         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1542         don't know how to gimplify it.
1543         * builtins.c (std_gimplify_va_arg_expr): New fn.
1544         (dummy_object): New static fn.
1545         (gimplify_va_arg_expr): New fn.
1546         (stabilize_va_list): Use build_fold_*.
1547         * tree-gimple.h: Declare new fns.
1548         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1549         (ix86_gimplify_va_arg): New fn.
1550         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1551         (ia64_gimplify_va_arg): New fn.
1552         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1553         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1554         * alias.c (get_varargs_alias_set): Just return 0 for now.
1555
1556         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1557
1558 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1559
1560         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1561         of convert.
1562         * tree-inline.c (setup_one_parameter): Likewise.
1563         * tree-sra.c (csc_build_component_ref): Likewise.
1564         * tree-ssa-ccp.c (ccp_fold): Likewise.
1565         * tree-ssa-copy.c (cprop_operand): Likewise.
1566         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1567         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1568
1569 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1570
1571         PR rtl-optimization/15521:
1572         * sched-int.h (in_post_call_group_p): Change type to enum.
1573         * sched-deps.c (sched_analyze_insn):
1574         (sched_analyze): When in_post_call_group_p is post_call_initial,
1575         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1576         and also reset in_post_call_group_p to post_call.
1577         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1578         initialize in_post_call_group_p as post_call_initial.
1579         (init_deps): initialize in_post_call_group_p to not_post_call.
1580
1581 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1582
1583         PR ada/6637
1584         * doc/install.texi: List ada, libada as options to --enable-shared
1585
1586 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1587
1588         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1589         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1590         config.in entries.
1591         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1592         if hard links are not available.
1593         * configure: Regenerate.
1594         * config.in: Regenerate.
1595
1596 2004-06-08  Per Bothner  <per@bothner.com>
1597
1598         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1599
1600 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1601
1602         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1603         Correct formatting.
1604
1605 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1606
1607         PR target/15790
1608         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1609
1610 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1611
1612         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1613         POINTER_TYPE and INTEGER_TYPE.
1614
1615 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1616
1617         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1618         defined.
1619
1620 2004-06-08  Jeff Law  <law@redhat.com>
1621
1622         * doc/contrib.texi: Add entries for Stefan Olsson and
1623         Ola Ronnerup.
1624
1625 2004-06-08  DJ Delorie  <dj@redhat.com>
1626
1627         * toplev.c (floor_log2_wide): Replace loop with faster bit
1628         operations.
1629         (exact_log2_wide): Define in terms of the above.
1630         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1631         available.
1632
1633 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1634
1635         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1636         Make sure that we are in INDIRECT mode when getting the
1637         stub name.
1638
1639 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1640
1641         * h8300.md (extendqisi2_h8300): Add constraints.
1642         (ldm_h8300s_4_normal): Fix typo.
1643
1644 2004-06-08  Richard Henderson  <rth@redhat.com>
1645
1646         * gimple-low.c (struct lower_data): Replace the_return_label and
1647         one_return_stmt with return_statements.
1648         (lower_function_body): Process the entire list of return_statements.
1649         (lower_return_expr): Check source value before unifying return_exprs.
1650         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1651         for !aggregate_value_p.
1652         * tree-gimple.c: Update RETURN_EXPR grammer.
1653
1654 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1655
1656         PR target/15598
1657         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1658
1659 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1660
1661         PR rtl-optimization/15717
1662         * config/i386/i386.c (legitimate_constant_p): Do not allow
1663         x - symbol_ref.
1664
1665 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1666
1667         * gimplify.c (copy_if_shared_r): Revert:
1668         2004-05-21  Richard Henderson  <rth@redhat.com>
1669         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1670
1671 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1672
1673         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1674         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1675         (init_expmed): Initialize these cost arrays as appropriate.
1676         (store_bit_field, extract_bit_field): Correct whitespace.
1677         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1678         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1679         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1680         word_mode or compute_mode as appropriate.
1681
1682 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1683
1684         PR target/15783
1685         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1686         parameter.  Enumerate the registers inside the PARALLEL.
1687         (function_arg): Adjust call to function_arg_union_value.
1688         (function_value): Likewise.
1689
1690         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1691
1692 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1693
1694         * real.c (real_copysign): New function to implement libm's copysign.
1695         * real.h (real_copysign): Prototype here.
1696         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1697         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1698         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1699         fold_builtin_isdigit): Add function prototypes.
1700         (fold_builtin_copysign): New function to fold copysign, copysignf
1701         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1702         constant arguments at compile-time using real_copysign.  Fold
1703         copysign(X,Y) as fabs(X) if Y is always non-negative.
1704         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1705         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1706
1707 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1708
1709         * tree.c (iterative_hash_expr): Use real_hash.
1710
1711 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1712
1713         PR c/14765
1714         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1715         NULL_TREE.
1716
1717 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1718
1719         PR c++/15815
1720         * doc/extend.texi: Deprecate #pragma interface and #pragma
1721         implementation.
1722
1723 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1724
1725         PR middle-end/15666
1726         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1727         builtin decl as well.
1728
1729 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1730
1731         PR c/14649
1732         * c-typeck.c (require_constant_value, require_constant_elements):
1733         Move declarations to the top of the file.
1734         (build_function_call): If we require a constant value, fold with
1735         fold_initializer.  If the result is a constant, and the function
1736         wasn't called using __builtin_foo, issue a pedantic warning.
1737         (build_unary_op): If we require a constant value, fold tree with
1738         fold_initializer.
1739         (build_binary_op): Use require_constant_value to determine whether
1740         to call fold or fold_initializer.
1741
1742 2004-06-07  Richard Henderson  <rth@redhat.com>
1743
1744         * gimple-low.c (struct lower_data): Add the_return_label and
1745         one_return_stmt.
1746         (lower_function_body): Initialize and use them.
1747         (lower_return_expr): New.
1748         (lower_stmt): Call it.
1749         * gimplify.c (gimplify_return_expr): Force the argument to be either
1750         null or a result_decl.
1751         * tree-gimple.c: Update gimple grammer to match.
1752         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1753         coalescing of result_decls.
1754
1755 2004-06-07  Richard Henderson  <rth@redhat.com>
1756
1757         PR rtl-opt/15193
1758         * expmed.c (extract_bit_field): Fix vector_extract return.
1759
1760         * config/i386/i386.md (negv4sf2): New pattern.
1761
1762 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1763
1764         PR c++/15337
1765         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1766         message.
1767
1768 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1769
1770         * config.in: Regenerate.
1771
1772 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1773
1774         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1775         SWITCH_LABELS are always sorted.
1776
1777 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1778
1779         * hooks.c (hook_int_void_1): New generic hook.
1780         * hooks.h (hook_int_void_1): Add prototype.
1781         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1782         Define to hook_int_void_1.
1783         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1784         with dummies for the new one.
1785
1786 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1787
1788         * tree.h (lvalue_or_else): Delete function prototype.
1789         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1790
1791 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1792
1793         PR target/14542
1794         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1795         a live change of a register after peephole replacement.
1796
1797 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1798
1799         PR c/13519
1800         * c-typeck.c (composite_type, common_pointer_type): New functions.
1801         (common_type): Split parts into composite_type and
1802         common_pointer_type.  Ensure that arithmetic operations return
1803         unqualified types without attributes.  Don't make composite type
1804         of signed enum and compatible integer be unsigned.
1805         (build_conditional_expr, build_binary_op): Use
1806         common_pointer_type.
1807         * c-decl.c (merge_decls): Use composite_type.
1808         * c-tree.h (composite_type): Declare.
1809
1810 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1811
1812         PR target/14457
1813         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1814         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1815         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1816         (inhibit_libc): Must define.
1817         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1818         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1819         ("xorhi3"): Likewise.
1820
1821 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1822
1823         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1824         always_inline pass.
1825
1826 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1827
1828         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1829         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1830
1831 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1832
1833         * regclass.c (init_reg_sets): Check for missing registers in target
1834         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1835
1836 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1837
1838         * Makefile.in (MKDEPS_H): New shorthand.
1839         (c-opts.o): Update dependencies.
1840         * c-opts.c: Include mkdeps.h.
1841         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1842         not cpp_add_dependency_target.
1843
1844 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1845
1846         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1847         * config/v850/v850.md: Convert to DFA scheduler description.
1848
1849 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1850
1851         PR fortran/15478
1852         * doc/install.texi: Document GMP as prerequisite. Document
1853         --with-gmp and --with-gmp-dir configure options.
1854         * fortran/gfortran.texi: Remove section "Compiling and testing",
1855         remove TOC reference to it.
1856
1857 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1858
1859         * combine.c(simplify_shift_const): Check shift amount is a
1860         CONST_INT.
1861
1862 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1863
1864         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1865         opening asm_out_file.
1866         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1867         reading asm_out_file. Replace fflush after reading asm_out_file
1868         with fseek.
1869         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1870         default and add to HOST_HOOKS_INITIALIZER.
1871         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1872         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1873         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1874         to set mmi.offset padding.
1875          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1876         $(srcdir)/config/i386/winnt.c.
1877         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1878         (i[34567]86-*-uwin*): Likewise.
1879         *i[34567]86-*-interix3*): Likewise.
1880         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1881         * config/i386/host-mingw32.c: New file.
1882         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1883         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1884         (extern_head): Likewise.
1885         (struct export_list) Likewise.
1886         (export_head): Likewise.
1887         (i386_pe_record_external_function): Use ggc_alloc.
1888         (i386_pe_record_exported_symbol): Likewise.
1889         Include "gt-winnt.h" at end.
1890         * doc/hostconfig.texi: Document
1891         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1892
1893 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1894
1895         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1896         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1897         trailing whitespace before EOLs and before TABs.
1898         (MAX_CODE_ALIGN): Remove unused macro.
1899         (CALL_USED_REGISTERS): Reformat and add comments.
1900
1901 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1902
1903         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1904         to enumerate -lmudflap* and dependencies when linking.
1905
1906 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1907
1908         PR target/15822
1909         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1910
1911 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1912
1913         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1914         * genconditions.c (write_header): Back out removal of reload.h.
1915
1916 2004-06-04  Jan Hubicka  <jh@suse.cz>
1917
1918         Re-apply hopefully fixed patch:
1919         * i386.md (UNSPECV_EH_RETURN): Kill.
1920         (eh_return): Use jump_insn.
1921         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1922
1923 2004-06-04  Jeff Law  <law@redhat.com>
1924
1925         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1926
1927 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1928
1929         * except.c (for_each_eh_region): New function.
1930         * except.h (for_each_eh_region): Add a prototype for it.
1931         * tree-cfg.c (update_eh_labels): New function, callback for
1932         for_each_eh_region.
1933         (label_for_bb): Make global static, unfortunately.
1934         (cleanup_dead_labels): Also update label references for
1935         exception regions.
1936
1937 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1938
1939         * config/mips/mips.c (struct irix_section_align_entry): Fix
1940         GTY marker.
1941
1942 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1943
1944         * toplev.c (check_global_declarations): Don't ask for
1945         DECL_ASSEMBLER_NAME unless the function really is declared
1946         static and not defined.
1947
1948 2004-06-03  Matt Austern  <austern@apple.com>
1949
1950         PR c++/15428
1951         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1952         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1953         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1954         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1955         documentation to reflect the new macro name and to clarify its
1956         meaning.
1957
1958 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1959
1960         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1961
1962 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1963
1964         * config/darwin.c (machopic_indirect_data_reference): Copy
1965         the SYMBOL_REF_DECL from the original RTX for the new
1966         non-lazy pointer RTX.
1967
1968 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1969
1970         * tree.h: Remove include of version.h
1971         * c-cppbuiltin.c: Include version.h
1972         * diagnostic.c: Include version.h
1973         * dwarf2out.c: Include version.h
1974         * toplev.c: Include version.h
1975         * vmsdbgout.c: Include version.h
1976         * Makefile.in: Remove dependency on version.h from TREE_H, and
1977         add dependencies to required .o targets
1978
1979 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1980
1981         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1982         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1983         (TARGET_H): Add insn-modes.h.
1984         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1985         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1986         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1987         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1988         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1989         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1990         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1991         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1992         CFGLAYOUT_H.
1993         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1994         Replace ra.h with RA_H.
1995         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1996         insn-recog.o): Replace resource.h with RESOURCE_H.
1997         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1998         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1999         with SCHED_INT_H.
2000         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2001         ra-rewrite.o): Replace df.h with DF_H.
2002         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2003         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2004         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2005         (insn-conditions.o): Remove unused reload.h.
2006         * cfglayout.h: Add include guard.  Include basic-block.h.
2007         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2008         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2009         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2010         basic-block.h.
2011         * genconditions.c:  Remove reload.h.
2012         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2013         hard-reg-set.h, insn-modes.h.
2014         * resource.h: Add include guard.  Include hard-reg-set.h.
2015         * sched-int.h:  Add include guard.  Include insn-attr.h,
2016         basic-block.h, rtl.h.
2017         * target.h: Add include guard.  Include insn-modes.h.
2018         * tree-ssa-live.h: Include partition.h.
2019
2020 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2021                 Kenneth Zadeck <zadeck@naturalbridge.com>
2022
2023         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2024         (add_var_to_ssa_edges_worklist): Add value argument.
2025         Update callers.
2026         Use new worklist.
2027         (process_ssa_edge_worklist): New function.
2028         (tree_ssa_ccp): Move worklist processing core to
2029         process_ssa_edge_worklist, and just call that for the two worklists.
2030
2031 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2032
2033         * basic-block.c (tail_recursion_label_list): Don't declare.
2034         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2035         accordingly.
2036         * cfgbuild.c (find_label_refs): Remove.
2037         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2038         * cfgcleanup.c (tail_recursion_label_p): Remove.
2039         (merge_blocks_move): Do not check for tail recursion.
2040         (try_optimize_cfg): Likewise.
2041         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2042         * cfgrtl.c (tail_recursion_label_list): Remove.
2043         * except.c (remove_unreachable_regions): Don't handle
2044         CALL_PLACEHOLDER insns.
2045         (convert_from_eh_region_ranges_1, can_throw_internal,
2046         can_throw_external): Likewise.
2047         * function.c (free_after_compilation): Don't clear
2048         x_tail_recursion_label.
2049         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2050         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2051         (reorder_blocks_1): Likewise.
2052         * function.h (struct function): Remove x_tail_recursion_label
2053         member.  Don't define tail_recursion_label.
2054         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2055         * print-rtl.c (print_rtx): Likewise.
2056         * rtl.def (CALL_PLACEHOLDER): Remove.
2057         * rtl.h (sibcall_use_t): Remove enum.
2058         (optimize_sibling_and_tail_recursive_calls,
2059         replace_call_placeholder): Remove function prototypes.
2060         * stmt.c (tail_recursion_args): Remove.
2061         (optimize_tail_recursion): Remove.
2062         (expand_return): Don't check for possible tail recursion.
2063         * tree.h (optimize_tail_recursion): Remove prototype.
2064
2065 2004-06-02  Jan Hubicka  <jh@suse.cz>
2066
2067         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2068         return_stmt.
2069
2070 2004-06-02  Jason Merrill  <jason@redhat.com>
2071
2072         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2073         Do include c-parse.in.
2074
2075 2004-06-02  Eric Christopher  <echristo@redhat.com>
2076
2077         * c-typeck.c (common_type): Don't lose type qualifiers
2078         when creating new variants.
2079
2080 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2081
2082         PR tree-optimization/14042
2083         PR tree-optimization/14729
2084         PR tree-optimization/14736
2085         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2086         Check the type which the pointer points to
2087         instead of the pointer types.
2088
2089 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2090
2091         PR tree-optimization/15738.
2092         * builtins.c (fold_builtin_strchr): Transform
2093         strrchr (s, '\0') to strchr (s, '\0').
2094
2095 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2096
2097         * i386.c (ix86_adjust_cost): Don't increase the cost for
2098         load+operation for PROCESSOR_PENTIUMPRO, it is already
2099         modelled in the DFA description
2100
2101 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2102
2103         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2104         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2105         (ALIAS_H, EMIT_RTL_H): New.
2106         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2107         (cfgcleanup.o): Add EMIT_RTL_H.
2108         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2109         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2110         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2111         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2112         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2113         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2114         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2115         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2116         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2117         set_mem_size): Move to emit-rtl.h.
2118         * emit-rtl.h: New.
2119         * alias.h: New.
2120
2121 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2122
2123         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2124         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2125         Adjust recursive calls to self.
2126         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2127
2128 2004-06-01  Richard Henderson  <rth@redhat.com>
2129             Andrew Pinski  <pinskia@physics.uc.edu>
2130
2131         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2132         (primary): Handle offsetof.  Add error productions for faux functions.
2133         Move component_ref objc checking to build_component_ref.
2134         (reswords): Add offsetof.
2135         (rid_to_yy): Add offsetof.
2136         * c-tree.h (build_offsetof): Declare.
2137         * c-common.h (objc_is_public): Declare.
2138         * c-typeck.c (build_component_ref): Check objc_is_public.
2139         (build_offsetof): New.
2140         * stub-objc.c (objc_is_public): New.
2141         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2142         from is_public.
2143         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2144         * doc/extend.texi (Offsetof): Move from C++ section to C section
2145         and rewrite for __builtin_offsetof.
2146
2147 2004-06-01  Peter Barada  <peter@the-baradas.com>
2148             Peter Jakubek  <peter@laseranimation.com>
2149
2150         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2151         a scratch to perform an add to memory.
2152
2153 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2154
2155         PR target/14018
2156         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2157         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2158         m68k_align_funcs): Remove.
2159         (override_options): Remove code to handle -malign-* options.
2160         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2161         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2162         (m68k_align_loops_string, m68k_align_jumps_string,
2163         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2164         m68k_align_funcs): Remove definitions.
2165
2166 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2167
2168         PR target/15626
2169         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2170         by the Sun linker in conjunction with the Sun assembler.
2171         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2172
2173 2004-06-01  Jeff Law  <law@redhat.com>
2174
2175         * stmt.c (expand_decl): Be more selective about calling
2176         mark_reg_pointer.
2177
2178 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2179
2180         PR objc/7993
2181         * objc-act.c (is_private): Do not emit the 'instance variable %s
2182         is declared private' error.
2183         (is_public): Emit the error after calling is_private.
2184         (lookup_objc_ivar): If the instance variable is private, return 0
2185         - the instance variable is invisible here.
2186
2187 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2188
2189         * doc/invoke.texi (-static-libgcc): Explicitly mention
2190         non-GNU linkers.
2191
2192 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2193
2194         PR target/12968
2195         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2196
2197 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2198
2199         PR c/15749
2200         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2201         misuses of structures with flexible array members if
2202         in_system_header.
2203
2204 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2205
2206         PR target/15693
2207         * config/sparc/sparc.c (compare_operand): New predicate.
2208         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2209         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2210         operand is a ZERO_EXTRACT and the second operand is not zero,
2211         force the former to a register.
2212         (cmpdi expander): Likewise.
2213
2214 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2215
2216         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2217         looks at.
2218         * alias.c (alias_invariant_size): Make alias_invariant_size
2219         static, fix GTY marker.
2220
2221 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2222
2223         PR tree-optimization/15743.
2224         * builtins.c (fold_builtin_1): Fold index() and rindex().
2225
2226 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2227
2228         PR middle-end/15069
2229         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2230         into "X < 0" (where C is the signbit) if X's type is a full mode.
2231
2232 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2233
2234         * pa.md: Disable the peephole2 patterns that generate indexed
2235         floating-point stores when indexing is disabled.
2236
2237 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2238
2239         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2240         (pp_c_right_bracket): Likewise.
2241         (pp_c_star): Likewise.
2242         (pp_c_ampersand): Define.
2243         * c-pretty-print.h (pp_c_left_bracket): Declare.
2244         (pp_c_right_bracket): Likewise.
2245         (pp_c_star): Likewise.
2246         (pp_c_ampersand): Likewise.
2247
2248 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2249
2250         * config/sol2.h (__enable_execute_stack): ANSIfy function
2251         definition.
2252
2253 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2254
2255         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2256         HAVE_DOS_BASED_FILESYSTEM.
2257
2258 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2259
2260         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2261         Only look at case labels if the immediate dominator is also
2262         the only predecessor.  Don't look for more case labels if the
2263         first seen is a case range.
2264
2265 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2266
2267         * builtins.c: Add a prototype for fold_builtin_strchr().
2268
2269 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2270
2271         Revert this patch:
2272         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2273
2274         * combine.c (gen_binary): Remove.
2275         (known_cond, simplify_shift_const
2276         find_split_point, combine_simplify_rtx,
2277         simplify_if_then_else, simplify_set,
2278         simplify_logical, expand_field_assignment,
2279         extract_left_shift, force_to_mode,
2280         if_then_else_cond, apply_distributive_law,
2281         simplify_and_const_int, simplify_shift_const,
2282         gen_lowpart_for_combine, simplify_comparison,
2283         reversed_comparison): Replace with
2284         simplify_gen_binary, simplify_gen_relational or
2285         distribute_and_simplify_rtx.
2286         (distribute_and_simplify_rtx): New function.
2287
2288 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2289
2290         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2291         when generating PIC code.
2292
2293 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2294
2295         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2296         (c_expand_body): here.
2297         (c_expand_decl): Move to ...
2298         * c-common.c (c_expand_decl): Here and remove check for nested
2299         functions.
2300         * c-common.h (c_expand_decl): Add prototype.
2301         * c-tree.h (c_expand_decl): Remove.
2302
2303 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2304
2305         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2306         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2307         fold_mathfn_compare, fold_inf_compare, fold,
2308         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2309         Use constant_boolean_node where appropriate.  Don't bother using
2310         fold_convert on the second argument to omit_one_operand.
2311
2312 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2313
2314         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2315         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2316         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2317         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2318         Add missing (but documented) tree nodes to the index.
2319
2320 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2321
2322         PR tree-optimization/14819
2323         * builtins.c (fold_builtin_strchr): New.
2324         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2325         with fold_builtin_strchr().
2326
2327 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2328
2329         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2330         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2331         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2332         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2333         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2334         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2335         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2336         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2337         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2338         formatting.
2339
2340 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2341
2342         * gimplify.c (sort_case_labels): New.  Split out from...
2343         (gimplify_switch_expr): ...here.  Use it.
2344         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2345         the SWITCH_EXPR created here before leaving the function.
2346         * tree.c (sort_case_labels): Add prototype.
2347
2348 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2349
2350         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2351         of BOOLEAN_TYPE.
2352
2353 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2354
2355         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2356         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2357         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2358         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2359         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2360         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2361         comment typos.  Follow spelling conventions.
2362
2363 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2364
2365         * gengtype-yacc.y: Add NESTED_PTR token.
2366         (option): Record `nested_ptr' option.
2367         * gengtype-lex.l: Handle `nested_ptr' keyword.
2368         * gengtype.c (walk_type): Process `nested_ptr' option.
2369         * gengtype.h (struct nested_ptr_data): New.
2370         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2371         * stringpool.c (struct string_pool_data): Make 'entries' point to
2372         ht_identifier instead of tree.
2373         (gt_pch_save_stringpool): Don't adjust pointers.
2374         (gt_pch_restore_stringpool): Call ht_load.
2375
2376 2004-05-29  Jason Merrill  <jason@redhat.com>
2377
2378         * gimplify.c (gimplify_expr): Don't build a statement list
2379         if no gimplification was necessary.
2380
2381 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2382
2383         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2384         and %> as well as %'.
2385         * c-format.c: Use %< and %>.
2386         (gcc_diag_char_table, gcc_cdiag_char_table,
2387         gcc_cxxdiag_char_table): Update.
2388
2389 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2390
2391         * c-typeck.c (common_type): Correct comment.
2392
2393 2004-05-29  Peter Barada  <peter@the-baradas.com>
2394
2395         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2396         * config/m68k/m68k.c (const_method): Likewise.
2397         * config/m68k/m68k.c (const_int_cost): Likewise.
2398         * config/m68k/m68k.c (const_int_cost): Likewise.
2399         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2400
2401 2004-05-29  Peter Barada  <peter@the-baradas.com>
2402
2403         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2404         addressing.
2405         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2406         movsi,movhi,movqi insn patterns.
2407
2408 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2409
2410         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2411
2412         PR target/15720
2413         * config/darwin.c (machopic_indirect_call_target): Copy
2414         the SYMBOL_REF_DECL from the original RTX for the new
2415         stub RTX.
2416
2417 2004-05-28  DJ Delorie  <dj@redhat.com>
2418
2419         * stor-layout.c (place_field): Revert erroneous commit.
2420
2421 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2422
2423         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2424         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2425         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2426         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2427         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2428         vec_ste): Remove type checks for integral parameters and literals
2429         from '..._args_eq' macros.
2430
2431 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2432
2433         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2434
2435 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2436
2437         * testsuite/g++.dg/charset/function.cc: New.
2438
2439         * testsuite/gcc.dg/charset/function.c: New.
2440
2441         * c-decl.c (c_make_fname_decl): Free return value from
2442         fname_as_string.
2443
2444         * cp/decl.c (cp_make_fname_decl): Free return value from
2445         fname_as_string.
2446
2447         * c-common.c (fname_as_string): Translate if necessary.
2448
2449 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2450
2451         * stringpool.c: Add comments to PCH saving/restoring routines.
2452
2453 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2454
2455         * c-common.c (c_estimate_num_insns_1): Kill.
2456         (c_estimate_num_insns): Kill.
2457         * c-common.h (c_estimate_num_insns): Kill.
2458
2459         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2460         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2461         Remove comment about not checking for
2462         _POSIX_PRIORITY_SCHEDULING.
2463         * gthr-posix.c: Likewise.
2464
2465 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2466             Roger Sayle  <roger@eyesopen.com>
2467
2468         PR rtl-optimization/15649
2469         Add LTGT_EXPR and improve pretty-printing of unordered
2470         comparisons.
2471         * c-common.c (c_common_truthvalue_conversion):
2472         Handle LTGT_EXPR.
2473         * c-typeck.c (build_binary_op): Likewise.
2474         * dojump.c (do_jump): Likewise.
2475         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2476         * predict.c (tree_predict_by_opcode): Likewise.
2477         * real.c (real_compare): Likewise.
2478         * tree-cfg.c (verify_expr): Likewise.
2479         * tree-inline.c (estimate_num_insns_1): Likewise.
2480         * tree-pretty-print.c (dump_generic_node): Likewise.
2481         Handle ORDERED_EXPR, UNORDERED_EXPR.
2482         (op_symbol): Print unordered comparisons differently
2483         than ordered ones.
2484         * tree.def (LTGT_EXPR): New '<' tree code.
2485         * doc/c-tree.texi (Expressions): Document floating-point
2486         comparison nodes.
2487
2488         Fold comparisons between floating point values.
2489         * fold-const.c (enum comparison_code): New, from
2490         #define'd constants.  Define compcodes for unordered
2491         comparisons and for invalid transformations.
2492         (invert_tree_comparison): Add "honor_nans" parameter.
2493         (fold_truthop): Revamp to work on floating-point types too.
2494         (comparison_to_compcode): Support unordered comparisons.
2495         Use new enum comparison_code.
2496         (compcode_to_comparison): Likewise.
2497         (combine_compcodes): New function.
2498         (invert_truthvalue): Let invert_tree_comparison decide
2499         whether it is valid to fold the comparison.  Fold ORDERED
2500         and UNORDERED even if flag_unsafe_math_optimizations is off,
2501         and the remaining even if flag_unsafe_math_optimizations
2502         is off but we are under -fno-trapping-math.
2503         (fold_relational_const): Integer modes do not honor NaNs.
2504
2505 2004-05-28  Paul Brook  <paul@codesourcery.com>
2506
2507         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2508
2509 2004-05-28  Paul Brook  <paul@codesourcery.com>
2510
2511         * config/arm/arm.c (thumb_force_lr_save): New function.
2512         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2513         thumb_output_function_prologue): Use it.
2514         (thumb_expand_prologue): Set lr_save_eliminated.
2515
2516 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2517
2518         * config/mips/mips.md (extendsidi2): Tie the source and destination
2519         of the register alternative.  Split it into nothing.
2520
2521 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2522
2523         * rtl.h (skip_consecutive_labels): Declare.
2524         * emit-rtl.c (skip_consecutive_labels): New function.
2525         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2526         * jump.c (follow_jumps): Say what null return values mean.
2527
2528 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2529
2530         PR target/13250
2531         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2532
2533 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2534
2535         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2536         libgcc-std.ver.
2537         * config/sh/libgcc-std.ver: New file.
2538
2539 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2540
2541         * except.c: Revert change of 2004-05-26.
2542         * config/i386/i386.md: Revert change of 2004-05-27.
2543
2544 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2545
2546         * configure.ac: Remove --enable-tree-browser option.
2547         Define TREEBROWSER when ac_tree_checking is defined.
2548         * configure: Rebuilt.
2549
2550 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2551
2552         * expr.c (store_constructor): Restore sanity check on
2553         the size of the type before clearing.
2554
2555 2004-05-27  Jan Hubicka  <jh@suse.cz>
2556
2557         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2558
2559 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2560
2561         * combine.c (gen_binary): Remove.
2562         (known_cond, simplify_shift_const
2563         find_split_point, combine_simplify_rtx,
2564         simplify_if_then_else, simplify_set,
2565         simplify_logical, expand_field_assignment,
2566         extract_left_shift, force_to_mode,
2567         if_then_else_cond, apply_distributive_law,
2568         simplify_and_const_int, simplify_shift_const,
2569         gen_lowpart_for_combine, simplify_comparison,
2570         reversed_comparison): Replace with
2571         simplify_gen_binary, simplify_gen_relational or
2572         distribute_and_simplify_rtx.
2573         (distribute_and_simplify_rtx): New function.
2574         * simplify-rtx.c (simplify_binary_operation):
2575         Use nonzero_bits to simplify ANDs where we are
2576         turning off bits already known to be off in OP0.
2577
2578 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2579
2580         PR target/14478
2581         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2582
2583 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2584
2585         PR middle-end/14084
2586         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2587         to size of decl.
2588
2589 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2590
2591         PR/14924
2592         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2593
2594 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2595
2596         * tree.h: Fix comment typo.
2597
2598 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2599
2600         * gimplify.c (compare_case_labels): New function.
2601         (gimplify_switch_expr): Sort case labels, and make sure the
2602         last label in the label vector is the default case.
2603         * tree-cfg.c (group_case_labels): New function.
2604         (build_tree_cfg): Cleanup redundant labels and group case labels
2605         before creating edges.
2606         (cleanup_dead_labels): Handle GOTO_EXPRs.
2607         (find_case_label_for_value): Use a binary search to find the
2608         case label for the given value.
2609         * tree-gimple.c: Mention that labels are sorted, and that the
2610         last label must be the default.
2611
2612 2004-05-27  Jan Hubicka  <jh@suse.cz>
2613
2614         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2615
2616 2004-05-27  Jan Hubicka  <jh@suse.cz>
2617
2618         * i386.md (UNSPECV_EH_RETURN): Kill.
2619         (eh_return): Use jump_insn.
2620         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2621
2622 2004-05-26  Jan Hubicka  <jh@suse.cz>
2623
2624         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2625         not loop optimizing.
2626
2627 2004-05-26  Jan Hubicka  <jh@suse.cz>
2628
2629         * except.c (can_throw_internal):  Notice RESX instructions.
2630
2631 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2632
2633         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2634         of the two sizes to assemble_integer.
2635
2636 2004-05-25  Paul Brook  <paul@codesourcery.com>
2637
2638         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2639         pointless #ifdef.
2640
2641 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2642
2643         * Makefile.in (top_builddir): Define to .
2644
2645 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2646
2647         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2648         top-level detects, except when in-tree ld is being cross-built.
2649         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2650         then AS only if target is host.
2651         * configure: Rebuilt.
2652
2653 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2654
2655         * global.c (global_alloc): Call make_accurate_live_analysis.
2656         (record_one_conflict): Remove dead code.
2657         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2658         (bb_info): New structure.
2659         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2660         (allocate_bb_info, free_bb_info, mark_reg_change,
2661         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2662         modify_bb_reg_pav, calculate_reg_pav,
2663         make_accurate_live_analysis): New functions.
2664
2665 2004-05-25  Devang Patel  <dpatel@apple.com>
2666
2667         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2668         xrealloc.
2669         (end_alias_analysis): Use ggc_free instead fo free.
2670
2671 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2672
2673         PR target/15546
2674         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2675         as needed to be outputted.
2676
2677 2004-05-25  Jan Hubicka  <jh@suse.cz>
2678
2679         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2680
2681 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2682         Mostafa Hagog  <mustafa@il.ibm.com>
2683
2684         * Makefile.in (modulo-sched.o, ddg.o): New.
2685         * ddg.h, ddg.c, modulo-sched.c: New files.
2686         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2687         internals to "dupicate_insn".
2688         (duplicate_insn): New function.
2689         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2690         declarations.
2691         * common.opt (fmodulo-sched): New flag.
2692         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2693         Remove static and forward declaration.
2694         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2695         functions.
2696         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2697         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2698         declarations.
2699         * flags.h (flag_modulo_sched): New flag.
2700         * opts.c (common_handle_option): Handle modulo-sched flag.
2701         * params.def (max-sms-loop-number, sms-max-ii-factor,
2702         sms-dfa-history, sms-loop-average-count-threshold): New
2703         parameters.
2704         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2705         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2706         parameters.
2707         * passes.c ("sms", "sms-vcg"): New dumps.
2708         (rest_of_handle_sched): Call sms_schedule.
2709         * rtl.h (sms_schedule): New declaration.
2710         * timevar.def (TV_SMS): New.
2711         * toplev.c (flag_modulo_sched): Initialize.
2712         (f_options): Handle -fmodulo-sched option.
2713         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2714         * docs/passes.texi: Document new SMS pass.
2715
2716 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2717
2718         * Makefile.in (OBJS): Add rtlhooks.o.
2719         (rtlanal.o): Depend on function.h.
2720         (cse.o): Depend on rtlhooks-def.h.
2721         (combine.o): Depend on rtlhooks-def.h.
2722         (rtlhooks.o): New rule.
2723         * combine.c: Include rtlhooks-def.h.
2724         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2725         num_sign_bit_copies, cached_num_sign_bit_copies,
2726         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2727         (reg_nonzero_bits_for_combine,
2728         reg_num_sign_bit_copies_for_combine): New functions holding
2729         the remnants of the above.
2730         (combine_rtl_hooks): New.
2731         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2732         * cse.c: Include rtlhooks-def.h.
2733         (cse_rtl_hooks): New.
2734         (cse_main): Set rtl_hooks instead of gen_lowpart.
2735         * emit-rtl.c (gen_lowpart): Remove.
2736         (gen_lowpart_general): Move to rtlhooks.c.
2737         * rtl.h (nonzero_bits, num_sign_bit_copies,
2738         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2739         (gen_lowpart_general): Remove.
2740         (gen_lowpart): Temporarily redefine as a macro.
2741         * rtlanal.c: Include function.h.
2742         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2743         num_sign_bit_copies, cached_num_sign_bit_copies,
2744         num_sign_bit_copies1): New, from combine.c.
2745         * rtlhooks.c: New file.
2746         * rtlhooks-def.h: New file.
2747
2748 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2749
2750         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2751         to support 32-bit -mint8 mode.
2752
2753         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2754         option in the AVR architecture.
2755
2756 2004-05-24  Mike Stump  <mrs@apple.com>
2757
2758         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2759
2760 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2761
2762         * intl.h (open_quote, close_quote): New.
2763         * intl.c (open_quote, close_quote): New.
2764         (gcc_init_libintl): Set them.
2765         * pretty-print.c: Include "intl.h".
2766         (pp_base_format_text): Support 'q' format flag and %` and %'
2767         formats.  Use ' instead of ` in comments.
2768         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2769         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2770         foramt_types_orig): Describe these new formats.
2771         (decode_format_attr, check_function_format,
2772         check_format_info_main): Use these new formats.
2773         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2774         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2775         check these formats to 3.5.
2776
2777 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2778
2779         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2780         (BACKEND): Reflect this.
2781         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2782         (LIBS): Likewise.
2783
2784 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2785
2786         PR tree-optimization/14197
2787         * builtins.c: Include "tree-gimple.h"
2788         (readonly_data_expr): Use get_base_address.  Make sure to call
2789         decl_readonly_section only on trees it can handle.
2790         * tree-gimple.c (get_base_address): Accept STRING_CST and
2791         CONSTRUCTOR expressions.
2792         * Makefile.in: Update dependencies.
2793
2794 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2795
2796         Move libcpp to the toplevel.
2797         * Makefile.in: Remove references to libcpp files,
2798         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2799         and change hashtable.h to that.
2800         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2801         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2802         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2803         * configure: Regenerate.
2804         * config.in: Regenerate.
2805         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2806         * cppcharset.c: Removed.
2807         * cpperror.c: Removed.
2808         * cppexp.c: Removed.
2809         * cppfiles.c: Removed.
2810         * cpphash.c: Removed.
2811         * cpphash.h: Removed.
2812         * cppinit.c: Removed.
2813         * cpplex.c: Removed.
2814         * cpplib.c: Removed.
2815         * cpplib.h: Removed.
2816         * cppmacro.c: Removed.
2817         * cpppch.c: Removed.
2818         * cpptrad.c: Removed.
2819         * cppucnid.h: Removed.
2820         * cppucnid.pl: Removed.
2821         * cppucnid.tab: Removed.
2822         * hashtable.c: Removed.
2823         * hashtable.h: Removed.
2824         * line-map.c: Removed.
2825         * line-map.h: Removed.
2826         * mkdeps.c: Removed.
2827         * mkdeps.h: Removed.
2828         * stringpool.h: Include symtab.h instead of hashtable.h.
2829         * tree.h: Include symtab.h instead of hashtable.h.
2830         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2831
2832 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2833
2834         * gcc.c (struct prefix_list): Add forward declaration.
2835         (do_spec_path): New function, extracted from...
2836         (do_spec_1) <'D'>: ... here.  Drop support for
2837         SPACE_AFTER_L_OPTION.
2838         (do_spec_1) <'I'>: Use do_spec_path.
2839         (process_command): Do not store the 'include' suffix
2840         in include_prefixes.
2841         * system.h: Poison SPACE_AFTER_L_OPTION.
2842
2843 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2844
2845         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2846         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2847
2848 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2849
2850         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2851         Update based on printed manual.  Enable setting of offsets for
2852         FSFPRINT and move it to gcc-common.texi.
2853         * doc/gcc.texi: Update FSF printing details.
2854         * doc/gccint.texi: Remove FSF printing details.
2855
2856 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2857
2858         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2859
2860 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2861
2862         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2863         expand_builtin_strrchr, expand_builtin_strpbrk,
2864         expand_builtin_mempcpy, expand_builtin_memcmp,
2865         expand_builtin_strcmp, expand_builtin_strncmp,
2866         expand_builtin_strcat, std_expand_builtin_va_start,
2867         std_expand_builtin_va_arg, expand_builtin_va_copy,
2868         expand_builtin_signbit, fold_builtin_cabs,
2869         fold_builtin_logarithm, fold_builtin_mempcpy,
2870         fold_builtin_signbit, fold_builtin_isascii,
2871         fold_builtin_toascii, fold_builtin_isdigit,
2872         fold_builtin_1, build_function_call_expr,
2873         simplify_builtin_strchr, simplify_builtin_strrchr,
2874         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2875         simplify_builtin_memcmp, simplify_builtin_strcmp,
2876         simplify_builtin_strncmp, simplify_builtin_strncat,
2877         simplify_builtin_strspn, simplify_builtin_strcspn,
2878         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2879         to build with calls to build2, build3 or omit_one_operand.
2880
2881 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2882
2883         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2884         section when generating EABI code.
2885
2886 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2887
2888         PR 15546
2889         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2890         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2891
2892 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2893
2894         * c-common.c (c_common_truthvalue_conversion): Handle
2895         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2896         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2897         i.e. set the type to truthvalue_type_node and return.
2898
2899 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2900
2901        * tree.h (struct tree_decl): Add possibly_inlined bit.
2902         (DECL_POSSIBLY_INLINED): New accessor macro.
2903         * cgraph.h: Remove declaration of cgraph_inline_hash.
2904         * cgraph.c: Remove definition of cgraph_inline_hash.
2905         (hash_node): Revert to hashing DECL_UID.
2906         (eq_node): Take two pointers to cgraph_node structures.
2907         Compare DECL_UIDs.
2908         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2909         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2910         hash on DECL_UID.
2911         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2912         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2913         (cgraph_node): Allocate a temporary node on the stack, fill in
2914         its DECL field, and pass that to htab_find_slot.
2915         (cgraph_varpool_node): Likewise.
2916         (cgraph_function_possibly_inlined_p): If global info is ready,
2917         return the DECL_POSSIBLY_INLINED bit.
2918         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2919         instead of mucking with cgraph_inline_hash.
2920
2921 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2922
2923         * doc/contrib.texi: Add g77 contributors.
2924
2925 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2926
2927         * calls.c (initialize_argument_information): Forbid sibcalls if a
2928         callee-copied argument is stored in the current function's frame.
2929
2930 2004-05-22  Eric Christopher  <echristo@redhat.com>
2931
2932         * fix-header.c (read_scan_file): Update for add_path change.
2933
2934 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2935
2936         * c.opt (Wmissing-include-dirs): New.
2937         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2938         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2939         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2940         * c-incpath.h (add_path): Add fourth (bool) argument.
2941         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2942         (add_standard_paths): Likewise.
2943         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2944         is used and the directory was user-supplied via -I.
2945         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2946         using add_cpp_dir_path ().
2947         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2948         (struct cpp_dir): Add user_supplied_p.
2949         * doc/invoke.texi (Warning Options): Document new option.
2950
2951 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2952
2953         * fold-const.c (fold_read_from_constant_string): Convert result to
2954         requested type.
2955
2956 2004-05-21  Richard Henderson  <rth@redhat.com>
2957
2958         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2959         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2960         Don't mark VA_ARG_EXPRs volatile here.
2961         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2962
2963 2004-05-21  Richard Henderson  <rth@redhat.com>
2964
2965         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2966         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2967
2968 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2969
2970         * fold-const.c (fold, fold_relational_hi_lo,
2971         nondestructive_fold_binary_to_constant,
2972         fold_read_from_constant_string): Use fold_convert instead of convert.
2973         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2974         simplify_builtin_strchr, simplify_builtin_strrchr,
2975         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2976
2977 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2978
2979         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2980         is NULL.
2981
2982 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2983
2984         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2985         override sparc.h definition.
2986
2987 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2988
2989         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2990         get_unwidened, get_narrower): Replace build with build2.
2991         * fold-const.c (negate_expr, associate_trees, size_binop,
2992         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2993         pedantic_omit_one_operand, distribute_bit_expr,
2994         make_bit_field_ref, optimize_bit_field_compare,
2995         decode_field_reference, range_binop, make_range,
2996         build_range_check, fold_range_test, fold_truthop,
2997         optimize_minmax_comparison, extract_muldiv_1,
2998         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2999         fold_inf_compare, fold_single_bit_test, fold,
3000         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3001         Likewise replace build with either build2 or build3.
3002
3003 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3004
3005         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3006         * calls.c (prepare_call_address): Don't test
3007         NO_RECURSIVE_FUNCTION_CSE.
3008         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3009         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3010         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3011         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3012         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3013         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3014         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3015         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3016         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3017         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3018         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3019         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3020         Likewise.
3021         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3022         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3023         * doc/tm.texi (Costs): Remove documentation for
3024         NO_RECURSIVE_FUNCTION_CSE.
3025
3026 2004-05-20  Paul Brook  <paul@codesourcery.com>
3027
3028         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3029         * unwind-dw2.c (extract_cie_info): Ditto.
3030         (_Unwind_FrameState): Change retaddr_column to word type.
3031
3032 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3033
3034         PR middle-end/3074
3035         * fold-const.c (strip_compound_expr): Delete function.
3036         (count_cond): Delete function.
3037         (fold_binary_op_with_conditional_arg): Only perform transformations
3038         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3039         when a is constant.  This greatly simplifies this routine.
3040
3041         * tree.c (saved_expr_p): Delete function.
3042         * tree.h (saved_expr_p): Delete function prototype.
3043
3044 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3045
3046         * common.opt (ftree-loop-optimize): Remove.
3047
3048 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3049
3050         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3051         (NM_FOR_TARGET): Use := and $(shell).
3052         (mainversion): Remove unused variable.
3053
3054 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3055
3056         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3057         sequence containing the insn to be deleted, always reemit it.
3058
3059 2004-05-20  Richard Henderson  <rth@redhat.com>
3060
3061         PR 15454
3062         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3063         * function.c (expand_function_start): Expand static_chain_decl by hand.
3064         * gimplify.c (create_tmp_var_name): Export.
3065         * tree-gimple.h (create_tmp_var_name): Declare.
3066
3067 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3068
3069         * rs6000.c (print_operand) <case 'z'>: Call
3070         mark_decl_referenced before assemble_name.
3071
3072 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3073
3074         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3075         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3076         (cgraph_varpool_node): Hash on the pointer to the decl, not
3077         the DECL_UID.  Fixes 64-bit bootstrap failure.
3078
3079 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3080
3081         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3082         we don't earlyclobber operands used in the second insn.
3083
3084 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3085
3086         * tree-mudflap.c: Formatting fixes.
3087
3088 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3089
3090         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3091         * gengtype.c (open_base_files): Include reload.h in ifiles.
3092         * reload.h (reg_equiv_memory_loc_varray): Declare.
3093         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3094         (init_reload): Initialize it.
3095         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3096         reg_equiv_memory_loc_varray to size 0.
3097         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3098         growing reg_equiv_memory_loc_varray to the desired size.
3099         * passes.c (rest_of_handle_old_regalloc): Likewise.
3100         * reload.c: Amend comment on calling init_reload.
3101
3102 2004-05-20  Nick Clifton  <nickc@redhat.com>
3103
3104         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3105         with 'TRAMP' in the body of the macro definition.
3106
3107 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3108
3109         PR target/15383
3110         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3111         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3112         cmptf_libfunc isn't set.
3113         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3114         conventions.
3115         (ia64_sysv4_init_libfuncs): New.
3116
3117         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3118         ia64_sysv4_init_libfuncs.
3119
3120 2004-05-20  Falk Hueffner  <falk@debian.org>
3121
3122         PR other/15526
3123         * libgcc2.c (__mulvsi3): Fix overflow test.
3124
3125 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3126
3127         PR c/14171
3128         * reg-stack.c (nan): Rename to ...
3129         (not_a_num): Here.
3130         (reg_to_stack): Rename nan to not_a_num.
3131         (subst_stack_regs_pat): Likewise.
3132         (convert_regs_entry): Likewise.
3133         (convert_regs_1): Likewise.
3134
3135         * tree-cfg.c (find_case_label_for_value): Replace call to
3136         simple_cst_equal with tree_int_cst_equal.
3137
3138 2004-05-19  Jeff Law <law@redhat.com>
3139
3140         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3141         If the operand is for a use, then strip away the SSA_NAME, do not
3142         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3143         (mark_def_sites): Appropriately pass additional argument to
3144         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3145         then set the VDEF_RESULT to the VDEF_OP.
3146         (set_def_block): Strip away any SSA_NAME to get to the real
3147         underlying variable.
3148
3149         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3150         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3151         BB directly.
3152
3153 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3154
3155         PR c++/15463
3156         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3157         result of inverse.
3158
3159         PR rtl-optimization/15274
3160         * loop-iv.c (determine_max_iter, shorten_into_mode,
3161         iv_number_of_iterations): Handle constants correctly.
3162         * rtl.h (get_mode_bounds): Declaration changed.
3163         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3164         the target mode.
3165
3166         PR rtl-optimization/14692
3167         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3168         (unswitch_single_loop): Work correctly when may_unswitch_on
3169         returns a folded constant.
3170
3171         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3172         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3173         comparisons with mode bounds.
3174
3175         * function.c (struct temp_slot): Add new field prev.
3176         (free_after_compilation, init_temp_slots): Free new fields.
3177         (cut_slot_from_list, insert_slot_to_list,
3178         temp_slots_at_level, max_slot_level, move_slot_to_level,
3179         make_slot_available): New functions.
3180         (assign_stack_temp_for_type, combine_temp_slots,
3181         find_temp_slot_from_address, preserve_temp_slots,
3182         preserve_rtl_expr_result, free_temp_slots,
3183         free_temps_for_rtl_expr, pop_temp_slots): Work with
3184         the new structure of lists.
3185         (mark_all_temps_used): Removed.
3186         * function.h (struct function): Field x_temp_slots
3187         replaced by x_used_temp_slots and x_avail_temp_slots.
3188         (temp_slots): Replaced by ...
3189         (used_temp_slots, avail_temp_slots): New.
3190         * tree.h (mark_all_temps_used): Declaration removed.
3191
3192         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3193         simplify_using_assignment): Take the expression out of
3194         the expr_list wrapper.
3195
3196         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3197         infinite loops.
3198
3199 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3200
3201         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3202         costs should be based on code size when optimizing for size.
3203
3204 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3205
3206         * fold-const.c: Remove non-printable character 160.
3207
3208 2004-05-19  Nick Clifton  <nickc@redhat.com>
3209
3210         * doc/invoke.texi (ARM Options): Fix typo.
3211         Remove descrption of -mshort-load-bytes and
3212         -mno-short-load-bytes.
3213
3214         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3215         missing parenthesis.
3216         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3217         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3218
3219 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3220
3221         * expr.c (store_constructor): Build loop start and end by hand
3222         instead of via loop functions from stmt.c.
3223         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3224         Remove the code to expand them.
3225
3226         * stmt.c (loop_stack): Remove this and everything related.
3227         (struct nesting, enum nesting_desc): Update.
3228         (expand_fixup): Likewise.
3229         (expand_loop_start, expand_start_loop_continue_elsewhere,
3230         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3231         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3232         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3233         expand_exit_something): Remove.
3234         * tree.h: Remove prototypes.
3235
3236 2004-05-18  Mike Stump  <mrs@apple.com>
3237             Devang Patel  <dpatel@apple.com>
3238
3239         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3240         if this label is for eh.
3241         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3242         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3243         * dwarf2out.c (output_call_frame_info): Likewise.
3244         * output.h (default_emit_unwind_label): Likewise.
3245         * target.h (unwind_label): Likewise.
3246         * varasm.c (default_emit_unwind_label): Likewise.
3247
3248         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3249         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3250         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3251         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3252         DEBUG_RANGES_SECTION): Define.
3253
3254 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3255
3256         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3257         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3258         (cgraph_varpool_node):
3259         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3260         (cgraph_function_possibly_inlined_p): Use the decl itself for
3261         the key, not DECL_ASSEMBLER_NAME.
3262         (change_decl_assembler_name): No need to muck with the hash tables.
3263         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3264         Delete.
3265         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3266         for the key, not DECL_ASSEMBLER_NAME.
3267         * cgraph.h: Remove prototypes of deleted functions.
3268         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3269         (mark_decl_referenced): New function.
3270         * tree.h: Prototype mark_decl_referenced.
3271         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3272         mark_decl_referenced before assemble_name.
3273         * c-decl.c (finish_decl): Use mark_decl_referenced.
3274
3275 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3276             Jeff Law <law@redhat.com>
3277
3278         * tree-ssa-phiopt.c (abs_replacement): New function.
3279         (empty_block_p): New function extracted from...
3280         (candidate_bb_for_phi_optimization): Break out empty block test.
3281         (conditional_replacement): Use empty_block_p.
3282         (value_replacement): Similarly.
3283
3284         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3285         * tree-ssa-phiopt.c: Include flags.h.
3286         (conditional_replacement): Remove argument names from prototype.
3287         Minor formatting and comment fixes.
3288         (tree_ssa_phiopt): If conditional_replacement returns false, then
3289         call value_replacement.
3290         (value_replacement): New function.
3291
3292 2004-05-18  Jeff Law  <law@redhat.com>
3293
3294         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3295         from conditional_replacement.
3296         (candidate_bb_for_phi_optimization): Similarly.
3297         (conditional_replacement): Use replace_phi_with_stmt and
3298         candidate_bb_for_phi_optimization.
3299
3300         * tree-ssa-phiopt.c: Fix various formatting issues.
3301
3302 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3303
3304         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3305         s390_expand_cmpmem): Do not use expand_start_loop and
3306         expand_end_loop, instead build the loop manually.
3307
3308 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3309
3310         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3311         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3312
3313 2004-05-17  Jeff Law  <law@redhat.com>
3314
3315         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3316         * flags.h (flag_delete_null_pointer_checks): Here.
3317         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3318         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3319         (add_phi_arg, remove_phi_arg_num): Similarly.
3320         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3321         property into PHI nodes.
3322         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3323         (record_equivalences_from_phis): If all PHI arguments are known to be
3324         nonzero, then the result must be nonzero as well.
3325         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3326         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3327         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3328         as appropriate.
3329         * tree.h (PHI_ARG_NONZERO): Define.
3330         (phi_arg_d): Add nonzero flag.
3331
3332 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3333
3334         * f: Entire directory removed
3335
3336         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3337         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3338         (g77_integer_type_node, g77_uinteger_type_node)
3339         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3340         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3341         the above set of variables.
3342
3343         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3344         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3345         to g77 manual.
3346
3347 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3348
3349         PR tree-optimization/15438
3350         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3351         attributed functions as pure or const.
3352
3353 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3354
3355         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3356         from source code with errors.
3357
3358 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3359
3360         Enable tree browser for all front ends.
3361         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3362         (BACKEND): ...to here.
3363
3364 2004-05-17  Jan Hubicka  <jh@suse.cz>
3365
3366         * i386.c (construct_container): Do not produce BLKmode registers.
3367         (classify_argument): Properly compute alignment of complex types.
3368
3369 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3370
3371         PR target/15084
3372         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3373         and renamed to movdi_insv_1_rex64.
3374         (insv): Support SImode for 32bit and DImode for 64bit.
3375
3376 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3377
3378         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3379         (TARGET_SWITCHES): Remove debugg.
3380         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3381         TARGET_64BIT.
3382         (subdi3): Replace the define_expand with a define_insn, the latter
3383         renamed from subdi3_internal_3.
3384         (negdi2): Likewise negdi2_internal_2.
3385         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3386         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3387         and associated define_splits.
3388         (adddi3_internal): Renamed from adddi3_internal_3.
3389         (ashldi3_internal): Likewise ashldi3_internal4.
3390         (ashrdi3_internal): Likewise ashrdi3_internal4.
3391         (lshrdi3_internal): Likewise lshrdi3_internal4.
3392
3393 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3394
3395         * optabs.c (expand_unop): Try implementing negation using subtraction
3396         from zero.
3397
3398 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3399
3400         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3401         SAR register.
3402
3403 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3404
3405         PR target/10982
3406         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3407         (ne_zeroextractsi_shifted): New pattern.
3408         (ite_ne_zeroextractsi): New pattern.
3409         (ite_ne_zeroextractsi_shifted): New pattern.
3410
3411 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3412
3413         * c-gimplify.c (c_genericize):
3414         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3415         * c-parse.in <expr_no_commas>: Likewise.
3416         <if_prefix>: Likewise.
3417         <select_or_iter_stmt>: Likewise.
3418         * expr.c (expand_var, expand_expr_real_1): Likewise.
3419         * expr.h (expand_expr): Make it a static inline function.
3420         Move prototype for expand_expr_real up before this.
3421         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3422         Likewise.
3423         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3424         gimplify_asm_expr, gimplify_expr): Likewise.
3425         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3426         dump_function_to_file): Likewise.
3427         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3428         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3429         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3430         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3431         Likewise.
3432         * tree-optimize.c (execute_one_pass): Likewise.
3433         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3434         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3435
3436         * objc/objc-act.c (objc_build_try_enter_fragment,
3437         objc_build_try_epilogue, objc_build_catch_stmt,
3438         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3439         with lang_hooks.foo ().
3440
3441 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3442
3443         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3444         that simplify_builtin doesn't destructively modify its argument.
3445
3446 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3447
3448         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3449         implementations for ARM and Thumb.
3450         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3451
3452 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3453
3454         * prefix.c (update_path): Replace PREFIX with KEY only
3455         when it matches a full directory name in PATH.
3456
3457 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3458
3459         * arm.h (TARGET_APCS_32): Delete.
3460         (TARGET_MMU_TRAPS): Delete.
3461         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3462         define __APCS_26__.
3463         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3464         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3465         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3466         (prog_mode_type): Delete.
3467         (PROMOTE_MODE): Always promote unsigned for HImode.
3468         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3469         (MASK_RETURN_ADDR): Simplify.
3470         * arm.c (arm_prgmode): Delete.
3471         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3472         (print_multi_reg, output_return_instruction): Simplify.
3473         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3474         (arm_return_addr): Simplify.
3475         * arm.md (prog_mode): Delete.
3476         (conds): Simplify.
3477         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3478         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3479         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3480         (loadhi_shiftpredec): Delete.
3481         (peephole for post-increment on HImode load): Delete.
3482         * arm/crtn.asm: (FUNC_END): Simplify.
3483         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3484         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3485         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3486         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3487         MULTILIB_DEFAULTS as required.
3488         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3489         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3490         variables as required.
3491         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3492
3493 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3494
3495         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3496         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3497         count to 8 to handle n_reg > 2.
3498
3499 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3500
3501         * doc/extend.texi: Update WG14 URL.
3502
3503 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3504
3505         * basic-block.h (life_analysis, delete_noop_moves):
3506         Update prototypes.
3507         * bt-load.c (branch_target_load_optimize): Don't take the
3508         insns stream as an argument.  Update the life_analysis calls.
3509         * combine.c (combine_instructions): Update delete_noop_moves
3510         calls.
3511         * flow.c (notice_stack_pointer_modification): Don't take the
3512         insns stream as an argument.  Work on the flow graph.
3513         (life_analysis): Likewise.
3514         (delete_noop_moves): Likewise.
3515         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3516         (rest_of_handle_life): Update life_analysis call.
3517         (rest_of_compilation): Likewise, and also update
3518         branch_target_load_optimize call.
3519         * ra.c (reg_alloc): Update life_analysis call.
3520         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3521         the insns stream as an argument.
3522         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3523         call.
3524         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3525         prototypes.
3526         * value-profile.c (branch_prob): Update life_analysis call.
3527         * web.c (web_main): Work on the CFG, not on the insns stream.
3528
3529         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3530         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3531         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3532
3533 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3534
3535         PR c/15444
3536         * c-format.c (avoid_dollar_number): New function.
3537         (check_format_info_main): Call avoid_dollar_number when operand
3538         numbers might occur but has_operand_number == 0.
3539
3540 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3541
3542         * arm.md (all peephole2 patterns): Use predicates that validate
3543         register classes as appropriate.
3544
3545 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3546
3547         PR opt/14472
3548         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3549         ignore type conversions that do not inhibit tail calling.
3550         (find_tail_calls): Likewise.
3551
3552 2004-05-14  Jeff Law  <law@redhat.com>
3553
3554         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3555         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3556         bypassed virtuals into vars_to_rename just before into-ssa pass.
3557
3558         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3559         so that it picks up more opportunities to eliminate ABS expressions
3560         or turn them into negations.
3561
3562 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3563
3564         * passes.c (rest_of_handle_null_pointer): Remove.
3565         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3566         (rest_of_compilation): Likewise.
3567         * rtl.h (delete_null_pointer_checks): Remove prototype.
3568         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3569         Remove declarations.
3570         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3571         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3572         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3573         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3574         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3575         one_classic_gcse_pass, invalidate_nonnull_info,
3576         delete_null_pointer_checks_1, delete_null_pointer_checks,
3577         expr_reached_here_p_work): Remove.
3578         (gcse_main): Do not perform classic GCSE when optimizing for size.
3579         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3580         are never used.
3581
3582 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3583
3584         PR optimization/14466
3585         * tree-complex.c (make_temp): Remove.
3586         (gimplify_val): Replace make_temp with make_rename_temp
3587         and add NULL as the second argument.
3588         (expand_complex_div_wide): Likewise.
3589         * tree-dfa.c (make_rename_temp): New function.
3590         * tree-flow.h (make_rename_temp): Declare.
3591         * tree-sra.c (make_temp): Remove.
3592         (lookup_scalar): Replace make_temp with make_rename_temp.
3593         (create_scalar_copies): Likewise.
3594         * tree-ssa-phiopt.c (conditional_replacement): When we
3595         get non gimple create a temporary variable to hold the
3596         casted expression.
3597
3598 2004-05-14  Paul Brook  <paul@codesourcery.com>
3599
3600         * stor-layout.c (update_alignment_for_field): Use
3601         targetm.align_anon_bitfield.
3602         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3603         (TARGET_INITIALIZER): Use it.
3604         * target.h (struct gcc_target): Add align_anon_bitfield.
3605         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3606         (TARGET_ALIGN_ANON_BITFIELD): Define.
3607         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3608
3609 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3610
3611         * tree.def (documentation): Remove mention of class 'b'.
3612         (BLOCK): Now in class 'x'.
3613         * c-common.c (verify_tree): Remove case 'b'.
3614         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3615         * calls.c (calls_function_1): Control cannot get past the switch
3616         when exp is a BLOCK.
3617         * print-tree.c (print_node): Move code for class 'b' to the class
3618         'c'/'x' switch, as case BLOCK.
3619         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3620         (unsafe_for_reeval, substitute_placeholder_in_expr)
3621         (stabilize_reference_1): Remove case 'b'.
3622         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3623         of something being 'b' to tests for TREE_CODE of something being
3624         BLOCK.
3625         * tree-ssa-operands.c (get_expr_operands): Likewise.
3626
3627 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3628
3629         * tree-gimple.c: Rename from tree-simple.c.
3630         * tree-gimple.h: Rename from tree-simple.h.
3631         * c-gimplify.c: Rename from c-simplify.c
3632         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3633         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3634         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3635         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3636         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3637         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3638         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3639         Update.
3640
3641 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3642
3643         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3644
3645 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3646
3647         * tree-ssa.c (delete_tree_ssa): XFREE
3648         bitmaps allocated with BITMAP_XMALLOC.
3649
3650         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3651         idfs_cache at the end of the function.
3652
3653         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3654         at the end of the function.
3655
3656         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3657         el at the end of the function.
3658
3659         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3660         bitmaps allocated with BITMAP_XMALLOC.
3661
3662         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3663         the end.
3664
3665         * final.c (shorten_branches): Free uid_shuid before
3666         reallocating it.
3667
3668         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3669
3670 2004-05-13  Jeff Law  <law@redhat.com>
3671
3672         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3673         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3674         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3675
3676         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3677         rather than iterating through the blocks testing each bit in
3678         livein to initialize the worklist.
3679         (mark_def_sites): Remove useless checks of KILLS for virtual
3680         operands.
3681
3682         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3683         new parameters for the statement and variable worklist as well
3684         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3685         worklist recording interesting variables in the variable worklist
3686         and bitmap.  Handle casts between integral and boolean types.
3687         (substitute_single_use_vars): Accept new parameters for the statement
3688         and variable worklist.  When a substitution is made add a new
3689         entry to the statement worklist.  Handle casts between integral
3690         and boolean types.
3691         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3692         worklists to children.  Iterate until the statement worklist
3693         is empty.
3694
3695 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3696
3697         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3698         the end of the block.
3699
3700         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3701         with BITMAP_XMALLOC.
3702
3703         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3704         with BITMAP_XMALLOC.
3705
3706         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3707         Free nonzero_vars at the end of the function.
3708
3709         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3710         need to generate code instead of a NOP_EXPR.
3711
3712 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3713
3714         * gcc.c (default_compilers): Fill out initializers for new Fortran
3715         entries.
3716
3717 2004-05-13  Paul Brook  <paul@codesourcery.com>
3718
3719         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3720
3721 2004-05-13  Paul Brook  <paul@codesourcery.com>
3722
3723         * config/arm/arm.c (arm_default_short_enums): New function.
3724         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3725
3726 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3727
3728         Merge from tree-ssa-20020619-branch.
3729
3730         * Makefile.in (reload1.o-warn): Add.
3731         (tree-alias-ander.o-warn): Add.
3732         (GMPLIBS): Define.
3733         (GMPINC): Define.
3734         (BANSHEELIB): Define.
3735         (BANSHEEINC): Define.
3736         (TREE_DUMP_H): Define.
3737         (TREE_SIMPLE_H): Define.
3738         (TREE_FLOW_H): Define.
3739         (LIBDEPS): Add BANSHEELIB.
3740         (INCLUDES): Add BANSHEEINC and GMPINC.
3741         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3742         c-mudflap.o and c-pretty-print.o.
3743         (C_OBJS): Remove c-pretty-print.o.
3744         (OBJS-common): Remove sibcall.o.
3745         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3746         tree-ssa.o, tree-optimize.o, tree-simple.o,
3747         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3748         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3749         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3750         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3751         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3752         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3753         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3754         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3755         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3756         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3757         tree-profile.o.
3758         (OBJC-archive): Add tree-nomudflap.o.
3759         (cc1): Add dependency on @TREEBROWSER@.
3760         (c-decl.o): Add dependency on TREE_DUMP_H.
3761         (c-dump.o): Likewise.
3762         (c-common.o): Add dependency on tree-iterator.h
3763         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3764         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3765         (tree.o): Add dependency on tree-iterator.h,
3766         BASIC_BLOCK_H and TREE_FLOW_H.
3767         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3768         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3769         (tree-alias-type.o, tree-alias-ander.o,
3770         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3771         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3772         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3773         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3774         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3775         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3776         tree-nested.o, tree-iterator.o, tree-dfa.o,
3777         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3778         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3779         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3780         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3781         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3782         tree-sra.o, tree-complex.o, tree-profile.o,
3783         rtl-profile.o): New rules.
3784         (function.o): Add dependency on basic-block.h
3785         (expr.o): Add dependency on tree-iterator.h.
3786         (sibcall.o): Remove.
3787         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3788         (cfg.o): Add dependency on TIMEVAR_H.
3789         (cfghooks.o): Add dependency on TREE_FLOW_H.
3790         (reg-stack.o): Add dependency on basic-block.h.
3791         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3792         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3793         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3794         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3795         tree-alias-type.h, tree-alias-common.h,
3796         tree-alias-type.c, tree-alias-common.c,
3797         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3798         rtl-profile.c and tree-nested.c.
3799         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3800         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3801         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3802         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3803         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3804         * basic-block.h: Include predict.h
3805         (struct edge_def): Add GTY marker.
3806         Change field 'insns' to be a union of tree and rtx.
3807         (EDGE_TRUE_VALUE): Define.
3808         (EDGE_FALSE_VALUE): Define.
3809         (EDGE_EXECUTABLE): Define.
3810         (struct bb_ann_d): Forward declare.
3811         (struct basic_block_def): Add GTY marker.
3812         Remove fields head_tree and end_tree.
3813         Add fields stmt_list, rbi and tree_annotations.
3814         (struct reorder_block_def): Define.
3815         (basic_block_info): Add GTY marker.
3816         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3817         variables instead of macros.
3818         (flow_call_edges_add): Remove declaration.
3819         (make_eh_edge): Remove declaration.
3820         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3821         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3822         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3823         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3824         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3825         (try_redirect_by_replacing_jump): Modfiy return type to
3826         edge instead of bool.
3827         * bb-reorder.c (copy_bb): Call duplicate_block
3828         instead of cfg_layout_duplicate_bb.
3829         (copy_bb_p): Call can_duplicate_block_p instead of
3830         cfg_layout_can_duplicate_bb_p.
3831         * bitmap.c (bitmap_first_set_bit): Abort if word
3832         wasn't found.
3833         (bitmap_last_set_bit): Likewise.
3834         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3835         (DEF_FUNCTION_TYPE_3): Add.
3836         * builtins.c (c_strlen): Make extern.
3837         (builtin_save_expr): New.
3838         (expand_builtin_nonlocal_goto): New.
3839         (expand_builtin_constant_p): Remove.
3840         (expand_builtin_mathfn): Call builtin_save_expr instead
3841         of save_expr.
3842         (expand_builtin_mathfn_2): Likewise.
3843         (expand_builtin_strcmp): Likewise.
3844         (expand_builtin_strncmp): Likewise.
3845         (expand_builtin_strcat): Likewise.
3846         (fold_builtin_cabs): Likewise.
3847         (expand_builtin_alloca): Don't trigger if -fmudflap is
3848         given.
3849         (build_string_literal): Set TREE_INVARIANT on new node.
3850         (expand_builtin_profile_fun): New.
3851         (round_trampoline_addr): New.
3852         (expand_builtin_init_trampoline): New.
3853         (expand_builtin_adjust_trampoline): New.
3854         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3855         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3856         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3857         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3858         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3859         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3860         Handle.
3861         (fold_builtin_expect): New.
3862         (fold_builtin_isascii): Don't return non-constant results
3863         in GIMPLE form.
3864         (fold_builtin_isdigit): Likewise.
3865         (fold_builtin_1): New.
3866         (fold_builtin): Call it.
3867         (build_function_call_expr): Update call to build a new
3868         CALL_EXPR.
3869         (purge_builtin_constant_p): Remove.
3870         (simplify_builtin, simplify_builtin_memcmp,
3871         simplify_builtin_strcmp, simplify_builtin_strncmp,
3872         simplify_builtin_strpbrk, simplify_builtin_strstr,
3873         simplify_builtin_strchr, simplify_builtin_strrchr,
3874         simplify_builtin_strcat, simplify_builtin_strncat,
3875         simplify_builtin_strspn, simplify_builtin_strcspn,
3876         simplify_builtin_next_arg, simplify_builtin_va_start,
3877         simplify_builtin_sprintf): New.
3878         * builtins.def (BUILT_IN_STACK_ALLOC,
3879         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3880         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3881         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3882         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3883         * c-common.c: Include tree-iterator.h and hashtab.h.
3884         (lang_statement_code_p): Declare.
3885         (lang_gimplify_stmt): Declare.
3886         (fix_string_type): Set TREE_INVARIANT for value.
3887         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3888         (c_type_hash): New.
3889         (c_common_get_alias_set): Handle multiple type nodes
3890         referring to "the same" type, currently for C90 only.
3891         (c_add_case_label): Use create_artificial_label.
3892         (finish_label_address_expr): Don't set TREE_CONSTANT on
3893         result.
3894         (c_expand_expr): Don't handle STMT_EXPR.
3895         (handle_alias_attribute): Marke aliased variables to be
3896         TREE_STATIC.
3897         (handle_nonnull_attribute): Initialize arg_num.
3898         (check_function_nonnull): Likewise.
3899         (c_walk_subtrees): New.
3900         (c_estimate_num_insns_1): Don't handle
3901         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3902         (c_decl_uninit_1): Remove.
3903         (c_decl_uninit): Remove.
3904         (c_warn_unused_result): New.
3905         * c-common.def (ASM_STMT): Change number of operands
3906         to 4.
3907         (FILE_STMT): Remove.
3908         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3909         Remove.
3910         (lang_gimplify_stmt): Add.
3911         (expand_stmt): Remove.
3912         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3913         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3914         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3915         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3916         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3917         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3918         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3919         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3920         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3921         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3922         genrtl_compound_stmt, genrtl_asm_stmt,
3923         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3924         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3925         c_tree_chain_matters_p, c_warn_unused_result,
3926         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3927         Declare.
3928         * c-convert.c (convert): Make convert work when
3929         converting to compatible types across translation unit.
3930         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3931         tree-simple.h, diagnostic.h and tree-dump.h
3932         (merge_decls): Initialize oldtype to NULL.
3933         (finish_decl): Use DECL_HARD_REGISTER instead of
3934         DECL_C_HARD_REGISTER.
3935         (check_bitfield_type_and_width): Check for null
3936         lang_type_specific when check the precision of an enum.
3937         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3938         in a pointer-to-array declarator.
3939         (finish_struct): Clear allocated struct lang_type.
3940         (finish_enum): Set enum_min and enum_max.  Set
3941         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3942         not to the enumerators.
3943         (set_decl_nonlocal): New.
3944         (store_parm_decls): Use it via walk_tree.
3945         (c_finalize): New.
3946         (finish_function): When !targetm.have_ctors_dtors,
3947         record static constructors and destructors here...
3948         (c_expand_body_1): ... not here.
3949         (c_expand_decl): Rename from c_expand_decl_stmt.
3950         Handle all C-specific expansion semantics.
3951         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3952         STMT_LINENO.
3953         * c-format.c (handle_format_arg_attribute): Initialize
3954         format_num.
3955         * c-lang.c: Include tree-inline.h
3956         (LANG_HOOKS_EXPAND_DECL,
3957         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3958         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3959         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3960         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3961         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3962         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3963         (c_types_compatible_p): New.
3964         * c-mudflap.c: New file.
3965         * c-objc-common.c: Include tree-mudflap.h
3966         (start_cdtor, finish_cdtor): Collapse
3967         together into
3968         (build_cdtor): ...here.  Update to construct a complete tree
3969         for the function.  No need to call push_scope, pop_scope, or
3970         clear_last_expr, or set current_function_cannot_inline.
3971         (c_missing_noreturn_ok_p): Change prototype to return
3972         bool.
3973         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3974         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3975         opts.c.
3976         (c_common_post_options): Don't ever use rtl inlining.
3977         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3978         * c-pragma.c (handle_pragma_redefine_extname): Define
3979         always.
3980         (init_pragma): Activate #pragma redefine_extname for mudflap.
3981         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3982         (pp_c_initializer): Accept any type CONSTRUCTOR.
3983         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3984         COMPLEX_TYPE.
3985         (decl_name_str): New local function.
3986         (pp_c_direct_declarator): Call it.
3987         (pp_c_primary_expression): Call it.
3988         (pp_c_id_expression): Call it.
3989         (pp_c_statement): Call it.
3990         (print_c_tree): Create new pp object.
3991         * c-pretty-print.h (pp_c_tree_decl_identifier,
3992         print_c_tree): Declare.
3993         * c-semantics.c: Include langhooks.h
3994         (lang_expand_stmt, lang_expand_decl_stmt,
3995         find_reachable_label_1, find_reachable_label,
3996         expand_unreachable_if_stmt, expand_unreachable_stmt,
3997         genrtl_do_stmt_1): Remove.
3998         (begin_stmt_tree): Don't check for changed filename.
3999         Call annotate_with_locus.
4000         (finish_stmt_tree): Don't set line for end of function.
4001         (build_stmt): Don't check type nodes for
4002         side effects.
4003         (build_stmt): Set TREE_SIDE_EFFECTS.
4004         Set EXPR_LOCUS instead of STMT_LINENO.
4005         (lang_expand_stmt, lang_expand_decl_stmt,
4006         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4007         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4008         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4009         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4010         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4011         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4012         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4013         find_reachable_label_1, expand_unreachable_if_stmt,
4014         expand_unreachable_stmt): Remove.
4015         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4016         * c-simplify.c: New file.
4017         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4018         (struct lang_type): Add fields enum_min and enum_max.
4019         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4020         (c_expand_decl, c_missing_noreturn_ok_p,
4021         c_types_compatible_p): Declare.
4022         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4023         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4024         (default_function_array_conversion): Rely on build to
4025         set TREE_CONSTANT.
4026         (parser_build_binary_op, pointer_diff): Likewise.
4027         (build_unary_op, build_binary_op): Likewise.
4028         (build_array_ref):
4029         (build_external_ref): Set TREE_INVARIANT.
4030         (build_c_cast, pop_init_level): Likewise.
4031         (process_init_element): Use ASM_VOLATILE_P.
4032         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4033         (c_finish_case): Call c_do_switch_warnings.
4034         * c.opt (fdump-): Remove.
4035         * calls.c (try_to_integrate): Remove.
4036         (prepare_call_address): Replace fndecl arg with a
4037         precomputed static chain value.
4038         (emit_call_1): New argument for full call expr.
4039         (flags_from_decl_or_type): Call special_function_p.
4040         (initialize_argument_information): Add argument
4041         may_tailcall.
4042         (purge_reg_equiv_notes): New.
4043         (expand_call): Do not try to expand calls inline.
4044         (fixup_tail_calls): New.
4045         * cfg.c: Include timevar.h and ggc.h.
4046         (bb_pool, edge_pool): Remove.
4047         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4048         (entry_exit_blocks): Remove.
4049         (rbi_pool): Declare.
4050         (init_flow): Do not create pools.
4051         Allocate entry/exit block.
4052         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4053         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4054         (unlink_block): Clear b->prev_bb and b->next_bb.
4055         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4056         (dump_flow_info): Work on trees too.
4057         (dump_cfg_bb_info): New.
4058         (brief_dump_cfg): New.
4059         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4060         (find_edge): New.
4061         * cfgbuild.c (rtl_make_eh_edge): Rename from
4062         make_eh_edge.  Update all users.
4063         (find_basic_blocks): Don't call VARRAY_FREE on
4064         basic_block_info.
4065         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4066         and newpos2.
4067         (delete_unreachable_blocks): Return changed status.
4068         (merge_seq_blocks): New.
4069         * cfghooks.c: Include tree-flow.h
4070         (tree_register_cfg_hooks, ir_type): New.
4071         (redirect_edge_and_branch): Change return type to edge.
4072         (predict_edge, predicted_by_p, can_duplicate_block_p,
4073         duplicate_block, block_ends_with_call_p,
4074         block_ends_with_condjump_p, flow_call_edges_add): New.
4075         * cfghooks.h (redirect_edge_and_branch): Change return
4076         type to edge.
4077         (predict_edge, predicted_by_p, can_duplicate_block_p,
4078         duplicate_block, block_ends_with_call_p,
4079         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4080         (redirect_edge_and_branch): Change return type to edge.
4081         (struct cfg_hooks): Add fields block_ends_with_call_p,
4082         block_ends_with_condjump_p, flow_call_edges_add,
4083         predict_edge, predicted_by_p, can_duplicate_block_p and
4084         duplicate_block.
4085         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4086         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4087         (fixup_reorder_chain): Use initialize_bb_rbi.
4088         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4089         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4090         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4091         (insn_locators_initialize): Use new info about blocks.
4092         * cfglayout.h (typedef struct reorder_block_def): Moved to
4093         basic_block.h.
4094         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4095         removed.
4096         * cfgloop.c: Include tree.h and tree-flow.h.
4097         * cfgloop.h (create_loop_notes): Declare.
4098         * cfgloopmanip.c (create_loop_notes): New.
4099         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4100         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4101         and duplicate_block fields.
4102         (create_basic_block_structure): Don't look at
4103         RTX_INTEGRATED_P.
4104         (rtl_block_ends_with_call_p): New.
4105         (rtl_block_ends_with_condjump_p): New.
4106         (need_fake_edge_p): Moved from cfganal.c.
4107         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4108         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4109         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4110         (cfg_layout_rtl_cfg_hooks): Ditto.
4111         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4112         functions to be reachable.
4113         * cgraphunit.c (decide_is_function_needed):
4114         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4115         inline functions don't need to be output.
4116         (cgraph_assemble_pending_functions): Don't do anything
4117         special for nested functions.
4118         (cgraph_mark_functions_to_output): Likewise.
4119         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4120         (cgraph_analyze_function): Use estimate_num_insns.
4121         (cgraph_mark_functions_to_output): Likewise.
4122         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4123         (cgraph_expand_function): Allow functions to not be
4124         emitted.
4125         (cgraph_remove_unreachable_nodes):
4126         (cgraph_recursive_inlining_p): Simplify.
4127         (lookup_recursive_calls,
4128         cgraph_decide_recursive_inlining): New.
4129         (cgraph_decide_inlining_*): Update calls of
4130         cgraph_mark_inline.
4131         * combine.c (get_pos_from_mask): Always set *plen.
4132         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4133         ftree-based-profiling, ftree-ccp, ftree-ch,
4134         ftree-combine-temps, ftree-copyrename, ftree-dce,
4135         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4136         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4137         ftree-lrs): Add.
4138         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4139         Undefine.
4140         * configure.ac: Add --enable-tree-browser option.
4141         Add --with-libbanshee option.
4142         Add GMPLIBS and GMPINC.
4143         * configure: Regenerate.
4144         * coverage.c (tree_ctr_tables): New.
4145         (coverage_counter_alloc): Use it.
4146         (build_ctr_info_value): Ditto.
4147         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4148         (tree_coverage_counter_ref): New.
4149         * coverage.h (coverage_counter_ref): Remove declaration.
4150         (rtl_coverage_counter_ref): Declare.
4151         (tree_coverage_counter_ref): Declare.
4152         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4153         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4154         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4155         (struct cse_basic_block_data): Rename enum values to not
4156         conflict with profile.h; update all uses.
4157         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4158         in comments.
4159         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4160         * diagnostic.h (debug_output_buffer, dump_generic_node,
4161         print_generic_stmt, print_generic_stmt_indented,
4162         print_generic_expr, print_generic_decl,
4163         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4164         Declare.
4165         * dominance.c: Cache immediate dominators.
4166         * domwalk.c: New file.
4167         * domwalk.h: New file.
4168         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4169         (gen_subprogram_die): Generate a DIE for a named
4170         return value.
4171         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4172         (add_location_or_const_value_attribute): Likewise.
4173         (add_bound_info): Likewise.
4174         (gen_decl_die): Likewise.
4175         * emit-rtl.c (maybe_set_first_label_num): New.
4176         (copy_most_rtx): Don't copy the integrated flag.
4177         Copy the new return_val flag.
4178         * et-forest.c (MAX_NODES): Define.
4179         (record_path_before_1): Abort if len is greater than
4180         MAX_NODES.
4181         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4182         gen_eh_region_catch, gen_eh_region_allowed,
4183         gen_eh_region_must_not_throw, get_eh_region_number,
4184         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4185         set_eh_region_tree_label, expand_resx_expr): New.
4186         (expand_eh_region_start, expand_start_catch): Use them.
4187         (expand_end_catch): Tidy.
4188         (note_eh_region_may_contain_throw): Take region argument.
4189         (note_current_region_may_contain_throw): New.
4190         (get_exception_filter): Export.
4191         (collect_eh_region_array): Export.
4192         (remove_unreachable_regions): Check ERT_TRY based on reachability
4193         of catches, not reachability of continue_label.  Never remove
4194         ERT_MUST_NOT_THROW regions.
4195         (collect_rtl_labels_from_trees): New.
4196         (convert_from_eh_region_ranges): Use it.
4197         (connect_post_landing_pads): Handle dying cleanups.
4198         (struct reachable_info): Add callback data.
4199         (add_reachable_handler): Invoke the callback.
4200         (foreach_reachable_handler): New.
4201         (reachable_handlers): Use it.
4202         (arh_to_landing_pad, arh_to_label): New.
4203         (can_throw_internal_1): Split out from can_throw_internal.
4204         (can_throw_external_1): Similarly.
4205         * except.h: Update.
4206         * explow.c (emit_stack_save): Remove savearea mode check.
4207         (update_nonlocal_goto_save_area): New.
4208         (allocate_dynamic_stack_space): Use it.
4209         (probe_stack_range): Never emit loop notes.
4210         * expmed.c (extract_fixed_bit_field): Always propagate the
4211         target for the shift if it is a REG.
4212         * expr.c: Include tree-iterator.h
4213         (is_zeros_p): Remove.
4214         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4215         (count_type_elements): New.
4216         (mostly_zeros_p): Use them.
4217         (expr_wfl_stack): Remove.
4218         (convert_move): Do nothing if to and from are the same.
4219         (emit_block_move_via_loop): Don't emit LOOP notes.
4220         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4221         (emit_move_insn_1): Don't generate inline warnings.
4222         (expand_vars, expand_var): Split from ...
4223         (expand_expr_1): ... here.
4224         (expand_expr_real, expand_expr_real_1):  Use new macros
4225         EXPR_LOCATION and EXPR_HAS_LOCATION.
4226         * expr.h (simplify_builtin_fputs,
4227         simplify_builtin_strcpy, simplify_builtin_strncpy,
4228         expand_var, fixup_tail_calls,
4229         update_nonlocal_goto_save_area): Declare.
4230         (lookup_static_chain, expand_inline_function,
4231         mark_seen_cases): Remove.
4232         (prepare_call_address): Change type of 2nd argument to
4233         rtx.
4234         * final.c (profile_function): Update static chain test.
4235         (final): Don't look at RTX_INTEGRATED_P.
4236         * flags.h (flag_mudflap, flag_mudflap_threads,
4237         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4238         flag_tree_dce, flag_tree_combine_temps,
4239         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4240         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4241         flag_tree_points_to): Declare.
4242         (enum pta_type): Declare.
4243         * flow.c (lang_missing_noreturn_ok_p): Remove.
4244         (check_function_return_warnings): Remove.
4245         (update_life_info): Update comments.
4246         (free_basic_block_vars): Don't call VARRAY_FREE for
4247         basic_block_info.
4248         (regno_uninitialized): Remove.
4249         * fold-const.c (int_const_binop): Make extern.
4250         (non_lvalue): Rely on build to set TREE_CONSTANT.
4251         (operand_equal_p): Replace only_const argument with
4252         flags.  Allow pure functions if OEP_PURE_SAME.
4253         (fold): Use OEP_ONLY_CONST.
4254         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4255         boolean type.
4256         (fold_relational_hi_lo,
4257         nondestructive_fold_binary_to_constant,
4258         nondestructive_fold_unary_to_constant,
4259         fold_read_from_constant_string): New.
4260         * function.c (struct function): Remove calls_constant_p.
4261         (current_function_calls_constant_p): Remove.
4262         (inline_function_decl): Remove.
4263         (put_var_into_stack): Don't use it.
4264         (fix_lexical_addr): Likewise.
4265         (inline_function_decl): Remove extern declaration.
4266         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4267         (trampolines_created): Move to varasm.c.
4268         (free_after_compilation): Update for removed fields.
4269         (allocate_struct_function): Likewise.
4270         (delete_handlers, lookup_static_chain): Remove.
4271         (fix_lexical_addr): Don't consider non-local variable refs.
4272         (trampoline_address): Remove.
4273         (round_trampoline_addr): Move to builtins.c.
4274         (adjust_trampoline_addr): Remove.
4275         (expand_function_start): Update for changes to static chain
4276         and nonlocal goto handling.
4277         (initial_trampoline): Move to varasm.c.
4278         (expand_function_end): Don't build trampolines or kill
4279         unreferenced nonlocal goto labels.
4280         (free_after_compilation): Don't set it.
4281         (expand_function_end): Likewise.
4282         (setjmp_vars_warning): Rename from
4283         uninitialized_vars_warning, remove uninitialized vars warning.
4284         (uninitialized_vars_warning): Remove old comment
4285         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4286         and do not call the langhook.
4287         (expand_function_start, expand_function_end): Don't do
4288         function instrumentation here.
4289         (clear_block_marks): Rename from reorder_blocks_0, export.
4290         (blocks_nreverse): Export.
4291         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4292         of rtl.
4293         (reset_block_changes, record_block_change, finalize_block_changes,
4294         check_block_change, free_block_changes): New functions.
4295         (assign_parms): Setting of current_function_stdarg
4296         moved ...
4297         (allocate_struct_function): ... here.
4298         * function.h (struct function): Remove x_nonlocal_labels,
4299         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4300         x_context_display, x_trampoline_list, needs_context.
4301         Add static_chain_decl, nonlocal_goto_save_area.
4302         (struct function): Remove x_clobber_return_insn.
4303         Add tail_call_emit field, last_label_uid,
4304         unexpanded_var_list, dont_emit_block_notes,
4305         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4306         (clear_block_marks): Declare.
4307         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4308         (mfwrap_spec, mflib_spec): Declare.
4309         (cpp_unique_options, cc1_options): Ditto.
4310         (default_compilers): Add .F and .f90.
4311         (static_specs): Add mfwrap and mflib.
4312         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4313         CONSTANT_RTX_P.
4314         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4315         Update to match insns field in struct edge_def.
4316         * gdbinit.in (pgs, pge): Define.
4317         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4318         instead of the integrated flag.
4319         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4320         * gengtype-yacc.y (bitfieldlen): Add empty action.
4321         (struct_fields): Accept unnamed bitfields.
4322         (bitfieldlen): Split from ...
4323         (bitfieldopt): ... here.
4324         * gengtype.c (ifiles): Add tree-alias-type.h and
4325         tree-flow.h.
4326         * genrecog.c (validate_pattern): Do not handle
4327         CONSTANT_P_RTX.
4328         * gimple-low.c: New file.
4329         * gimplify.c: New file.
4330         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4331         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4332         * ifcvt.c (dead_or_predicable): Initialize local variable
4333         'earliest'.
4334         * input.h (expr_wfl_stack): Remove.
4335         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4336         (setup_initial_hard_reg_value_integration): Likewise.
4337         (initialize_for_inline): Likewise.
4338         (note_modified_parmregs): Likewise.
4339         (integrate_parm_decls): Likewise.
4340         (process_reg_param): Likewise.
4341         (save_parm_insns): Likewise.
4342         (copy_insn_list): Likewise.
4343         (copy_insn_notes): Likewise.
4344         (compare_blocks): Likewise.
4345         (find_block): Likewise.
4346         (inlining): Likewise.
4347         (function_cannot_inline_p): Likewise.
4348         (parmdecl_map): Likewise.
4349         (in_nonparam_insns): Likewise.
4350         (save_for_inline): Likewise.
4351         (FIXED_BASE_PLUS): Likewise.
4352         (expand_inline_function): Likewise.
4353         (copy_rtx_and_substitute): Don't look at map->integrating,
4354         map->inline_target, and inlining, since we are never copying
4355         for integrating.
4356         Don't abort on RTX_INTEGRATED_P.
4357         (old_fun): Remove.
4358         (output_inline_function): Remove.
4359         * integrate.h (struct inline_map): Remove fields integrating,
4360         block_map, leaf_reg_map, inline_target, and local_return_label.
4361         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4362         copy_loop_headers, never_reached_warning): Removed.
4363         (any_uncondjump_p): Reject nonlocal goto.
4364         * langhooks-def.h (lhd_types_compatible_p,
4365         lhd_expand_decl, lhd_gimplify_expr): Declare.
4366         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4367         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4368         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4369         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4370         LANG_HOOKS_GIMPLIFY_EXPR,
4371         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4372         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4373         LANG_HOOKS_GIMPLIFY_EXPR,
4374         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4375         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4376         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4377         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4378         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4379         LANG_HOOKS_DECL_UNINIT,
4380         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4381         * langhooks.c: Include tree-simple.h.
4382         (lhd_expand_decl): New.
4383         (lhd_types_compatible_p): New.
4384         (lhd_decl_uninit): Remove.
4385         (lhd_gimplify_expr): New.
4386         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4387         Remove.
4388         (struct lang_hooks_for_functions): Add field
4389         missing_noreturn_ok_p.
4390         (struct lang_hooks): Add field expand_decl,
4391         types_compatible_p, gimplify_expr and
4392         gimple_before_inlining.
4393         Remove fields decl_uninit and rtl_expand
4394         * opts.c (decode_options): Set flag_tree_ccp,
4395         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4396         flag_tree_pre, flag_tree_ter,
4397         flag_tree_live_range_split, flag_tree_sra,
4398         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4399         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4400         OPT_fmudflapth, OPT_fmudflapir,
4401         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4402         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4403         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4404         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4405         OPT_ftree_points_to_ and OPT_ftree_pre.
4406         * output.h (regno_uninitialized, find_basic_blocks,
4407         cleanup_cfg, delete_unreachable_blocks,
4408         check_function_return_warnings): Remove.
4409         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4410         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4411         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4412         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4413         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4414         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4415         Define.
4416         * passes.c (rest_of_decl_compilation):
4417         (rest_of_handle_sibling_calls): Remove.
4418         (rest_of_handle_inlining): Remove.
4419         (rest_of_handle_gcse): Do not run
4420         purge_builtin_constant_p.
4421         (rest_of_compilation): Update.
4422         Do not call copy_loop_headers.
4423         Do rtl-based profiling only when
4424         !flag_tree_based_profiling.  Register rtl-based profiling
4425         hooks.
4426         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4427         (predicted_by_p): Rename to ...
4428         (rtl_predicted_by_p): .. this one; make global
4429         (tree_predicted_by_p): New.
4430         (dump_prediction): Add FILE argument.
4431         (predict_edge): Rename to ...
4432         (rtl_predict_edge): .. this one.
4433         (tree_predict_edge): New.
4434         (combine_predictions_for_insn): Update calls of predict_edge.
4435         (predict_loops): Break out from ...
4436         (estimate_probability): ... here; update comments; move updating
4437         of unknown probabilities from ...
4438         (estimate_bb_frequencies): ... here.
4439         (combine_predictions_for_bb): New.
4440         (tree_predict_by_opcode): New.
4441         (tree_estimate_probability): New.
4442         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4443         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4444         * predict.h: Add include guard.
4445         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4446         * pretty-print.c (pp_write_text_to_stream): Make extern.
4447         * pretty-print.h (pp_write_text_to_stream): Declare.
4448         * print-rtl.c (print_rtx): Don't print the integrated flag.
4449         Print the return_val flag.
4450         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4451         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4452         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4453         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4454         * profile.c: Include cfghooks.h, tree-flow.h.
4455         (profile_hooks): New.
4456         (profile_dump_file): New.
4457         (instrument_edges): Use hooks instead of RTL-specific code.
4458         (instrument_values): Ditto.
4459         (get_exec_counts): Ditto.
4460         (compute_branch_probabilities): Ditto.
4461         (compute_value_histograms): Ditto.
4462         (branch_prob): Ditto.
4463         (find_spanning_tree): Ditto.
4464         (end_branch_prob): Ditto.
4465         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4466         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4467         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4468         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4469         (tree_register_profile_hooks): New.
4470         (rtl_register_profile_hooks): New.
4471         * ra-rewrite.c (rewrite_program): Clear variable info.
4472         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4473         * regs.h: Add include guards.
4474         * reload.c (decompose): Clear val using memset.
4475         * rtl.def (CONSTANT_P_RTX): Remove.
4476         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4477         (copy_loop_headers): Remove.
4478         (struct rtx_def): Replace the integrated flag with the
4479         return_val flag.
4480         (maybe_set_first_label_num): Declare.
4481         (init_branch_prob): Move declaration to value-prof.h.
4482         (end_branch_prob): Ditto.
4483         (branch_prob): Ditto.
4484         (never_reached_warning): Don't declare it.
4485         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4486         (hoist_insn_to_edge): Update to match field insns in
4487         struct edge_def.
4488         * sbitmap.c (sbitmap_realloc): New.
4489         * sbitmap.h (sbitmap_realloc): Declare.
4490         * sibcall.c: Remove file.
4491         * simplify-rtx.c (simplify_rtx): Do not handle
4492         CONSTANT_P_RTX.
4493         * stmt.c (parse_output_constraint): Don't warn for read-write
4494         memory operand.
4495         (tail_recursion_args): Use types_compatible_p langhook.
4496         (force_label_rtx): Don't look at inline_function_decl.
4497         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4498         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4499         (declare_nonlocal_label): Remove.
4500         (expand_goto): Don't handle nonlocal gotos.
4501         (expand_nl_handler_label): Remove.
4502         (expand_nl_goto_receivers): Remove.
4503         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4504         update_nonlocal_goto_save_area.
4505         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4506         (warn_if_unused_value): Likewise.
4507         (expand_start_loop, expand_loop_continue_here,
4508         expand_end_loop): Don't create loop notes.
4509         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4510         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4511         (expand_end_case_type): Don't do warn_switch handling.
4512         (pushcase, pushcase_range) Update add_case_node calls.
4513         (add_case_node): Add dont_expand_label argument.
4514         (same_case_target_p): Don't search rtl.
4515         (expand_start_bindings_and_block, expand_end_bindings):
4516         Don't emit block notes when dont_emit_block_notes.
4517         (using_eh_for_cleanups_p): Export.
4518         (expand_return): Allow any typed rhs.
4519         (expand_stack_alloc): New.
4520         (expand_stack_save, expand_stack_restore): New.
4521         (containing_blocks_have_cleanups_or_stack_level): New
4522         function.
4523         (asm_op_is_mem_input): New fn.
4524         (expand_asm_expr): New fn.
4525         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4526         nodes.
4527         * stor-layout.c (layout_type): Just return if type is
4528         error_mark_node.
4529         (update_alignment_for_field): Export.
4530         (variable_size): We don't care about global_bindings_p if
4531         the frontend doesn't want a list of the expressions.
4532         * system.h: Poison INTEGRATE_THRESHOLD.
4533         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4534         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4535         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4536         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4537         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4538         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4539         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4540         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4541         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4542         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4543         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4544         TV_CONTROL_DEPENDENCES): Define.
4545         * toplev.c: Include tree-alias-common.h
4546         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4547         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4548         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4549         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4550         flag_tree_combine_temps, flag_tree_ter,
4551         flag_tree_live_range_split, flag_tree_dom,
4552         flag_tree_copyrename, flag_tree_dse): Declare.
4553         (f_options): Add tree-based-profiling, tree-gvn,
4554         tree-pre, tree-ccp, tree-dce,
4555         tree-dominator-opts, tree-copyrename, tree-dse,
4556         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4557         (wrapup_global_declarations): Don't output nested inlined functions.
4558         (general_init): Call init_tree_optimization_passes.
4559         (process_options): Sorry for -ftree-based-profiling plus
4560         -ftest-coverage or -fprofile-values.
4561         * toplev.h (init_tree_optimization_passes,
4562         flag_tree_based_profiling): Declare.
4563         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4564         * tree-alias-ander.c: New file.
4565         * tree-alias-ander.h: New file.
4566         * tree-alias-common.c: New file.
4567         * tree-alias-common.h: New file.
4568         * tree-alias-type.c: New file.
4569         * tree-alias-type.h: New file.
4570         * tree-browser.c: New file.
4571         * tree-browser.def: New file.
4572         * tree-cfg.c: New file.
4573         * tree-complex.c: New file.
4574         * tree-dfa.c: New file.
4575         * tree-dump.c (dump_enable_all): New.
4576         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4577         (dump_node): Remove const from field suffix and swtch.
4578         (dump_files): Add null entry, .generic, .nested, .vcg,
4579         .xml and a match-all entry.
4580         (extra_dump_files, extra_dump_files_in_use,
4581         extra_dump_files_alloced): Declare
4582         (dump_option_value_info): Add raw, details, stats,
4583         blocks, vops, lineno, uid and all.
4584         (dump_register): New.
4585         (get_dump_file_info): New.
4586         (dump_begin): Call it.
4587         Do nothing for TDI_none.
4588         (dump_begin): Include phase number in dump filename.
4589         (dump_enable_all): New.
4590         (dump_switch_p_1): Split out from dump_switch_p.
4591         (dump_switch_p): Handle extra_dump_files.
4592         Start our scan at TDI_none + 1.
4593         If -fdump-tree-all was given, call dump_enable_all.
4594         * tree-dump.h: Include splay-tree.h.
4595         (dump_function, dump_function_to_file, dump_register):
4596         Declare.
4597         * tree-eh.c: New file.
4598         * tree-flow-inline.h: New file.
4599         * tree-flow.h: New file.
4600         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4601         * tree-inline.h (walk_tree,
4602         walk_tree_without_duplicates): Move to tree.h.
4603         (estimate_num_insns): Declare.
4604         * tree-into-ssa.c: New file.
4605         * tree-iterator.c: New file.
4606         * tree-iterator.h: New file.
4607         * tree-mudflap.c: New file.
4608         * tree-mudflap.h: New file.
4609         * tree-nested.c: New file.
4610         * tree-nomudflap.c: New file.
4611         * tree-nrv.c: New file.
4612         * tree-optimize.c (dump_flags, vars_to_rename,
4613         in_gimple_form, all_passes, pass_gimple,
4614         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4615         (execute_gimple, execute_rebuild_bind,
4616         gate_all_optimizations, execute_del_cfg,
4617         register_one_dump_file, register_dump_files, dup_pass_1,
4618         init_tree_optimization_passes, execute_todo,
4619         execute_one_pass, execute_pass_list): New.
4620         (clear_decl_rtl): Remove.
4621         (tree_rest_of_compilation): Update to use tree
4622         optimizers.
4623         * tree-outof-ssa.c: New file.
4624         * tree-pass.h: New file.
4625         * tree-phinodes.c: New file.
4626         * tree-pretty-print.c: New file.
4627         * tree-profile.c: New file.
4628         * tree-simple.c: New file.
4629         * tree-simple.h: New file.
4630         * tree-sra.c: New file.
4631         * tree-ssa-alias.c: New file.
4632         * tree-ssa-ccp.c: New file.
4633         * tree-ssa-copy.c: New file.
4634         * tree-ssa-copyrename.c: New file.
4635         * tree-ssa-dce.c: New file.
4636         * tree-ssa-dom.c: New file.
4637         * tree-ssa-dse.c: New file.
4638         * tree-ssa-forwprop.c: New file.
4639         * tree-ssa-live.c: New file.
4640         * tree-ssa-live.h: New file.
4641         * tree-ssa-loop.c: New file.
4642         * tree-ssa-operands.c: New file.
4643         * tree-ssa-operands.h: New file.
4644         * tree-ssa-phiopt.c: New file.
4645         * tree-ssa-pre.c: New file.
4646         * tree-ssa.c: New file.
4647         * tree-ssanames.c: New file.
4648         * tree-tailcall.c: New file.
4649         * tree.c: Include tree-iterator.h, basic-block.h and
4650         tree-flow.h.
4651         (tree_node_kind): Add phi_nodes and ssa names.
4652         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4653         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4654         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4655         <'c'> Set TREE_INVARIANT.
4656         (copy_node_stat): Abort if trying to copy a
4657         STATEMENT_LIST.
4658         Clear TREE_VISITED.
4659         Clear annotation field.
4660         (build_constructor): Copy TREE_INVARIANT from vals.
4661         Don't clear TREE_CONSTANT.
4662         (expr_first, expr_last, expr_length): Remove.
4663         (staticp): Pass unknown component references to the language.
4664         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4665         (skip_simple_arithmetic): Likewise.
4666         (stabilize_reference_1): Likewise.
4667         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4668         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4669         STATEMENT_LIST.
4670         (lhd_unsave_expr_now): Remove.
4671         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4672         (recompute_tree_invarant_for_addr_expr): New.
4673         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4674         Call recompute_tree_invarant_for_addr_expr.
4675         Set TREE_INVARIANT accordingly.
4676         (build2_stat): Don't handle CALL_EXPR.
4677         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4678         (build_expr_wfl): Remove.
4679         (annotate_with_file_line, annotate_with_locus): New.
4680         (simple_cst_equal): Call simple_cst_list_equal to compare
4681         CONSTRUCTOR_ELTS pointers.
4682         (iterative_hash_expr): Don't hash types associated
4683         with conversions.  Instead hash on the signedness of the
4684         toplevel object and the operand of the conversion.
4685         (dump_tree_statistics): Call ssanames_print_statistics
4686         and phinodes_print_statistics.
4687         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4688         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4689         needs_to_live_in_memory): New.
4690         (initializer_zerop): Handle VECTOR_CST.  Don't check
4691         AGGREGATE_TYPE_P for CONSTRUCTOR.
4692         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4693         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4694         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4695         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4696         (CALL_EXPR): Add another operand.
4697         (EXPR_WITH_FILE_LOCATION): Remove.
4698         (SWITCH_EXPR): Add another operand.
4699         * tree.h: Update various comments.
4700         (union tree_ann_d): Forward declare.
4701         (struct tree_common): Add fields nowarning_flag,
4702         invariant_flag and visited.
4703         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4704         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4705         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4706         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4707         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4708         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4709         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4710         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4711         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4712         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4713         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4714         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4715         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4716         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4717         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4718         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4719         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4720         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4721         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4722         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4723         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4724         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4725         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4726         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4727         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4728         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4729         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4730         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4731         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4732         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4733         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4734         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4735         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4736         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4737         TDF_UID,): Define.
4738         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4739         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4740         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4741         EXPR_WFL_SET_LINECOL): Remove.
4742         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4743         make_phi_node, init_phinodes, fini_phinodes,
4744         release_phi_node, phinodes_print_statistics,
4745         init_ssanames, fini_ssanames, make_ssa_name,
4746         release_ssa_name, ssanames_print_statistics,
4747         annotate_with_file_line, build_empty_stmt,
4748         annotate_with_locus, expr_only, categorize_ctor_elements,
4749         count_type_elements, add_var_to_bind_expr, is_essa_node,
4750         expand_stack_alloc, expand_stack_save,
4751         expand_stack_restore, add_case_node, operand_equal_p,
4752         nondestructive_fold_unary_to_constant,
4753         nondestructive_fold_binary_to_constant,
4754         fold_read_from_constant_string, int_const_binop,
4755         strip_float_extensions, simplify_builtin, c_strlen,
4756         recompute_tree_invarant_for_addr_expr,
4757         needs_to_live_in_memory, make_vector,
4758         setjmp_vars_warning, update_alignment_for_field,
4759         expand_asm_expr, asm_op_is_mem_input,
4760         containing_blocks_have_cleanups_or_stack_level,
4761         create_artificial_label, gimplify_function_tree,
4762         get_name, unshare_expr, walk_tree,
4763         walk_tree_without_duplicates, in_gimple_form): Declare.
4764         (struct tree_exp): Add fields locus and block.
4765         (struct tree_ssa_name, struct edge_def, struct
4766         tree_phi_node, struct tree_eref_common, struct
4767         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4768         union alias_var_def, struct tree_statement_list_node,
4769         struct tree_statement_list, enum operand_equal_flag): Declare.
4770         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4771         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4772         TS_STATEMENT_LIST.
4773         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4774         euse and stmt_list.
4775         (function_cannot_inline_p, uninitialized_vars_warning,
4776         save_for_inline, output_inline_function, all_cases_count,
4777         check_for_full_enumeration_handling,
4778         declare_nonlocal_label): Remove.
4779         (enum tree_dump_index): Add TDI_none, TDI_tu,
4780         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4781         * unroll.c (unroll_loop): Don't clear map->inline_target.
4782         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4783         function.
4784         * value-prof.c (value_prof_hooks): New.
4785         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4786         Move rtl-specific bits in from branch_prob.
4787         (value_profile_transformations): Rename to
4788         rtl_value_profile_transformations.
4789         (struct value_prof_hooks): New.
4790         (rtl_value_prof_hooks): New.
4791         (rtl_register_value_prof_hooks): New.
4792         (tree_find_values_to_profile): New stub.
4793         (tree_value_profile_transformations): New stub.
4794         (tree_value_prof_hooks): New stub.
4795         (tree_register_value_prof_hooks): New stub.
4796         (find_values_to_profile): New.
4797         (value_profile_transformations): New.
4798         * value-prof.h: Add multiple inclusion guard.
4799         (struct histogram_value): Change rtx fields to void *.
4800         (rtl_register_value_prof_hooks): New declaration.
4801         (tree_register_value_prof_hooks): New declaration.
4802         (find_values_to_profile): New declaration.
4803         (free_profiled_values): New declaration.
4804         (value_profile_transformations): New declaration.
4805         (struct profile_hooks): New declaration.
4806         (init_branch_prob): Declaration moved from rtl.h.
4807         (branch_prob): Declaration moved from rtl.h.
4808         (end_branch_prob): Declaration mooved from rtl.h.
4809         (tree_register_profile_hooks): New declaration.
4810         (rtl_register_profile_hooks): New declaration.
4811         (tree_profile_hooks): New declaration.
4812         (rtl_profile_hooks): New declaration.
4813         * varasm.c: Include tree-mudflap.h.
4814         (TRAMPOLINE_ALIGNMENT): Remove.
4815         (make_decl_rtl): Call mudflap_enqueue_decl.
4816         (assemble_static_space):
4817         (assemble_trampoline_template): Set and return
4818         TRAMPOLINE_ALIGNMENT.
4819         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4820         Add entry for 'tree *'.
4821         Add entry for struct edge_def *.
4822         (varray_copy): New.
4823         * varray.h (enum varray_data_enum): Add
4824         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4825         VARRAY_DATA_TREE_PTR.
4826         (union varray_data_tag): Corresponding changes.
4827         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4828         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4829         VARRAY_EDGE, VARRAY_TREE_PTR,
4830         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4831         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4832         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4833
4834         * config/*/*: Various updates for changed macros, tree
4835         codes, etc.  Check ChangeLog.tree-ssa.
4836
4837         * doc/cfg.texi: New file.
4838         * doc/tree-ssa.texi: New file.
4839         * doc/c-tree.texi: Document new codes.
4840         * doc/gccint.texi: Include new files.
4841         * doc/install.texi: Document new features.
4842         * doc/invoke.texi: Document new switches.
4843         * doc/passes.texi: Document new passes.
4844         * doc/rtl.texi: Update changed RTL codes.
4845         * doc/sourcebuild.texi: Update build instructions.
4846         * doc/standards.texi: Document Fortran changes.
4847         * doc/tm.texi: Update.
4848
4849 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4850
4851         Replace several arrays with a struct of arrays.
4852         * combine.c (struct reg_stat): New.
4853         (init_reg_last_arrays): Renamed to...
4854         (init_reg_last): ...this.  Callers adjusted.
4855         (reg_stat): New.
4856         (combine_instructions): Allocate it and use it.
4857         (reg_last_death, reg_last_set, reg_last_set_value,
4858         reg_last_set_label, reg_last_set_table_tick,
4859         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4860         reg_last_set_mode, reg_last_set_nonzero_bits,
4861         reg_last_set_sign_bit_copies): Replace throughout
4862         with items of reg_stat.
4863
4864 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4865
4866         PR optimization/15100
4867         * combine.c (distribute_notes): Don't create a dangling
4868         REG_LIBCALL/REG_RETVAL note.
4869
4870 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4871
4872         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4873
4874         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4875         negv2si2.
4876
4877 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4878
4879         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4880
4881 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4882
4883         * doc/gty.texi (GTY Options): Clarify example.
4884
4885 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4886
4887         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4888         Add const qualifier to altivec vector type if one is needed.
4889
4890 2004-05-11  Paul Brook  <paul@codesourcery.com>
4891
4892         * flags.h (flag_short_enums): Update comment.
4893         * opts.c (decode_options): Set flag_short_enums to 2.
4894         * toplev.c (flag_short_enums): Update comment.
4895         (process_options): Call default_short_enums target hook.
4896
4897 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4898
4899         PR target/14063
4900         * config/rs6000/altivec.md (altivec_dssall):
4901         Change to unspec_volatile.
4902         (altivec_dss): Likewise.
4903
4904 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4905
4906         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4907         vnor.
4908         ("one_cmplv8hi2"): Same.
4909         ("one_cmplv4si2"): Same.
4910
4911 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4912
4913         PR target/15130
4914         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4915         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4916         into account.  Compute the correct number of general registers
4917         for the return value.  Generate a special push/pop sequence when
4918         failing to get a temporary register for non SHmedia epilogue.
4919         (sh_expand_epilogue): Add an argument to show whether it's for
4920         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4921         -1 if needed.
4922         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4923         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4924         with 1.
4925         (epilogue): Call sh_expand_epilogue with 0.
4926
4927 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4928
4929         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4930         goto a cleanup label.  After the cleanup, free the allocated memory.
4931
4932 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4933
4934         * config/rs6000/altivec.h (vec_sld): Add overloads for
4935         argument/return types of 'vector bool int', 'vector bool short'
4936         and 'vector bool char'.
4937
4938 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4939
4940         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4941         nested function.
4942
4943 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4944
4945         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4946         treating missing ones as "".
4947         * config/mips/mips.md: Remove constraints from match_operands and
4948         match_scratches if they appear in define_expands (except reload*),
4949         define_peephole2s, define_splits or attribute specifications.
4950         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4951         constraint strings.
4952
4953 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4954
4955         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4956         AltiVec vectors.
4957         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4958         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4959         byte boundary.  Remove useless code.  Add function comment.
4960         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4961         call to where it belongs.
4962         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4963         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4964         (rs6000_va_arg): Adjust for AltiVec change.
4965
4966 2004-05-10  Paul Brook  <paul@codesourcery.com>
4967
4968         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4969         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4970         (TARGET_DOUBLEWORD_ALIGN): Use it.
4971         (WCHAR_TYPE): Define.
4972         (WCHAR_SIZE_TYPE): Define.
4973         (SIZE_TYPE): Define.
4974
4975 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4976
4977         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4978         when size is 8 bytes.
4979         (function_arg_advance): Account for stack space used by AltiVec
4980         args when -mabi=altivec.  Simplify alignment calculations.  For
4981         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4982         (function_arg): Similarly.
4983         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4984         not AltiVec ABI.
4985         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4986         Correct alignment, and align before testing reg count.  Remove
4987         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4988         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4989         TARGET_FPRS here..
4990         (rs6000_function_value): .. not here before call.
4991
4992 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4993
4994         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4995
4996 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4997
4998         PR 15007
4999         * c-decl.c (current_file_decl): Rename to all_translation_units,
5000         adjust comment.
5001         (pop_scope): If popping file_scope, construct a
5002         TRANSLATION_UNIT_DECL and make it the context of all the
5003         symbols in the scope.
5004         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5005         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5006         anything to current_file_decl.
5007         (pushdecl_top_level): Likewise.
5008         (store_parm_decls_newstyle): Adjust check for nested function.
5009         (c_write_global_declarations): Update for renamed variable.
5010
5011 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5012
5013         * config/rs6000/rs6000-protos.h
5014         (rs6000_conditional_register_usage): Protoize.
5015
5016         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5017
5018         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5019         function.
5020
5021 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5022
5023         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5024         where op is a comparison operator and C1 and C2 are integer constants
5025         into a range check.
5026         (fold): Call fold_div_compare.
5027
5028 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5029
5030         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5031         problems with earlier versions of the GNU compiler.
5032
5033 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5034
5035         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5036         Declare.
5037
5038         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5039         (rs6000_hard_regno_mode_ok): New.
5040         (rs6000_init_hard_regno_mode_ok): New.
5041         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5042
5043         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5044         result.
5045
5046 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5047
5048         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5049         define as macros #ifdef __APPLE_ALTIVEC__.
5050
5051 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5052
5053         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5054         Generate appropriate parallels for vector arguments
5055         passed to vararg functions. (function_arg): make the call
5056         to rs6000_mixed_function_arg for vector args as needed.
5057
5058 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5059
5060         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5061         EABI_FLOAT_VARARGS_P.
5062
5063 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5064
5065         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5066         * config/mips/mips.c (override_options): Disable branch likely
5067         instructions if TUNE_MIPS5500.
5068
5069 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5070
5071         * config/mips/mips.c (override_options): Allow the hi and lo registers
5072         to store any integral mode, not just MODE_INTs.
5073
5074 2004-05-07  Paul Brook  <paul@codesourcery.com>
5075
5076         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5077         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5078         (TARGET_DOUBLEWORD_ALIGN): Use it.
5079         (WCHAR_TYPE): Define.
5080         (WCHAR_SIZE_TYPE): Define.
5081         (SIZE_TYPE): Define.
5082
5083 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5084
5085         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5086         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5087
5088 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5089
5090         * loop-doloop.c (doloop_valid_p): Make sure that body
5091         gets freed.
5092
5093 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5094
5095         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5096         declaration.
5097         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5098         (sparc_skip_caller_unimp): New global variable.
5099         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5100         Use it instead of SKIP_CALLERS_UNIMP_P.
5101         * config/sparc/sparc.md (call expander): Add sanity check.
5102         (call_address_struct_value_sp32): Re-sync with expander.
5103         (call_symbolic_struct_value_sp32): Likewise.
5104         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5105         of custom predicate.
5106
5107 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5108
5109         PR c++/14962
5110         * c-pragma.c (handle_pragma_redefine_extname): Only change
5111         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5112
5113 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5114
5115         * optabs.h (enum optab_index): Add new OTI_log1p.
5116         (log1p_optab): Define corresponding macro.
5117         * optabs.c (init_optabs): Initialize log1p_optab.
5118         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5119         patterns.
5120         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5121         using log1p_optab.
5122         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5123         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5124
5125         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5126
5127         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5128         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5129         Prototype here.
5130         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5131         x87's fyl2xp1 instruction.
5132         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5133         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5134         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5135         log1p  and log1pl built-ins as inline x87 intrinsics.
5136
5137 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5138
5139         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5140         * config/arm/freebsd.h: Likewise.
5141         * config/ia64/freebsd.h: Likewise.
5142         * config/sparc/freebsd.h: Likewise.
5143
5144 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5145
5146         PR optimization/15296
5147         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5148         getting last consecutive label at a branch.
5149         (relax_delay_slots): Similar, near top of loop.
5150
5151 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5152
5153         PR target/15202
5154         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5155         register to general register.
5156
5157 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5158
5159         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5160         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5161         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5162         (STACK_BOUNDARY): Delete.
5163
5164 2004-05-06  Stuart Hastings  <stuart@apple.com>
5165
5166         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5167         mistakenly clobbered by 1.423.
5168
5169 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5170
5171         * doc/invoke.texi: Document -mvr4130-align.
5172         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5173         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5174         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5175         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5176         * config/mips/mips.md: Include sched-int.h.
5177         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5178         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5179         (override_options): Enable -mvr4130-align at -O3 and above.
5180         (mips_sim_insn): New variable.
5181         (mips_sim): New structure.
5182         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5183         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5184         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5185         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5186         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5187         (mips_reorg): Call vr4130_align_insns.
5188         (vr4130_last_insn): New variable.
5189         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5190         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5191         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5192         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5193         (mips_use_dfa_pipeline_interface): Return true for the same.
5194         * config/mips/4130.md: New file.
5195         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5196         "mult;mflo" into "mtlo;macc".
5197         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5198         target of maccs.
5199         (*msac_using_macc): New pattern.
5200
5201 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5202
5203         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5204         (ir_vr55_hilo): Split into...
5205         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5206         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5207         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5208         Add various multiplication bypasses.
5209         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5210         multiplication.
5211
5212 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5213
5214         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5215         attribute to "XF".
5216
5217 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5218
5219         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5220         (fmod_optab, drem_optab): Define corresponding macros.
5221         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5222         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5223         using fmod?f3 and drem?f3 patterns.
5224         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5225         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5226         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5227         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5228         flag_unsafe_math_optimizations is set.
5229
5230         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5231         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5232
5233         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5234         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5235         Prototype here.
5236         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5237         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5238         fprem and fprem1 instructions.
5239         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5240         Rename insn definition to x86_fnstsw_1.
5241         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5242         x87 instructions.
5243         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5244         and fmodl built-ins as inline x87 intrinsics.
5245         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5246         and dreml built-ins as inline x87 intrinsics.
5247
5248 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5249
5250         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5251
5252 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5253
5254         PR driver/9822
5255         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5256
5257 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5258
5259         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5260         representation.
5261
5262 2004-05-06  Paul Brook  <paul@codesourcery.com>
5263
5264         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5265         (arm_coproc_mem_operand): ... To this.
5266         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5267         (arm_legitimate_index_p): Ditto.
5268         (vfp_mem_operand): Rename ...
5269         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5270         (vfp_secondary_reload_class): Use it.
5271         (output_move_double): Use doubleword load/store instructions.
5272         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5273         * config/arm/arm.h (TARGET_LDRD): Define.
5274         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5275         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5276         New splitter for invalid doubleword loads.
5277         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5278         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5279         * doc/md.texi: Document Uy constraint.
5280
5281 2004-05-05  Jan Hubicka  <jh@suse.cz>
5282
5283         PR opt/14980
5284         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5285         inline clones.
5286
5287 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5288
5289         PR target/15290
5290         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5291         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5292
5293 2004-05-05  Mike Stump  <mrs@apple.com>
5294
5295         * config/darwin-c.c (add_framework): Copy the directory name as it
5296         can be freed later.  Also, ensure we always allocate enough room
5297         for the cached framework information.
5298         (find_subframework_header): Keep track of the directory where the
5299         subframework header was found.
5300         (framework_construct_pathname): Speed up by not trying to re-add a
5301         framework.
5302         * cppfiles.c (search_path_exhausted): Arrange for the missing
5303         header callback to be able to set the directory where the header
5304         was found.
5305         (cpp_get_dir): Add.
5306         * cpplib.h (missing_header_cb): Add a parameter.
5307         (cpp_get_dir): Add.
5308
5309 2004-05-03  Mike Stump  <mrs@apple.com>
5310
5311         * doc/invoke.texi (Directory Options): Document -iquote.
5312         * doc/cpp.texi: Likewise.
5313         * doc/cppopts.texi: Likewise.
5314         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5315         (c_common_handle_option): Likewise.
5316         * c.opt (iquote): Add.
5317         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5318         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5319
5320         * c-opts.c (case OPT_I): Deprecate -I- support.
5321         * doc/invoke.texi: Likewise.
5322         * doc/cpp.texi: Likewise.
5323         * doc/cppopts.texi: Likewise.
5324
5325 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5326
5327         * basic-block.h (free_basic_block_vars): Update prototype.
5328         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5329         argument.
5330         (life_analysis): Update call.
5331         * ifcvt.c (if_convert): Likewise.
5332         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5333         * passes.c (rest_of_handle_final): Likewise.
5334         (rest_of_compilation): Likewise.
5335         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5336
5337         * emit-rtl.c (next_real_insn): Use INSN_P.
5338         (prev_real_insn): Likewise.
5339
5340 2004-05-05  Eric Christopher  <echristo@redhat.com>
5341
5342         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5343         representation.
5344
5345 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5346
5347         * config/rs6000/rs6000.c (build_opaque_vector_type):
5348         New function.
5349         (rs6000_init_builtins): Use it.
5350
5351 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5352
5353         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5354         (func_table): Change type from char ** to vms_func_ref.
5355         (write_rtnbeg):  Update to reflect func_table change.  Use
5356         fde->funcdef_number instead of rtnnum in output.
5357         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5358
5359 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5360             Richard Henderson  <rth@redhat.com>
5361
5362         PR target/14899
5363
5364         * c-common.c (vector_types_convertible_p): New function.
5365         * c-typeck.c (comptypes): Recurse on vector types.
5366         (convert_for_assignment): Use vector_types_convertible_p.
5367         (digest_init): Use vector_types_convertible_p to check
5368         validness of constant vector initializers; otherwise treat
5369         them as scalars.
5370         * tree.c (make_or_reuse_type): New.
5371         (build_common_tree_nodes): Use it.
5372         * cp/call.c (standard_conversion): Likewise.
5373         * cp/typeck.c (comptypes): Recurse on vector types.
5374         (convert_for_assignment): Use vector_types_convertible_p.
5375
5376 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5377
5378         * config/mips/mips.c (override_options): Default to no
5379         generation of branch-likely operations when tuning for
5380         CPUs where they tend to have a negative performance impact
5381         (e.g., SB-1).
5382
5383 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5384
5385         * expr.c (store_constructor_field): Don't call store_constructor
5386         if bitsize is not a multiple of a byte.
5387
5388 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5389
5390         * reload1.c (inherit_piecemeal_p): New function.
5391         (emit_reload_insns): When reloading a group of hard registers, use
5392         inherit_piecemeal_p to decide whether the values of individual hard
5393         registers can be inherited.
5394
5395 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5396
5397         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5398         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5399         * config/t-linux (LIB2ADDEHDEP): Likewise.
5400
5401 2004-05-04  Paul Brook  <paul@codesourcery.com>
5402
5403         * config/arm/crti.asm: Push an even number of registers.
5404         * config/arm/crtn.asm: And restore them.  Load via sp.
5405
5406 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5407
5408         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5409         Collect overhead information.
5410         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5411         parameter and pass it through.
5412         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5413         MEM_STAT_DECL parameter and pass it through.
5414         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5415         MEM_STAT_DECL parameter and pass it through.
5416
5417 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5418
5419         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5420
5421         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5422
5423         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5424         rs6000_hard_regno_nregs.
5425
5426 2004-05-03  Eric Christopher  <echristo@redhat.com>
5427
5428         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5429         prologue insn instead of setting up call.
5430         (s390_emit_epilogue): Ditto.
5431         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5432         (define_constants): Add numbers for above patterns.
5433
5434 2004-05-03  Eric Christopher  <echristo@redhat.com>
5435
5436         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5437         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5438         * config/s390/s390-protos.h: Prototype.
5439
5440 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5441
5442         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5443         assignment.
5444
5445 2004-05-03  Eric Christopher  <echristo@redhat.com>
5446
5447         * config/mips/mips.md: Fix branch length attribute definition.
5448
5449 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5450
5451         * config.gcc: Remove --enable-altivec support.
5452
5453         * config/rs6000/altivec-defs.h: Remove.
5454
5455 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5456
5457         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5458         * fixinc/fixincl.x: Regenerate.
5459
5460 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5461
5462         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5463         definition.
5464         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5465         float_truncate insn.
5466         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5467         (logb?f2): Reimplement expanders with float_truncate insn.
5468
5469 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5470
5471         PR 14718
5472         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5473         force_type_die for CONST_DECL.
5474
5475 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5476             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5477
5478         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5479         tm-dwarf2.h to tm_file.
5480         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5481         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5482         (ASM_DEBUG_SPEC): Delete.
5483
5484 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5485
5486         * optabs.h (enum optab_index): Add new OTI_expm1.
5487         (expm1_optab): Define corresponding macro.
5488         * optabs.c (init_optabs): Initialize expm1_optab.
5489         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5490         patterns.
5491         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5492         using expm1_optab.
5493         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5494         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5495
5496         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5497         to implement expm1, expm1f and expm1l built-ins as inline x87
5498         intrinsics.
5499
5500 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5501
5502         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5503         * config/frv/frv.md (*return_true, *return_false): New patterns.
5504
5505 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5506
5507         * rtl.h (PHI_NODE_P): Remove.
5508
5509 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5510
5511         PR middle-end/14988
5512         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5513         when passed -2 as 'align'.
5514         (put_var_into_stack): Use 'bool' as the type for the three local
5515         predicates.  Adjust calls to put_reg_into_stack.
5516         When passed a CONCAT, instruct put_reg_into_stack to use
5517         a consecutive stack slot for the second part.
5518         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5519         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5520         parameters.  Retrieve the register mode from 'reg'.
5521         When consecutive_p is true, instruct assign_stack_local_1 to use
5522         BITS_PER_UNIT alignment.
5523         (put_addressof_into_stack): Use 'bool' as the type for the two
5524         local predicates. Adjust call to put_reg_into_stack.
5525
5526 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5527
5528         * fold-const.c (fold_convert_const, fold): Add missing
5529         FIX_ROUND_EXPR case.
5530
5531 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5532
5533         * configure.ac (FLEX, BISON): Only use tools from the build tree
5534         if build equals host.
5535         * configure: Rebuilt.
5536
5537         * config/frv/frv-protos.h (frv_expand_epilogue,
5538         frv_expand_fdpic_call): Add bool argument.
5539         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5540         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5541         (frv_expand_epilogue): Use new argument to decide whether to emit
5542         return instruction or copy the return address to LR.
5543         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5544         sibcalls.
5545         (sibcall_operand): New.
5546         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5547         PLUS nor LABEL_REF.  Add sibcall_operand.
5548         * config/frv/frv.md (call, call_value): Pass false to
5549         frv_expand_fdpic_call.
5550         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5551         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5552         sibcall_value_internal, sibcall_value_fdpicdi): New.
5553         (return_unsigned_true, return_unsigned_false): New.
5554         (epilogue): Adjust call to frv_expand_epilogue.
5555         (sibcall_epilogue): New.
5556
5557         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5558         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5559         before redefining them.
5560
5561 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5562
5563         * builtins.c (fold_fixed_mathfn): New function.
5564         (fold_builtin_lround, fold_builtin): Use it.
5565
5566 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5567
5568         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5569         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5570
5571 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5572
5573         * config/cris/cris.h: Revert my "fix comment typos" patch.
5574
5575 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5576
5577         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5578
5579 2004-05-01  Falk Hueffner  <falk@debian.org>
5580
5581         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5582         builtin_insll): Disallow 0 as first input operand.
5583
5584 2004-05-01  Falk Hueffner  <falk@debian.org>
5585
5586         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5587
5588 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5589
5590         PR middle-end/15054
5591         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5592         on a TARGET_EXPR temp.
5593         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5594         TARGET_EXPR temp slots.
5595
5596 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5597
5598         * simplify-rtx.c (simplify_ternary_operation): When
5599         converting an IF_THEN_ELSE to a relational op, return
5600         correct mode.
5601
5602 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5603
5604         * builtins.c (fold_builtin_round): Fix comment typo.
5605         (fold_builtin_lround): New function.
5606         (fold_builtin): Use it.
5607
5608 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5609
5610         PR target/11608
5611         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5612         more like the one in config/dbxelf.h.
5613
5614 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5615
5616         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5617         and adjust definition accordingly.
5618         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5619         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5620         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5621         VECTOR_TYPE.
5622
5623 2004-04-30  Jason Merrill  <jason@redhat.com>
5624
5625         PR c++/14587
5626         * config/i386/winnt.c (associated_type): Look for attributes on
5627         the TYPE_MAIN_VARIANT of *this.
5628         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5629         apply the attributes to the variants.
5630
5631 2004-04-30  Paul Brook  <paul@codesourcery.com>
5632
5633         * config.gcc: Simplify arm --with-{cpu,tune} test.
5634         * config/arm/arm-cores.def: Document whitespace restrictions.
5635
5636 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5637
5638         PR other/1963
5639         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5640
5641 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5642             DJ Delorie  <dj@redhat.com>
5643
5644         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5645         (DWARF2_DEBUGGING_INFO): Define to enable.
5646         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5647         DWARF2.
5648         * configure.ac (Target-specific assembler checks)
5649         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5650         relocs.
5651         * configure: Regenerate.
5652         * config.in: Likewise.
5653
5654         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5655         (ASM_OUPUT_DWARF_OFFSET): Define.
5656
5657 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5658
5659         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5660         (s390_emit_call): New function prototype added.
5661         (s390_tls_get_offset): Function removed.
5662         * config/s390/s390.c (s390_function_ok_for_sibcall,
5663         s390_call_saved_register_used_p): New functions.
5664         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5665         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5666         (s390_emit_tls_call_insn): New function.
5667         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5668         emit_call_insn.
5669         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5670         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5671         added.
5672         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5673         register number used to hold the target address for sibcalls.
5674         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5675         New expanders.
5676         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5677         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5678         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5679         Expanders removed.
5680         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5681         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5682         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5683         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5684         new parameter.
5685
5686 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5687
5688         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5689         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5690         reg-stack.c, varasm.c, config/alpha/ev4.md,
5691         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5692         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5693         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5694         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5695         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5696         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5697         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5698         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5699         comment typos.
5700
5701 2004-04-30  Paul Brook  <paul@codesourcery.com>
5702
5703         * config.gcc: Default ep9312 to hard-float.
5704         * config/arm/arm-cores.def: Add ARCH field.
5705         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5706         (arm_arch_cirrus): New variable.
5707         (all_cores): Set and use arch.
5708         (all_architectures): Ditto.
5709         (arm_arch_name): New variable.
5710         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5711         Set and use arm_arch_cirrus.
5712         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5713         (enum processor_type): Update ARM_CORE define.
5714         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5715         (CPP_SPEC): Remove %(cpp_cpu_arch).
5716         (CPP_ARCH_DEFAULT_SPEC): Remove.
5717         (CPP_CPU_ARCH_SPEC): Remove.
5718         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5719         (FPUTYPE_DEFAULT): Don't define here.
5720
5721 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5722
5723         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5724         updates too.
5725
5726 2004-04-30  Paul Brook  <paul@codesourcery.com>
5727
5728         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5729
5730 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5731
5732         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5733         vec_sububs.
5734         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5735         duplicates.
5736
5737 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5738
5739         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5740         atan2?f3 expanders.
5741
5742 2004-04-29  Nick Clifton  <nickc@redhat.com>
5743
5744         Bug 14093
5745         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5746         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5747         Delete static from definition.
5748         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5749
5750 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5751
5752         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5753         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5754         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5755         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5756
5757 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5758
5759         * commom.opt (Wfatal-errors): Add it.
5760         * diagnostic.c (flag_fatal_errors): Define it.
5761         (diagnostic_action_after_output): Check for flag_fatal_errors.
5762         * flags.h (flag_fatal_errors): Declare it.
5763         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5764         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5765
5766 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5767
5768         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5769         blocks which have kill flag set.
5770
5771 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5772
5773         * configure.ac (--with-as): Abort if user-supplied assembler
5774         cannot be executed.
5775         (--with-ld): Likewise for the linker.
5776         * configure: Regenerate.
5777
5778 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5779
5780         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5781         isn't NULL before using it.
5782
5783 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5784
5785         PR target/15189
5786         * config/mips/mips.md (load_df_low): Use default length.
5787         (load_df_high, store_df_high): Likewise.
5788
5789 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5790
5791         * config/mips/mips.md, config/mips/sb1.md,
5792         config/rs6000/rs6000.c: Fix comment typos.
5793
5794 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5795
5796         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5797         Fix comment typos.
5798
5799 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5800
5801         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5802         (delete_if_ordinary): Use above macro.
5803         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5804         Update copyright.
5805         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5806
5807 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5808
5809         * c-decl.c (get_parm_info): Use the correct tag keywords when
5810         warning about type declarations in prototypes.
5811
5812 2004-04-29  Paul Brook  <paul@codesourcery.com>
5813
5814         * config.gcc: Pull list of cores from arm-cores.def.
5815
5816 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5817
5818         * combine.c (combine_simplify_rtx): Adjust call to use
5819         simplify_relational_operation.  Do not use SELECT_CC_MODE
5820         when a comparison already has a MODE_CC mode.
5821
5822 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5823
5824         (simplify_set): simplify_relational_operation may now
5825         return another relational expression.
5826         * cse.c (fold_rtx): simplify_relational_operation now
5827         takes of computing the comparison mode.
5828         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5829         remove dead code.
5830         (do_compare_rtx_and_jump): Likewise.
5831         * integrate.c (subst_constants): simplify_relational_operation
5832         may now return another relational expression.
5833         * simplify-rtx.c (simplify_gen_relational): Move most code to
5834         the new simplify_relational_operation and
5835         simplify_relational_operation_1 functions.
5836         (simplify_relational_operation): Rewritten.
5837         (simplify_relational_operation_1): New function.
5838         (simplify_ternary_operation): simplify_relational_operation
5839         may now return another relational expression.
5840         (simplify_rtx): Remove unnecessary temp variable.
5841
5842 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5843
5844         * reg-stack.c (swap_to_top): New function.
5845         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5846         swap_to_top().
5847         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5848         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5849         UNSPEC_FSCALE_EXP.
5850
5851         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5852         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5853         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5854         x87's fscale insn.
5855         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5856         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5857         patterns.
5858
5859 2004-04-28  Serge Belyshev  <1319@bot.ru>
5860
5861         PR 14944
5862         * coverage.c (read_counts_file): Fix usage of warning () call.
5863         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5864
5865 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5866
5867         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5868         options with "-" in the option index.
5869         (SPARC Options): Likewise.
5870         (M32R/D Options): Likewise.
5871
5872 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5873
5874         * convert.c (convert_to_integer): Convert (long)round -> lround,
5875         etc.
5876
5877 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5878
5879         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5880         Return false if we do not have fp register.
5881         (addrs_ok_for_quad_peep): Rename to ...
5882         (mems_ok_for_quad_peep): this.
5883         Add check for volatile memory.
5884         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5885         Rename to ...
5886         (mems_ok_for_quad_peep): this.
5887         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5888         to peephole2's.
5889         (lfq_power2): New instruction.
5890         (stfq_power2): Likewise.
5891
5892 2004-04-28  Jan Hubicka  <jh@suse.cz>
5893
5894         PR c/15004
5895         * function.c (do_warn_unused_parameter): Break out form ...
5896         (expand_function_end): ... here; warn only when not using cgraphunit.
5897         * function.h (do_warn_unused_parameter): Declare.
5898         * cgraphunit.c: Include function.h.
5899         (cgraph_finalize_function): Do unused parameter warning.
5900         * Makefile.in (cgraphunit.o): Depend on function.h
5901
5902 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5903
5904         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5905         calling install-info on $(DESTDIR)$(infodir)/dir already being
5906         present.
5907
5908 2004-04-28  Paul Brook  <paul@codesourcery.com>
5909
5910         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5911
5912 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5913
5914         * gcse.c (find_moveable_store): Do not accept store insns with
5915         REG_EH_REGION note.
5916
5917 2004-04-28  Paul Brook  <paul@codesourcery.com>
5918
5919         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5920         * function.c (assign_temp): Ditto.
5921         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5922
5923 2004-04-28  Paul Brook  <paul@codesourcery.com>
5924
5925         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5926
5927 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5928
5929         * var-tracking.c (variable_different_p): Add a parameter
5930         compare_current_location, compare current location of variable parts
5931         if it is true.
5932         (dataflow_set_different_1): Pass compare_current_location == false.
5933         (dataflow_set_different_2): Pass compare_current_location == false.
5934         (emit_notes_for_differences_1): Pass compare_current_location == true.
5935
5936 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5937
5938         * config/s390/s390.md ("casesi"): Mark jump table access as
5939         non-trapping and unchanging.
5940
5941 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5942
5943         PR debug/14829
5944         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5945         callers.
5946         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5947         number for indexing hard_regno_nregs array.
5948
5949 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5950
5951         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5952         * config/darwin-crt2.c: Only have contents on __ppc__.
5953
5954 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5955
5956         * config/xtensa/xtensa.c (call_insn_operand): Check
5957         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5958         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5959         * config/xtensa/xtensa.md (call, call_value): Likewise.
5960
5961 2004-04-27  Wu Yongwei  <adah@sh163.net>
5962
5963         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5964         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5965         (__gthread_mutex_init_function): Replace CreateMutex with
5966         initialization of custom mutex using CreateSemaphore.
5967         (__gthread_mutex_lock): Use InterlockedIncrement.
5968         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5969         (__gthread_mutex_unlock): Use InterlockedDecrement and
5970         ReleaseSemaphore to unlock
5971         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5972         __gthread_mutex_lock, __gthread_mutex_trylock,
5973         __gthread_mutex_unlock): Adjust to match inline versions in
5974         gthr-win32.h.
5975
5976 2004-04-27  Paul Brook  <paul@codesourcery.com>
5977
5978         * config/arm/arm.c (arm_promote_prototypes): New function.
5979         (TARGET_PROMOTE_PROTOTYPES): Use it.
5980
5981 2004-04-27  Paul Brook  <paul@codesourcery.com>
5982
5983         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5984
5985 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5986
5987         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5988         correctly output .pdesc directive before .end.
5989
5990 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5991
5992         Bug 14927
5993         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5994         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5995
5996 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5997
5998         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5999         * config/pa/pa-hpux10.h: Likewise.
6000         * config/pa/pa-hpux11.h: Likewise.
6001
6002 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6003
6004         * doc/invoke.texi (Overall Options): Document default for -o
6005         for PCH files.
6006
6007 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6008
6009         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6010         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6011         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6012
6013 2004-04-26  Paul Brook  <paul@codesourcery.com>
6014
6015         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6016
6017 2004-04-26  Paul Brook  <paul@codesourcery.com>
6018
6019         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6020
6021 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6022
6023         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6024         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6025         X % -1 as 0.
6026
6027 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6028
6029         PR bootstrap/15141
6030         * except.c (connect_post_landing_pads): Delete insns after the
6031         barrier when generating a unwind_resume_libfunc call.
6032
6033 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6034
6035         PR/c++ 15119
6036         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6037         for TARGET_EXPR.
6038
6039 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6040
6041         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6042         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6043         inhibit_libc is defined.
6044
6045 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6046
6047         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6048         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6049         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6050         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6051         (mips_adjust_cost): Move later in file, next to other sched hooks.
6052         (mips_macc_chains_last_hilo): New variable.
6053         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6054         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6055         * config/mips/mips.md (may_clobber_hilo): New attribute.
6056
6057 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6058             Bruce Korb  <bkorb@gnu.org>
6059
6060         * fixinc/inclhack.def (aix_syswait_2): New fix.
6061         * fixinc/fixincl.x: Regenerate.
6062         * fixinc/tests/base/sys/wait.h: Update for new test.
6063
6064 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6065
6066         PR target/14960
6067         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6068         to non_fixed_size, and leave out fixed_size from the sum.
6069         (generate_set_vrsave): Correct clobbers.
6070         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6071         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6072         (rs6000_libcall_value): Likewise.
6073         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6074         (FUNCTION_ARG_REGNO_P): Likewise.
6075
6076 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6077
6078         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6079         is a CONST_INT.
6080         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6081         with NARROW_OP1 instead of OP1.
6082
6083 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6084
6085         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6086         and __s390x__ hosts.
6087
6088 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6089
6090         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6091         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6092         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6093         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6094         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6095         * builtins.c (expand_builtin_fork_or_exec): New.
6096         (expand_builtin): Call it.
6097         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6098         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6099         * c-common.c (PID_TYPE): New macro.
6100         (c_common_nodes_and_builtins): Initialize pid_type_node.
6101         * calls.c (special_function_p): Do not handle fork and exec.
6102         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6103         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6104         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6105         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6106         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6107         * tree.h (enum tree_index): Add TI_PID_TYPE.
6108         (pid_type_node): New macro.
6109         (ECF_FORK_OR_EXEC): Removed.
6110
6111 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6112
6113         PR optimization/13985
6114         * cfgloopmanip.c (fix_loop_placements): New prototype.
6115         Call fix_bb_placements on the preheader of loops that have
6116         been reparented.
6117         (remove_path): Adjust call to fix_loop_placements.
6118
6119 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6120
6121         * config/darwin7.h: New file.
6122         * config.gcc (*-*-darwin*): Add darwin7.h if the
6123         version is greater than 6.
6124         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6125         (MATH_LIBRARY): Wrap in ifdefs.
6126
6127 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6128
6129         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6130         loading iWMMXt registers with a frame pointer.  Use post-increment
6131         without a frame pointer.
6132         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6133
6134 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6135
6136         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6137         mode" rather than "-funit-at-a-time" since -O2 enables it
6138         without requiring -f* options.  Refer to -fprofile-generate and
6139         -fprofile-use correctly.  Move -funit-at-a-time among options
6140         enabled by -O.  Add information about unit-at-a-time caveats.
6141
6142 2004-04-22  Per Bothner  <per@bothner.com>
6143
6144         * line-map.h (struct line_maps):  New field highest_line.
6145         (linemap_position_for_column):  Make non-inline function.
6146         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6147         * line-map.c (linemap_init):  Clear highest_line field.
6148         (linemap_add):  Set highest_line field.
6149         (linemap_line_start):  Minor optimization - use highest_line field.
6150         Reduce maximum column hint to 10000.  Update highest_line field.
6151         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6152         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6153         line_table->highest_line.
6154         (saved_line):  Remove unused field.
6155         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6156         Use  line_table's highest_line field instead of cpp_reader's line.
6157         * cpplib.c (start_directive):  Likewise use highest_line field.
6158         (do_line, do_linemarker):  Likewise just use newest map.
6159         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6160         * cpperror.c (cpp_error):  Likewise use highest_line field.
6161         * cppfiles.c (open_file_failed:  Likewise.
6162         (cpp_make_system_header):  Likewise use newest map and highest_line.
6163         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6164         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6165         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6166         _cpp_lex_direct):  Likewise use highest_line.
6167         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6168         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6169         and use newest map.
6170         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6171         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6172         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6173
6174 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6175
6176         PR bootstrap/14992
6177         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6178         * config/linux.h (USE_LD_AS_NEEDED): Define.
6179         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6180         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6181         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6182         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6183         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6184         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6185         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6186
6187 2004-04-22  Per Bothner  <per@bothner.com>
6188
6189         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6190         Fixes PR preprocessor/15067.
6191
6192 2004-04-23  Andreas Schwab  <schwab@suse.de>
6193
6194         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6195         avoid aliasing warning.
6196
6197 2004-04-22  Jan Hubicka  <jh@suse.cz>
6198             Mostafa Hagog <mustafa@il.ibm.com>
6199
6200       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6201       * cfgloopanal.c (expected_loop_iterations): Change the return value
6202
6203 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6204
6205         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6206         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6207         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6208         traces.
6209
6210 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6211
6212         Revert
6213         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6214
6215                 * var-tracking.c (variable_part_different_p): Variable parts
6216                 differ when the most recent locations differ.
6217
6218 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6219
6220         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6221         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6222         (embedded_pic_offset): Delete.
6223         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6224         MASK_* constants.
6225         (TARGET_EMBEDDED_PIC): Delete.
6226         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6227         (ASM_SPEC): Remove -membedded-pic.
6228         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6229         (ASM_OUTPUT_CASE_LABEL): Likewise.
6230         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6231         * config/mips/windiss.h (ASM_SPEC): Likewise.
6232         * config/mips/mips.c (struct machine_function): Remove
6233         embedded_pic_fnaddr_rtx.
6234         (TARGET_ENCODE_SECTION_INFO): Remove override.
6235         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6236         (override_options): Remove -membedded-pic handling.
6237         (print_operand): Remove handling of '%S'.
6238         (mips_select_section: Remove -membedded-pic handling.
6239         (mips_encode_section_info): Delete.
6240         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6241         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6242         -membedded-pic handling.
6243         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6244
6245 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6246
6247         * var-tracking.c (frame_base_decl): Remove useless GTY.
6248
6249 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6250
6251         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6252         user wants altivec and e500 instructions.
6253
6254 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6255
6256         PR target/14813
6257         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6258         in .init_array section to ...
6259         * config/ia64/crtbegin.asm: Here.
6260
6261         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6262         and hidden if HAVE_INITFINI_ARRAY is defined.
6263
6264 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6265
6266         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6267         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6268         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6269         (fp_register_operand, lo_operand): New.
6270         (mips_rtx_costs): Add TUNE_SB1 support.
6271         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6272         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6273         (mips_multipass_dfa_lookahead): New.
6274         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6275         TUNE_SB1): New.
6276         (TARGET_SWITCHES): Add -mfp-exceptions support.
6277         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6278         (BRANCH_COST): Fix whitespace.
6279         * config/mips/mips.md: Include sb1.md.
6280         * config/mips/sb1.md: New file.
6281         * doc/invoke.texi: Document -mfp-exceptions.
6282
6283         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6284         comment.
6285         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6286         (fixincl.o-warn): Delete.
6287
6288 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6289
6290         * config/rs6000/rs6000 (print_operand) ['z']:
6291         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6292
6293 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6294
6295         * config.gcc: Support --with-arch=iwmmxt for ARM.
6296
6297 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6298
6299         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6300         in two more places; remove unneeded force_reg
6301
6302 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6303
6304         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6305         for TARGET_MACHO.
6306         (print_operand): For TARGET_MACHO check to see if we need a stub
6307         and output one if we need it.
6308
6309         PR debug/15033
6310         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6311         rtl.
6312
6313 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6314
6315         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6316         (vall_value_gp): Likewise.
6317
6318 2004-04-20  DJ Delorie  <dj@redhat.com>
6319
6320         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6321         variables stored in word registers, then in memory.
6322
6323 2004-04-20  Eric Christopher  <echristo@redhat.com>
6324
6325         * cp/parser.c (cp_parser_declaration): Move translate
6326         up before tokens are lexed.
6327
6328 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6329
6330         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6331         (asin_optab, acos_optab): Define corresponding macros.
6332         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6333         * genopinit.c (optabs): Implement asin_optab and acos_optab
6334         using asin?f2 and acos?f2 patterns.
6335         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6336         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6337         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6338         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6339
6340         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6341         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6342         acos, acosf and acosl built-ins as inline x87 intrinsics.
6343
6344 2004-04-20  Paul Brook  <paul@codesourcery.com>
6345
6346         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6347
6348 2004-04-20  Paul Brook  <paul@codesourcery.com>
6349
6350         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6351
6352 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6353
6354         Revert part of 2004-04-17 change that moved -frename-registers
6355         to -O1.  -frename-registers is buggy.
6356
6357         * toplev.c (flag_rename_registers): Initialize to 0.
6358         * doc/invoke.texi (Optimize options): Move -frename-registers
6359         to "Not triggered by any -O level" section.  Adjust commentary
6360         accordingly.
6361
6362 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6363
6364         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6365
6366 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6367
6368         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6369         for mflo and mfhi instructions.
6370         (mips_output_move): Remove mflo and mfhi handling.
6371         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6372         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6373         Likewise various define_peephole2s.
6374         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6375         alternatives.
6376         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6377         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6378         (mfhilo_di, mfhilo_si): New patterns.
6379
6380 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6381
6382         * function.c (assign_parms): Force
6383         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6384
6385 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6386
6387         * var-tracking.c (variable_part_different_p): Variable parts differ
6388         when the most recent locations differ.
6389
6390 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6391
6392         * rtl.h (reg_set_last): Delete declaration.
6393         * rtlanal.c (reg_set_last): Delete.
6394
6395 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6396
6397         * fold-const.c (fold_convert): Make function extern/public.
6398         * tree.h (fold_convert): Prototype here.
6399         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6400         expand_builtin_strrchr, expand_builtin_strpbrk,
6401         expand_builtin_mempcpy, expand_builtin_bcopy,
6402         expand_builtin_bzero, expand_builtin_memcmp,
6403         expand_builtin_strcmp, expand_builtin_strncmp,
6404         stabilize_va_list, expand_builtin_sprintf,
6405         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6406         fold_builtin_exponent, fold_builtin_mempcpy,
6407         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6408         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6409         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6410
6411 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6412
6413         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6414         (move_from_CR_gt_bit): New.
6415         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6416         E500.
6417         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6418         E500.
6419
6420         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6421         (tstsfeq_gpr): Same.
6422         (cmpsfgt_gpr): Same.
6423         (tstsfgt_gpr): Same.
6424         (cmpsflt_gpr): Same.
6425         (tstsflt_gpr): Same.
6426         (e500_cceq_ior_compare): New.
6427         (e500_flip_gt_bit): New.
6428
6429         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6430         (print_operand): Add 'c' and 'D'.
6431         (rs6000_generate_compare): Rewrite to generate correct rtl.
6432         (rs6000_emit_sCOND): Handle E500.
6433         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6434         (output_e500_flip_gt_bit): New.
6435
6436         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6437         Protoize.
6438
6439 2004-04-19  Eric Christopher  <echristo@redhat.com>
6440
6441         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6442
6443 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6444
6445         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6446         fix information.
6447
6448 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6449
6450         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6451         download URL.
6452
6453 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6454
6455         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6456         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6457
6458 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6459
6460         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6461         (fold_builtin): Update caller to match.
6462
6463         PR bootstrap/15009
6464         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6465
6466         PR bootstrap/14999
6467         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6468
6469 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6470
6471         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6472
6473         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6474         (expand_mult_highpart_optab): Likewise.
6475         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6476
6477 2004-04-19  Paul Brook  <paul@codesourcery.com>
6478
6479         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6480         floatunssisf2, floatunssidf2): New patterns.
6481
6482 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6483
6484         PR other/14918
6485         * doc/invoke.texi (-fprofile-generate): Document requirement to
6486         use -fprofile-generate when linking.
6487
6488         * doc/extend.texi (Strong Using): Warn users against using this
6489         feature.
6490
6491 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6492
6493         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6494         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6495         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6496         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6497         constant.  Propogate change throughout file.
6498         (struct machine_function): Remove insns_len.
6499         (mips_string_length, mips16_strings, string_constants): Delete.
6500         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6501         when generating mips16 code.  Remove special mips16 treatment of
6502         string constants.
6503         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6504         to have the form LABEL+CONSTANT.
6505         (mips_symbolic_address_p): Fix comment.
6506         (m16_usym8_4, m16_usym5_4): Delete.
6507         (mips_output_function_epilogue): Remove mips16 string handling.
6508         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6509         (mips_select_section, mips_encode_section_info): Remove mips16
6510         string handling.
6511         (struct mips16_constant_pool): New.
6512         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6513         sorted into order of ascending mode size.  Keep track of the highest
6514         possible start address, taking padding and the masking of the base PC
6515         value into account.
6516         (dump_constants_1): New function, split out from dump_constants.
6517         Handle vector constants.  Use gen_consttable_{int,float} rather than
6518         separate functions for each mode.
6519         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6520         rather than separate functions for each alignment.
6521         (mips_find_symbol): Delete.
6522         (mips16_insn_length): New function, split out from
6523         mips16_lay_out_constants.
6524         (mips16_rewrite_pool_refs): New function.
6525         (mips16_lay_out_constants): Rework. Remove string handling.
6526         Always create an inline constant pool.
6527         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6528         (UNSPEC_ALIGN): New constants.
6529         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6530         (UNSPEC_ALIGN_[248]): Delete.
6531         (consttable_int, consttable_float, align): New patterns.
6532         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6533
6534 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6535
6536         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6537         __unn_args_eq.
6538
6539 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6540
6541         PR target/14715
6542         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6543         with STARTING_FRAME_OFFSET.
6544
6545 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6546
6547         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6548         * config/mips/mips.c (macc_msac_operand): New function.
6549         * config/mips/mips.md (*msac): Move after *macc.
6550         (*msac2): New.  Generalize macc-related peepholes so that they apply
6551         to msac too.
6552
6553 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6554
6555         * opts.c (decode_options): Do not enable flag_rename_registers
6556         and flag_web at -O3.
6557         * toplev.c (flag_rename_registers): Initialize
6558         flag_rename_registers and flag_web to
6559         AUTODETECT_FLAG_VAR_TRACKING.
6560         (default_debug_hooks): New global.
6561         (process_options): Initialize default_debug_hooks.  Warn if
6562         -fvar-tracking specified but not supported by the current
6563         debug format.  Do not run var tracking at -O0 or if not
6564         supported by the current debug format, even if
6565         -fvar-tracking was given.  If -fno-rename-registers
6566         is not specified, always run register renaming if var
6567         tracking is supported by the default debugging information
6568         format for the target, and we are at -O1 or higher; similarly
6569         for -fweb, but only at -O2 or higher.
6570         * doc/invoke.texi (Optimize Options): Document this.
6571
6572 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6573
6574         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6575         * configure: Regenerate.
6576
6577 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6578
6579         * gcc.c (used_arg): Check whether an option has been removed.
6580
6581 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6582
6583         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6584         debugging on Solaris 7 and up.
6585
6586 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6587
6588         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6589         IRIX 5 port.
6590         Remove -save-temps workaround, handled automatically.
6591         Require GNU binutils 2.15 for debugging.
6592         Remove SGI make warnings since GNU make is now required.
6593         (Specific, mips-sgi-irix6): Some markup fixes.
6594         Describe MIPSpro C problems and workarounds.
6595         Mention working O32 ABI support.
6596         Recommend GNU as 2.15 for O32 with debugging.
6597         Remove description of fixed structure pass/return bug.
6598
6599 2004-04-16  DJ Delorie  <dj@redhat.com>
6600
6601         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6602         TYPE_FIELDS.
6603         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6604
6605 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6606
6607         * pa.md: Remove unnecessary declarations for asm_out_file.
6608
6609         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6610         SAR register.  Fix comment.
6611         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6612         (%cr11).
6613
6614         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6615
6616 2004-04-16  Nick Clifton  <nickc@redhat.com>
6617
6618         * config/arm/arm.c (arm_override_options): Revert previous patch.
6619         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6620         be safely built.
6621
6622 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6623
6624         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6625         bug.
6626         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6627         TARGET_DEFAULT): Changed. Ditto.
6628         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6629         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6630         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6631         (TARGET_ENDIAN_DEFAULT): Added.
6632
6633 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6634
6635         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6636         ATTR_CONST_NOTHROW_LIST.
6637
6638 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6639
6640         PR/middle-end 14915
6641         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6642         BITS_BIG_ENDIAN.
6643
6644 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6645
6646         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6647
6648 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6649
6650         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6651
6652 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6653
6654         * libada-mk.in: New file.
6655         * configure.ac: Create libada-mk from libada-mk.in.
6656         * configure: Regenerate.
6657
6658 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6659
6660         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6661         (logb_optab, ilogb_optab): Define corresponding macros.
6662         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6663         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6664         using logb?f2 and ilogb?i2 patterns.
6665         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6666         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6667         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6668         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6669
6670         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6671         and UNSPEC_XTRACT_EXP.
6672
6673         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6674         patterns to implement fxtract x87 instruction.
6675         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6676         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6677         intrinsics.
6678         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6679         x87's fxtract insn.
6680
6681 2004-04-14  Eric Christopher  <echristo@redhat.com>
6682
6683         * config/mips/t-elf: Enable multilibs by default.
6684
6685 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6686
6687         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6688         previous fix to check HAVE_return at runtime too.
6689
6690 2004-04-14  Nick Clifton  <nickc@redhat.com>
6691
6692         * config/arm/arm.c (arm_override_options): If the user has not
6693         specified an ABI, then default to AAPCS for the iWMMXt processor.
6694         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6695         * config/arm/t-xscale-coff: Likewise.
6696
6697 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6698
6699         * builtins.c (fold_builtin_isdigit): New.
6700         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6701         * defaults.h: Add TARGET_DIGIT0 and sort.
6702         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6703
6704 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6705
6706         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6707         `mathfn_built_in' to determine the new builtin.
6708         * fold-const.c (fold): Likewise.
6709
6710 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6711
6712         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6713         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6714         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6715         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6716         (ASM_SPEC): Update accordingly.
6717         * config/mips/mips.c: Update after above renaming.
6718         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6719         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6720
6721 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6722
6723         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6724         increment errorcount and return false instead of true.
6725
6726 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6727
6728         * optabs.c (expand_twoval_unop): Reorder function arguments.
6729         * builtins.c (expand_builtin_mathfn_3): Update calls to
6730         expand_twoval_unop.
6731
6732         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6733         and UNSPEC_TAN_TAN. Add missing comment.
6734
6735         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6736         patterns to implement fptan x87 instruction.
6737         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6738         and tanl built-ins as inline x87 intrinsics. Define corresponding
6739         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6740         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6741         x87's fptan insn.
6742
6743 2004-03-13  Richard Henderson  <rth@redhat.com>
6744
6745         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6746         for LABEL_REFs.
6747
6748         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6749         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6750         * doc/invoke.texi: Update to match.
6751
6752         * varasm.c (unlikely_text_section): Use assemble_align instead of
6753         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6754         correct alignment argument.
6755
6756 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6757
6758         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6759         after setting reg_last_reload_reg for optional output reloads.
6760
6761 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6762
6763         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6764         Definition of these two macros are corrected by adding
6765         matchine right paren.
6766
6767 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6768
6769         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6770
6771 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6772
6773         * config/i386/i386.c (output_387_reg_move): New function.
6774         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6775         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6776         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6777         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6778         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6779
6780 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6781
6782         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6783         TYPE_DECL.
6784         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6785         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6786         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6787         Use skip_simple_arithmetic to find SAVE_EXPR.
6788         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6789         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6790         Properly chain multiple pointers.
6791         (copy_tree_r): Copy a TYPE_DECL.
6792         * tree.c (variably_modified_type_p): Add some missing tests and
6793         make some other minor changes.
6794         * tree.h (force_type_save_exprs): New declaration.
6795
6796 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6797
6798         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6799         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6800         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6801         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6802         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6803         x%-1 into 0 (or x&0 if x has side-effects).
6804
6805 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6806
6807         * config/rs6000/rs6000.md: Document why a pattern is not
6808         available.
6809
6810         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6811         of floats on the E500.
6812         (branch_positive_comparison_operator): Do not allow NE even on the
6813         E500.
6814
6815 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6816
6817         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6818         in_text_unlikely_section to in_unlikely_text_section.
6819
6820 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6821
6822         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6823         calling convention to allow a NULL_TREE to be returned.  Factor
6824         sanity checks from callers, return NULL_TREE when appropriate.
6825         (fold): Handle COMPOUND_EXPR operands of binary expressions
6826         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6827         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6828         calls to fold_binary_op_with_conditional_arg.
6829
6830 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6831
6832         * config/mips/iris5.h (current_section_flags):  Add
6833         in_unlikely_executed_text and default case.
6834
6835 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6836
6837         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6838         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6839         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6840         HAVE_return and place it around the place where it is needed.
6841
6842 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6843
6844         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6845         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6846         and NORMAL_TEXT_SECTION_NAME.
6847         (unlikely_text_section): Check targetm.have_named_sections
6848         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6849         instead of SECTION_FORMAT_STRING.
6850         * config/mips/iris5.h (current_section_name): Add
6851         in_unlikely_executed_text case and move the abort into the switch.
6852         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6853         (NORMAL_TEXT_SECTION_NAME): Remove.
6854         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6855         (SECTION_FORMAT_STRING): Remove.
6856         * defaults.h (SECTION_FORMAT_STRING): Remove.
6857         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6858         (SECTION_FORMAT_STRING): Remove.
6859
6860 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6861
6862         * c-typeck.c (common_type): Prefer long long to long when same
6863         precision.
6864
6865 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6866
6867         PR 14887
6868         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6869         mode argument.
6870         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6871         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6872
6873 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6874
6875         * simplify-rtx.c (mode_signbit_p): New function to check whether
6876         an RTX is an immediate constant that represents the most significant
6877         bit of a given machine mode.
6878         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6879         C is the sign bit.
6880         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6881         when C2 is the sign bit.
6882         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6883         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6884         sign bit.
6885
6886 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6887
6888         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6889         TYPE_MODE.
6890
6891 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6892
6893         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6894         of TREE_READONLY for types.
6895
6896 2004-04-09  Caroline Tice  <ctice@apple.com>
6897
6898         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6899         (struct basic_block_def):  Add new field, partition.
6900         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6901         definitions.
6902         (partition_hot_cold_basic_blocks): Add extern function
6903         declaration.
6904         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6905         include statements.
6906         (N_ROUNDS): Increase the maximum number of rounds by 1.
6907         (branch_threshold): Add array value for new round.
6908         (exec_threshold): Add array value for new round.
6909         (push_to_next_round_p): New function.
6910         (add_unlikely_executed_notes): New function.
6911         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6912         (mark_bb_for_unlikely_executed_section): New function.
6913         (add_labels_and_missing_jumps): New function.
6914         (add_reg_crossing_jump_notes): New function.
6915         (fix_up_fall_thru_edges): New function.
6916         (find_jump_block): New function.
6917         (fix_crossing_conditional_branches): New function.
6918         (fix_crossing_unconditional_branches): New function.
6919         (fix_edges_for_rarely_executed_code): New function.
6920         (partition_hot_cold_basic_blocks): New function.
6921         (find_traces):  Add an extra round for partitioning hot/cold
6922         basic blocks.
6923         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6924         and only cold blocks, into the last (extra) round of collecting traces.
6925         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6926         over crossing edges.
6927         (bb_to_key):  Add code to correctly identify cold blocks when
6928         doing partitioning.
6929         (connect_traces): Modify to connect all the non-cold traces first, then
6930         go back and connect up all the cold traces.
6931         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6932         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6933         entry and exit blocks.
6934         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6935         if we are doing hot/cold partitioning.
6936         * cfgcleanup.c (cfglayout.h): Add new include statement.
6937         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6938         that cross section boundaries.
6939         (try_forward_edges): Likewise.
6940         (merge_blocks_move_predecessor_nojumps): Likewise.
6941         (merge_blocks_move_successor_nojumps): Likewise.
6942         (merge_blocks_move): Likewise.
6943         (try_crossjump_to_edge): Modify to not attempt after we have done
6944         the block partitioning.
6945         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6946         cross section boundaries.
6947         (try_optimize_cfg): Likewise.
6948         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6949         jumps that cross section boundaries.
6950         * cfglayout.c (flags.h): Add new include statement.
6951         (update_unlikely_executed_notes):  New function.
6952         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6953         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6954         updated appropriately.
6955         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6956         introduced by this optimization.
6957         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6958         extern function declaration.
6959         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6960         list of notes that can be deleted.
6961         (create_basic_block_structure):  Add initialization for partition field.
6962         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6963         section boundaries.
6964         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6965         cross section boundaries.
6966         (commit_one_edge_insertion): Add code so newly created basic block
6967         ends up in correct (hot or cold) section.  Modify to disallow
6968         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6969         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6970         crosses section boundaries.
6971         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6972         cross section boundaries.
6973         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6974         ends up in correct section, with correct notes attached.
6975         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6976         optimization.
6977         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6978         the end of functions are written into the correct (hot or cold)
6979         section.
6980         (dbx_source_file): Add code so writing debug file information
6981         doesn't incorrectly change sections.
6982         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6983         in partitioning hot/cold basic blocks into separate sections.
6984         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6985         section partitioning.
6986         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6987         conditional branches can span all of memory.
6988         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6989         unconditional branches can span all of memory.
6990         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6991         (final_scan_insn):  Add code to check for NOTE instruction indicating
6992         whether basic block belongs in hot or cold section, and to make sure
6993         the current basic block is being written to the appropriate section.
6994         Also added code to ensure that jump table basic blocks end up in the
6995         correct section.
6996         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6997         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6998         one of the branches has a jump that crosses between sections.
6999         (find_if_case_2): Likewise.
7000         (ifcvt): Modify to not attempt to mark loop exit edges after
7001         hot/cold partitioning has occurred.
7002         * opts.c (decode_options): Code to handle new flag,
7003         flag_reorder_blocks_and_partition; also to turn it off if
7004         flag_exceptions is on.
7005         (common_handle_option): Code to handle new flag,
7006         flag_reorder_blocks_and_partition.
7007         * output.h (unlikely_text_section): New extern function declaration.
7008         (in_unlikely_text_section): New extern function declaration.
7009         * passes.c (rest_of_handle_stack_regs):  Add
7010         flag_reorder_blocks_and_partition as an 'or' condition for calling
7011         reorder_basic_blocks.
7012         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7013         as an 'or' condition for calling reorder_basic_blocks.
7014         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7015         * print-rtl.c (print_rtx): Add code for handling new note,
7016         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7017         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7018         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7019         cross between section boundaries.
7020         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7021         indicating the basic block containing it belongs in the cold section.
7022         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7023         between hot and cold sections.
7024         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7025         initialize this flag, and to tie it to the command-line option
7026         freorder-blocks-and-partition.
7027         * varasm.c (cfglayout.h):  Add new include statement.
7028         (unlikely_section_label_printed):  New global variable, used for
7029         determining when to output section name labels for cold sections.
7030         (in_section):  Add in_unlikely_executed_text to enum data structure.
7031         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7032         NORMAL_TEXT_SECTION_NAME macros.
7033         (unlikely_text_section):  New function.
7034         (in_unlikely_text_section):  New function.
7035         (function_section):  Add code to make sure beginning of function is
7036         written into correct section (hot or cold).
7037         (assemble_start_function):  Add code to make sure stuff is written to
7038         the correct section.
7039         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7040         to an if statement that was checking 'in_text_section'.
7041         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7042         condition to an if statement that was checking 'in_text_section'.
7043         (default_section_type_flags_1):  Add check: if in cold section
7044         flags = SECTION_CODE.
7045         * config/darwin.c (darwin_asm_named_section):  Modify to use
7046         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7047         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7048         specifically for the i386.
7049         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7050         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7051         text string to something more informative.
7052         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7053         (SECTION_FORMAT_STRING):  Add new definition.
7054         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7055         '!in_unlikely_text_section' as an 'and' condition to an if statement
7056         that was already checking '!in_text_section'.
7057         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7058         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7059         sure these are properly defined for linux on ppc.
7060         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7061         for this new flag.
7062         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7063         reg_note.
7064         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7065         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7066         these new macros.
7067
7068 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7069
7070         * function.c (gen_mem_addressof): When changing the RTX from a REG
7071         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7072
7073 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7074
7075         PR target/14888
7076         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7077         truncxfdf2_noop): Provide dummy "fmov" implementations.
7078
7079 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7080
7081         * gcc.c (default_compilers): Add missing initializers.
7082
7083         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7084         Return 1 if file was successfully mapped.
7085
7086 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7087
7088         PR pch/13419
7089         PR pch/14137
7090         Radar #: 3315288
7091         * doc/invoke.texi (Precompiled Headers): Suggest -o
7092         to put an output file in a particular place.  Be more detailed
7093         about which options affect PCH validity and which options
7094         might not work.
7095         * c-pch.c (pch_matching): New.
7096         (MATCH_SIZE): New.
7097         (struct c_pch_validity): New field 'match'.
7098         (pch_init): Handle pch_matching.
7099         (c_common_valid_pch): Check pch_matching.
7100
7101         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7102
7103 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7104
7105         * doc/invoke.texi (Precompiled Headers): Warn about known
7106         problems.
7107
7108 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7109
7110         PR c++/14808
7111         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7112         to 1 if ASM_OUTPUT_DEF is defined.
7113         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7114         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7115         Set to non-zero iff not a one_only decl.
7116
7117 2004-04-08  Paul Brook  <paul@codesourcery.com>
7118
7119         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7120
7121 2004-04-08  Paul Brook  <paul@codesourcery.com>
7122
7123         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7124         PROMOTE_FOR_CALL_ONLY.
7125         * config/arm/arm-protos.h (arm_function_value): Declare.
7126         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7127         (TARGET_PROMOTE_PROTOTYPES): Return false.
7128         (arm_function_value): New function.
7129         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7130         (FUNCTION_VALUE): Call arm_function_value.
7131         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7132         (PROMOTE_FUNCTION_MODE): ... to this.
7133         (PROMOTE_FOR_CALL_ONLY): Remove.
7134         * config/mmix/mmix.h: Likewise.
7135         * config/s390/s390.h: Likewise.
7136         * config/sparc/sparc.h: Likewise.
7137         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7138         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7139         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7140         (PROMOTE_FOR_CALL_ONLY): Remove.
7141
7142 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7143
7144         PR ada/14538
7145         * ada/5rosinte.adb: Remove fake mprotect() body.
7146         * ada/5rosinte.ads: Add SA_SIGINFO.
7147         * ada/5rtpopsp.adb: Rewrite to use new interface.
7148         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7149         is tested before more complex ones which mix UNIX and embedded
7150         systems in the conditional.
7151
7152 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7153
7154         PR ada/14665
7155         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7156         filenames which end in .exe or have versioning suffixes like VMS.
7157
7158 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7159
7160         PR target/10129
7161         * config/darwin.c (darwin_encode_section_info): When the decl has
7162         a DECL_INITIAL, it is only defined also when it is not a common.
7163
7164 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7165
7166         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7167         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7168
7169 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7170
7171         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7172         global register variables.
7173
7174 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7175
7176         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7177         rpc_xdr_lvalue_cast_b): New fixes.
7178         * fixinc/fixincl.x: Regenerate.
7179         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7180
7181 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7182
7183         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7184         to power4 and power5 entries.
7185
7186 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7187
7188         * c-common.h (pending_lang_change): Mark for PCH.
7189
7190 2004-04-07  Caroline Tice  <ctice@apple.com>
7191
7192         * gcc.c (main): Move 'break' in main loops (on an error)
7193         to wait until error processing has occurred.
7194
7195 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7196
7197         * config.gcc: Stop changing enable_threads midstream.
7198         Replace uses of enable_threads_flag with enable_threads.
7199         * configure.ac: Replace uses of enable_threads_flag with
7200         enable_threads.  Improve autoconf quotation in one place.
7201         * configure: Regenerate.
7202
7203 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7204
7205         * builtins.c: Implement support for sincos function.
7206         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7207         BUILT_IN_COS{,F,L}.
7208         (expand_builtin_mathfn_3): New function.
7209         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7210         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7211         flag_unsafe_math_optimization is set.
7212
7213         * optabs.h (enum optab_index): Add new OTI_sincos.
7214         (sincos_optab): Define corresponding macro.
7215
7216         * optabs.c (init_optabs): Initialize sincos_optab.
7217         (expand_twoval_unop): New function.
7218
7219         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7220         patterns.
7221
7222         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7223         and UNSPEC_SINCOS_SIN.
7224
7225         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7226         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7227         built-ins as inline x87 intrinsics. Define splits for
7228         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7229         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7230         sincos patterns.
7231         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7232         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7233
7234         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7235         x87's fsincos insn.
7236
7237 2004-04-06  Devang Patel  <dpatel@apple.com>
7238
7239         PR 14467
7240         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7241
7242 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7243
7244         * doc/install.texi: Update HP-UX 11 installation procedure.
7245
7246 2004-04-06  Paul Brook  <paul@codesourcery.com>
7247
7248         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7249
7250 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7251
7252         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7253         when the TLS address is generated by a function call.
7254         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7255         (tls_local_dynamic): Likewise.
7256
7257 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7258
7259         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7260         and TYPE_VOLATILE.
7261
7262 2004-04-05  Caroline Tice  <ctice@apple.com>
7263
7264         * gcc.c (combine_flag): New global variable, for new driver option.
7265         (struct compiler): Add two new fields, to be used when
7266         combining multiple input files in a single pass (IMA).
7267         (default_compilers):  Add values for the new fields to all
7268         compiler entries. Modify the "@c" compiler entry for doing IMA
7269         properly with "-save-temps" and the "combine" flag.
7270         (option_map):  Add new driver option, "--combine", to tell driver
7271         to pass multiple input files to compiler at one time.
7272         (have_o_argbuf_index): New global variable.
7273         (store_arg): Modify to assign value to have_o_argbuf_index.
7274         (struct infile):  Add three new fields, to help with IMA.
7275         (display_help): Add help for new "combine" option.
7276         (process_command): Remove local variable have_o; add code to check
7277         for new "combine" option; remove assignment to combine_inputs.
7278         (do_spec_1):  Modify to deal with IMA better.
7279         (main): Make variable 'lang_n_infiles' local to entire function
7280         rather than to a single block.  Use flag combine_flag to
7281         determine whether to do IMA or not; Modify loop initializing
7282         infiles to deal properly with linker files.
7283         Add code for doing preprocessing in presence of
7284         IMA with "-save-temps" flag.  Modify "main" loop to handle
7285         multiple input files, in multiple languages, with or without
7286         preprocessing,  gracefully.
7287         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7288         re-set it to same directory it's previously been set to (avoid
7289         irritating, meaningless warning messages when doing IMA with
7290         save-temps).
7291         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7292         remove documentation about IMA that is no longer accurate; Add
7293         documentation explaining what "-combine" does.
7294         * ada/lang-specs.h: Add initialization values for new fields in
7295         "struct compiler".
7296         * cp/lang-specs.h: Likewise.
7297         * f/lang-specs.h: Likewise.
7298         * java/lang-specs.h: Likewise.
7299         * objc/lang-specs.h: Likewise.
7300         * treelang/lang-specs.h: Likewise.
7301
7302 2004-04-05  David Edelsohn
7303
7304         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7305         symbol handling.
7306
7307 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7308             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7309
7310         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7311         * pa.md: Use replace_equiv_address to retain the attributes of the
7312         memory operands used in the split and peephole2 patterns for optimizing
7313         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7314
7315 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7316
7317         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7318         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7319         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7320         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7321         PARM_DECL.
7322         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7323         for a type.
7324         * print-tree.c (print_node): Properly handle side-effects, readonly,
7325         and constant flags.
7326         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7327         and TREE_CONSTANT if not a type.
7328         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7329         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7330         (NON_TYPE_CHECK): New macro.
7331         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7332
7333 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7334
7335         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7336         to DWARF2_DEBUG unconditionally.
7337         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7338
7339 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7340             Nathanael Nerode  <neroden@gcc.gnu.org>
7341
7342         PR target/14548
7343         * config.host: Set the shell variable host_can_use_collect2.
7344         Set it to yes by default, and to no for alpha*-dec-*vms*,
7345         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7346         * configure.ac: Set and substitute the shell variable collect2.
7347         Give an error if use_collect2 is yes and host_can_use_collect2 is
7348         no.
7349         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7350         uses.  Initialize to @collect2@.
7351         (STAGESTUFF): Remove $(USE_COLLECT2).
7352         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7353         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7354         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7355         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7356         * configure: Regenerate.
7357
7358 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7359
7360         * simplify-rtx.c (simplify_binary_operation): Constant fold
7361         DIV, MOD, UDIV and UMOD using div_and_round_double.
7362
7363 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7364
7365         PR c++/14804
7366         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7367         RECORD_TYPEs.
7368
7369 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7370
7371         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7372         documentation.
7373
7374 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7375
7376         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7377         updating the REG_EQUAL note on an insn's libcall_insn.
7378
7379 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7380
7381         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7382
7383 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7384
7385         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7386         with reorder_operands_p.
7387
7388 2004-04-03  Jan Hubicka  <jh@suse.cz>
7389
7390         * md.texi (vec_set, vec_extract, vec_init): Document.
7391
7392 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7393
7394        * opts.c (decode_options): Do function inlining with very small
7395        max-inline-insns-* parameters when optimizing for size.
7396
7397 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7398
7399         * config/i386/i386.h (TARGET_NOCONA): New macro.
7400         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7401         (processor_type): Add PROCESSOR_NOCONA.
7402
7403         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7404
7405         * config/i386/i386.c (nocona_cost): New variable.
7406         (m_NOCONA): New macro.
7407         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7408         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7409         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7410         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7411         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7412         x86_decompose_lea, x86_arch_always_fancy_math_387,
7413         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7414         x86_ext_80387_constants, x86_four_jump_limit):
7415         (override_options): Add nocona_cost to processor_target_table.
7416         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7417         (incdec_operand): Prevent inc/dec generation for Nocona too.
7418         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7419
7420 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7421
7422         * rtlanal.c (find_reg_note): Manually
7423         unswitch the loop.
7424
7425 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7426
7427         * genemit.c (gen_split): Change prototype of generated code.
7428         * genrecog.c (write_action): Adjust prototype for and calls to
7429         gen_split_*.
7430         * gensupport.c (struct queue_elem): Add split field.
7431         (queue_pattern): Return a value.  Clear the split field.
7432         (process_rtx): Maintain an association between an insn and the
7433         split generated from it for a define_insn_and_split.
7434         (process_one_cond_exec): Generate a new split for a
7435         define_insn_and_split.
7436         * config/arm/arm-protos.h (arm_split_constant): Add insn
7437         parameter.
7438         (emit_constant_insn): New function.
7439         (arm_gen_constant): Use it.
7440         * config/arm/arm.md: Adjust calls to arm_split_constant.
7441
7442 2004-04-02  Jan Hubicka  <jh@suse.cz>
7443
7444         * cgraph.c: Add overall comment.
7445         (cgraph_inline_hash): New global variable.
7446         (cgraph_create_node): Break out from ...
7447         (cgraph_node): ... here.
7448         (cgraph_edge): New function.
7449         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7450         (cgraph_remove_edge): Accept edge, intead of source and destination.
7451         (cgraph_redirect_edge_callee): New.
7452         (cgraph_remove_node): Update all new datastructures.
7453         (cgraph_record_call, cgraph_remove_call): Kill.
7454         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7455         (dump_cgraph): ... here.
7456         (cgraph_function_possibly_inlined_p): Use new hashtable.
7457         (cgraph_clone_edge, cgraph_clone_node): New.
7458         * cgraph.h: Include hashtab.h
7459         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7460         fields, add inlined_to pointer.
7461         (cgraph_node): Add pointer to next_clone.
7462         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7463         (cgraph_remove_call, cgraph_record_call): Kill.
7464         (cgraph_inline_hash): Declare.
7465         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7466         cgraph_redirect_edge_callee): Declare.
7467         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7468         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7469         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7470         * cgraphunit.c: Add overall comment.
7471         (cgraph_optimize_function): Kill.
7472         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7473         (cgraph_finalize_function): Update call of cgraph_remove_node
7474         (record_call_1): Record call sites.
7475         (cgraph_create_edges): Accept node instead of decl argument.
7476         (error_found): New static variable.
7477         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7478         (cgraph_analyze_function): Update for new datastructures.
7479         (cgraph_finalize_compilation_unit): Plug memory leak.
7480         (cgraph_optimize_function): Kill.
7481         (cgraph_expand_function): Do not use cgraph_optimize_function.
7482         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7483         cgraph_inlined_callees): Kill.
7484         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7485         clones.
7486         (estimate_growth): Simplify.
7487         (cgraph_clone_inlined_nodes): New function.
7488         (cgraph_mark_inline_edge): Re-implement.
7489         (cgraph_mark_inline): Likewise.
7490         (cgraph_check_inline_limits): Simplify.
7491         (cgraph_recursive_inlining_p): New.
7492         (update_callee_keys): Break out from ...
7493         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7494         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7495         Likewise.
7496         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7497         list.
7498         (cgraph_preserve_function_body_p): New predicate.
7499         (cgraph_optimize): Verify cgraph.
7500         * function.h (struct function): Add fields saved_tree/saved_args.
7501         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7502         * toplev.c (rest_of_compilation): Do not free cfun.
7503         * tree-inline.c: Include function.h
7504         (struct inline_data): Add saving_p field; replace decl/current_decl by
7505         node/current_node.
7506         (insert_decl_map): New function.
7507         (copy_body_r): Handle saving; update cgraph datastructure.
7508         (copy_body): Handle recursive inlining.
7509         (initialize_inlined_parameters): Likewise.
7510         (expand_call_inline): Propagate node attributes; update cgraph.
7511         (optimize_inline_calls): Verify that datastructure still match.
7512         (save_body): New function.
7513         * tree-inline.h (save_body): New.
7514         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7515         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7516         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7517
7518 2004-04-01  Serge Belyshev  <1319@bot.ru>
7519
7520         PR target/14702
7521         * config/i386/i386.md: fix source operand constraints in
7522         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7523
7524 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7525
7526         * fold-const.c (folda): Preserve types of comparisons.
7527
7528 2004-04-01  Richard Henderson  <rth@redhat.com>
7529
7530         * toplev.c (backend_init): Move init_optimization_passes call ...
7531         (lang_dependent_init): ... here.
7532
7533 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7534             Jakub Jelinek  <jakub@redhat.com>
7535
7536         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7537         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7538         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7539         * configure: Rebuilt.
7540         * config.in: Rebuilt.
7541         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7542         (stage2-start, stage3-start, stage4-start): Likewise.
7543         (stageprofile-start, stagefeedback-start): Likewise.
7544
7545 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7546
7547         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7548         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7549         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7550         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7551         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7552         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7553         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7554         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7555         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7556         * config/sparc/t-linux: Removed.
7557
7558 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7559
7560         PR c++/14755
7561         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7562         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7563
7564 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7565
7566         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7567         * stor-layout.c (layout_decl): Likewise.
7568         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7569         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7570         * print-tree.c (print_node): Handle various used of unsigned_flag.
7571         * tree.def (BIT_FIELD_REF): Update comment.
7572         * tree.h (TREE_UNSIGNED): Deleted.
7573         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7574
7575 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7576
7577         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7578         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7579         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7580         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7581         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7582         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7583         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7584         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7585         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7586         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7587         REAL_TYPE, not INTEGER_TYPE.
7588         (layout_type, case VECTOR_TYPE): Simplify code.
7589         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7590         * tree.h: Update comments.
7591         (STRIP_NOPS): Use TYPE_UNSIGNED.
7592         (TYPE_UNSIGNED): New macro.
7593         (TYPE_TRAP_SIGNED): Remove now redundant check.
7594         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7595
7596 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7597
7598         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7599
7600 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7601
7602         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7603         Add darwin-fpsave.asm, darwin-vecsave.asm,
7604         and darwin-world.asm.
7605         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7606         as the asm files contain altivec instructions.
7607         * config/rs6000/darwin-fpsave.asm: New file.
7608         * config/rs6000/darwin-vecsave.asm: New file.
7609         * config/rs6000/darwin-world.asm: New file.
7610
7611 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7612
7613         * gengtype-yacc.y (option, stringseq): Add missing
7614         terminating semicolon.
7615
7616 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7617
7618         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7619         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7620         tls_dtprel_ha_32, tls_dtprel_ha_64,
7621         tls_dtprel_lo_32, tls_dtprel_lo_64,
7622         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7623         tls_tprel_ha_32, tls_tprel_ha_64,
7624         tls_tprel_lo_32, tls_tprel_lo_64,
7625         tls_got_tprel_32, tls_got_tprel_64,
7626         tls_tls_32, tls_tls_64): Replace register_operand with
7627         gpc_reg_operand.
7628
7629 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7630
7631         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7632         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7633         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7634         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7635         *ctrdi_internal6): Replace register_operand with
7636         nonimmediate_operand.
7637
7638 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7639
7640         * fold-const.c (fold): Reassociate multiply expression
7641         with an adjacent non-multiply expression to use
7642         architecture's multiply-add instruction.
7643
7644 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7645
7646         * gengtype.c (create_option): New function.
7647         * gengtype.h: Prototype it.
7648         * gengtype-yacc.y (stringseq): New rule.
7649         (option): Use create_option.  Add new bare ID production.  Use
7650         stringseq, not STRING directly.
7651
7652         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7653         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7654         * varray.h, config/alpha/alpha.c:
7655         Use new shorter form of GTY markers.
7656
7657         * doc/gty.texi: Rewrite.
7658
7659 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7660
7661         * config/darwin.c (machopic_function_base_name):
7662         Remove current_name and getting the name of the
7663         current function.
7664
7665 2004-03-30  Nick Clifton  <nickc@redhat.com>
7666
7667         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7668         range, and increase the forward branch range, to allow for
7669         the fact that the PC will be off by 4.
7670
7671 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7672
7673         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7674
7675 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7676
7677         * config/rs6000/rs6000.c (output_vec_const_move):
7678         Find all cases of EASY_VECTOR_15_ADD_SELF.
7679         (easy_vector_constant_add_self): Accept
7680         all vector constant loadable by vsplt* and vadd*.
7681         (easy_vector_same): Use easy_vector_splat_const.
7682         (easy_vector_const): Use easy_vector_splat_const.
7683         (easy_vector_splat_const): New function.
7684         (gen_easy_vector_constant_add_self): New function.
7685
7686         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7687         New prototype.
7688
7689         * config/rs6000/altivec.md (movv4si splitter): Change to
7690         emit move insn with halfed vector constant.
7691         (*movv8hi splitter): Likewise.
7692         (*movv16qi splitter): Likewise.
7693
7694 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7695
7696         PR 11591
7697         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7698         Allow any offset to argument pointer in no-strict case.
7699
7700 2004-03-30  Jan Hubicka  <jh@suse.cz>
7701
7702         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7703         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7704         dump file in non-unit-at-a-time mode.
7705
7706 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7707
7708         * config/cris/cris.h: Correct #ifdef to test for
7709         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7710         HAVE_AS_MUL_BUG_ABORT_OPTION.
7711
7712 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7713
7714         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7715         the address inside the old RTL.
7716
7717 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7718
7719         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7720         (struct c_binding, struct c_scope): Add chain_next
7721         attributes to GTY markers.
7722         (struct lang_identifier, struct lang_tree_node): Define
7723         here...
7724         * c-tree.h: ... not here.  No longer need to declare struct
7725         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7726         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7727         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7728
7729         PR 14734, 11944
7730         * c-decl.c (get_parm_info): If error_mark_node is encountered
7731         in the bindings chain, unbind and discard it; don't abort.
7732
7733 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7734             Dorit Naishlos <dorit@il.ibm.com>
7735
7736         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7737         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7738
7739 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7740
7741         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7742
7743         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7744         (m68hc11_attribute_table): New attribute "page0" to mark a global
7745         variable as being allocated from within page0 section.
7746         (m68hc11_encode_label): New function.
7747         (m68hc11_strip_name_encoding): New function.
7748         (m68hc11_page0_symbol_p): New function.
7749         (m68hc11_indirect_p): Accept global variables marked in page0.
7750         (m68hc11_encode_section_info): Lookup "page0" attribute.
7751
7752         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7753         represents access to page0 variables.
7754
7755         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7756         ("*logicalsi3_silshl16_zext"): Likewise.
7757         ("*ashldi3_const32"): Likewise.
7758         (peephole2 ashift): Likewise.
7759
7760 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7761
7762         * c-tree.h (C_DECL_REGISTER): New.
7763         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7764         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7765         (build_array_ref, c_mark_addressable): Set and use it.
7766         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7767         Allow structures with volatile fields to be declared register.
7768         Don't check TREE_ADDRESSABLE before warning about taking address
7769         of register.
7770         * c-decl.c (finish_decl): Don't allow structures with volatile
7771         fields to be placed in named register.
7772         * doc/trouble.texi: Remove reference to structures with volatile
7773         fields in registers.
7774
7775 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7776
7777         * function.c (thread_prologue_and_epilogue): Move
7778         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7779         before the epilogue.
7780
7781 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7782
7783         * expr.c (store_constructor): Use gen_int_mode to correctly
7784         sign-extend CONST_INT value.
7785
7786 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7787
7788         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7789         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7790         * doc/extend.texi: Likewise.
7791
7792 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7793
7794         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7795           with TYPE_ORIG_SIZE_TYPE.
7796
7797 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7798
7799         PR 14219
7800         * c-typeck.c (build_binary_op): Do not allow comparisons of
7801         vectors.
7802
7803 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7804
7805         * config.gcc: Remove sparc-tti-*.
7806         * config/sparc/pbd.h: Delete.
7807
7808         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7809         * config/sparc/aout.h: Likewise.
7810
7811         * config/sparc/sparc.h: Remove if 0'd code.
7812         * config/sparc/sparc.md (call): Remove if 0'd code.
7813         (call_value): Likewise.
7814         (nonlocal_goto): Likewise.
7815         (unimp_insn): Delete.
7816
7817 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7818
7819         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7820         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7821
7822 2004-03-25  Richard Henderson  <rth@redhat.com>
7823
7824         PR 11527
7825         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7826         rather than later.
7827
7828 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7829
7830         * builtins.c (fold_builtin): Fix error in last change.
7831
7832 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7833
7834         * config/mips/mips.h: Formatting fix.
7835
7836 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7837
7838         * builtins.def: Add ctype builtins.
7839         * doc/extend.texi: Likewise.
7840
7841 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7842
7843         * builtins.c (fold_builtin): Add new builtin optimizations for
7844         sqrt and/or cbrt.
7845         * fold-const.c (fold): Likewise.
7846
7847 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7848
7849         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7850         (rs6000_sched_groups): New variable.
7851         (processor_target_table): Add power5.
7852         (rs6000_override_options): Set rs6000_sched_insert_nops,
7853         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7854         from rs6000_sched_groups.
7855         (output_cbranch): Use rs6000_always_hint.
7856         (rs6000_variable_issue): Use rs6000_sched_groups.
7857         (rs6000_adjust_cost): Add CPU_POWER5.
7858         (is_microcoded_insn): Use rs6000_sched_groups.
7859         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7860         Return 2 for POWER5 cracked instructions.
7861         (is_cracked_insn): Use rs6000_sched_groups.
7862         (is_branch_slot_insn): Use rs6000_sched_groups.
7863         (rs6000_issue_rate): Add CPU_POWER5.
7864         (rs6000_sched_finish): Use rs6000_sched_groups.
7865         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7866         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7867         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7868         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7869         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7870         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7871         * config/rs6000/power5.md: New file.
7872         * doc/invoke.texi: Add power5 option.
7873
7874 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7875
7876         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7877         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7878         * doc/invoke.texi: Fix a typo.
7879
7880 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7881
7882         PR optimization/9707.
7883         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7884         of recursing if both children are single-valued cases with no
7885         children.
7886
7887 2004-03-25  Paul Brook  <paul@codesourcery.com>
7888
7889         * config/arm/arm.c (vfp_print_multi): Remove.
7890         (arm_output_fldmx): New function.
7891         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7892         (arm_expand_prologue): Update to match.
7893         (arm_get_vfp_saved_size): New Function.
7894         (arm_get_frame_offsets): Use it.
7895         (arm_output_epilogue): Use new functions.
7896
7897 2004-03-24  Richard Henderson  <rth@redhat.com>
7898
7899         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7900         (reg_known_value, reg_known_value_size): Likewise; make static.
7901         (reg_known_equiv_p): Make static.
7902         (clear_reg_alias_info): Update for new indexing.
7903         (get_reg_known_value, set_reg_known_value): New.
7904         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7905         (canon_rtx): Use them.
7906         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7907         Don't play queer offsetting games with reg_known_value and
7908         reg_known_equiv_p.
7909         (end_alias_analysis): Free reg_known_value with gc.
7910         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7911         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7912         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7913         functions instead.
7914
7915 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7916
7917         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7918         config/i386/mmintrin.h: Update copyright.
7919
7920 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7921
7922         * configure.ac: Add --enable-werror-always (for top level bootstrap
7923         support).
7924         * configure: Regenerate.
7925
7926 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7927
7928         * objc/objc-act.c (objc_comptypes): Treat comparisons
7929         between 'Class' and '<class> *' as explicitly invalid.
7930
7931 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7932
7933         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7934         (-fprofile-values): Add enabled with profile-{generate,use}.
7935         (-fvpt): Same.
7936         (-ftracer): Add enabled with profile-use.
7937         (-funit-at-a-time): Add enabled at -O2,-O3.
7938         (-funroll-loops): Add enabled with profile-use.
7939         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7940         (max-gcse-passes): Mention default.
7941         (max-cse-path-length): Mention default.
7942
7943 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7944
7945         * Makefile.in (STRICT2_WARN): Reorder.
7946         * configure.ac: Check for -Wold-style-definition, and use it
7947         in strict1_warn if it's available.
7948         * configure: Regnerate.
7949
7950 2004-03-24  Paul Brook  <paul@nowt.org>
7951
7952         * config.gcc <arm>: Add --with-abi=
7953         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7954         thumb_far_jump_used): Remove prototypes.
7955         (arm_needs_doubleword_align): Add prototype.
7956         (thumb_compute_initial_elimination_offset): Ditto.
7957         * config/arm/arm.c (arm_get_frame_offsets): New function.
7958         (use_return_insn, output_return_instruction, arm_output_epilogue,
7959         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7960         arm_expand_prologue, thumb_expand_epilogue): Use it.
7961         (arm_abi, target_abi_name, all_arm_abis): New variables.
7962         (arm_override_options): Set them.  Set structure padding for AAPCS.
7963         (arm_return_in_memory): Update ABI check.
7964         (arm_init_cumulative_args): Initialize can_split.
7965         (arm_needs_doubleword_align): New function.
7966         (arm_function_arg): Don't split args after pushing to stack. Handle
7967         doubleword/even reg alignment.
7968         (arm_va_arg): Handle all doubleword aligned args.
7969         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7970         on ABI, not CPU.
7971         (arm_compute_save_reg0_reg12_mask): Fix comment.
7972         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7973         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7974         value for alignment.
7975         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7976         to match.
7977         (thumb_compute_initial_elimination_offset): New function.
7978         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7979         unneccessary rounding.
7980         * config/arm/arm.h (target_abi_name): Declare.
7981         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7982         arm_abi_type, ARM_DEFAULT_ABI): Define.
7983         (ARM_FLAG_ATPCS): Remove.
7984         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7985         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7986         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7987         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7988         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7989         Contitionalize on ABI, not CPU.
7990         (struct arm_stack_offsets): Define.
7991         (struct machine_function): Add stack_offsets.  Remove frame_size.
7992         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7993         pushed.
7994         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7995         doubleword alignment.
7996         (THUMB_INITIAL_ELIMINATION_OFFSET,
7997         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7998         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7999         * config/arm/arm.md (align_8): Enable for all targets.
8000         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8001         (ARM_DEFAULT_ABI): Define.
8002         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8003         -mstructure-size-boundary.
8004
8005 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8006
8007         * configure.ac: Check for -Wno-variadic-macros; don't use
8008         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8009         and if it's available, use it.  Also, clean up check for
8010         -Wno-long-long.
8011         * configure: Regenerate.
8012
8013 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8014
8015         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8016         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8017         (MULTILIB_DEFAULTS): Use it.
8018         (MIPS_CPU_STRING_DEFAULT): Remove.
8019         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8020         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8021         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8022         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8023         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8024         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8025         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8026         accordingly.
8027
8028 2004-03-24  DJ Delorie  <dj@redhat.com>
8029             Richard Sandiford  <rsandifo@redhat.com>
8030
8031         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8032         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8033         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8034         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8035         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8036         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8037         if TARGET_FIX_VR4122.
8038         * config/mips/mips.md (define_attr length): Account for nops inserted
8039         after macc and dmult when using -mfix-vr4122-bugs.
8040         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8041         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8042         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8043         * config/mips/vr4122-div.S: New file.
8044         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8045
8046 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8047
8048         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8049         (TARGET_MIPS4130): New macro.
8050         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8051         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8052         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8053         with PROCESSOR_R4130.
8054         * config/mips/mips.md (define_attr cpu): Add r4130.
8055         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8056
8057 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8058             Richard Sandiford  <rsandifo@redhat.com>
8059
8060         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8061
8062 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8063
8064         PR preprocessor/14438
8065         * cpplib.c (do_pragma): Remove line_change call after pragma
8066         handler.
8067
8068 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8069
8070         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8071         declarations.
8072
8073 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8074
8075         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8076         if flag_unsafe_math_optimizations.
8077         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8078         and TARGET_80387 expand using truncdfsf2_noop pattern.
8079         (truncxfsf2): Likewise using truncxfsf2_noop.
8080         (truncxfdf2): Likewise using truncxfdf2_noop.
8081         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8082
8083 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8084
8085         * hooks.c (hook_constcharptr_tree_null): New hook.
8086         * hooks.h (hook_constcharptr_tree_null): New prototype.
8087         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8088         * target.h (mangle_fundamental_type): New target hook.
8089         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8090         target hook at rs6000_mangle_fundamental_type.
8091         (rs6000_mangle_fundamental_type): New function.
8092         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8093
8094 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8095
8096         PR 12267, 12391, 12560, 13129, 14114, 14133
8097         * c-tree.h: Forward declare struct c_binding.  Declare
8098         c_override_bindings_to_false.  Update prototypes.
8099         (struct lang_identifier): Update comments.  Change fields to be
8100         struct c_binding *.
8101         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8102         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8103         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8104         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8105         * c-common.h: Update prototypes.
8106         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8107         names_last, parms, parms_last, tags, and shadowed fields.  Add
8108         bindings and depth fields.
8109         (scope_freelist): Move to more appropriate location.
8110         (c_print_identifier): Update for changes to struct lang_identifier.
8111         (objc_mark_locals_volatile): Update for new bindings structures.
8112         (global_bindings_p): Honor c_override_global_bindings_to_false.
8113         (pushlevel): Rename to push_scope; take no arguments; use the
8114         scope_freelist; initialize scope->depth and check for overflow.
8115         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8116         structures.
8117         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8118         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8119         Improve some commentary.  Adjust handling of forward parm decls.
8120         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8121         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8122         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8123         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8124         decls.  Rewrite for new bindings structures.  Improve commentary.
8125         Eliminate the copy_node call.
8126         (implicit_decl_warning): Use the "diag" idiom (as seen in
8127         locate_old_decl) to reduce code duplication; call locate_old_decl
8128         if appropriate.  Relocate to remove need for forward declaration.
8129         (implicitly_declare): Adjust for new bindings structures.  Kludge
8130         around Objective-C not-really-builtin functions.
8131         (undeclared_variable): Improve diagnostics.  If current_function_decl
8132         is nonnull but current_function_scope is null, use current_scope.
8133         Use bind.
8134         (lookup_tag): Adjust for new bindings structures.  Kludge around
8135         Objective-C's tag declarations that wind up in the external scope.
8136         (lookup_name): Adjust for new bindings structures.  Kludge around
8137         c-common.c's pseudo-typedefs that wind up in the external scope.
8138         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8139         second argument indicating the scope to examine; rewrite for
8140         new bindings structures.
8141         (c_init_decl_processing): Adjust for renamed functions.  Do not
8142         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8143         First scope pushed is the external scope, not the global scope.
8144         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8145         for new data structures.  Keep track of builtins that should be
8146         made visible automatically.
8147         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8148         expand_decl.
8149         (grokparms): Return 0 if arg_types is error_mark_node.
8150         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8151         reversed sense.  Rewrite for new bindings structures.  Do not
8152         leave any decls in the scope, to prevent pop_scope from doing
8153         contradictory things with them.
8154         (finish_struct, finish_enum): Remove redundant diagnostics.
8155         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8156         Mark location where -pedantic changes the meaning of the program.
8157         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8158         parameter decls into the function's scope structure using bind.
8159         Warn here about function definitions in the wrong style.
8160         Adjust diagnostics.
8161         (store_parm_decls): Correct the determination of whether a
8162         function was defined with a prototype.
8163         (c_write_global_declarations): Operate on all file decls and on
8164         the external scope.  Split body of the loop to...
8165         (c_write_global_declarations_1): ... this new function, to avoid
8166         code duplication.
8167         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8168         (make_scope, pop_scope, in_parm_level_p, set_block)
8169         (any_external_decl, record_external_decl, bind_label, getdecls)
8170         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8171         (c_reset_state): Delete.
8172         (visible_builtins, c_override_global_bindings_to_false)
8173         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8174         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8175         (external_scope, binding_freelist, bind, free_binding_and_advance)
8176         (push_file_scope, pop_file_scope): New.
8177         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8178         (define_label, c_make_fname_decl, finish_decl)
8179         (mark_forward_parm_decls, build_compound_literal)
8180         (grokdeclarator, start_function, check_for_loop_decls)
8181         (identifier_global_value, record_builtin_type): Minor adjustments
8182         for new bindings structures.  Improve diagnostics and commentary.
8183         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8184         pushlevel/poplevel respectively.
8185         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8186         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8187         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8188         correct loop over multiple translation units; call fatal_error if
8189         requested to compile more than one file at once.  (This disables
8190         IMA temporarily - an up-front error being preferable to a crash.)
8191         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8192         (all actions): Adjust calls to pushlevel/poplevel.
8193         (parsing_iso_function_signature): Delete.
8194         (extdef_1): Fold into extdef.
8195         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8196         warn here about function definitions in the wrong style.
8197         (after_tyle_declarator, parm_declarator_starttypename)
8198         (parm_declarator_nostarttypename, notype_declarator): Remove
8199         commented-out productions.
8200         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8201         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8202         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8203         to suppress -Wold-style-definition after this error.
8204         (c_parse_file): Don't clear the binding stack or call
8205         finish_fname_decls here.  Correct comment.
8206         * c-typeck.c (same_translation_unit_p): Export.
8207         (common_type): Use c_override_global_bindings_to_false, not
8208         pushlevel/poplevel/declare_parm_level.
8209         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8210         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8211         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8212         * objc/objc-lang.c: Likewise.
8213         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8214         get_parm_info.
8215         (OBJC_VOID_AT_END): Delete; replace all uses
8216         with void_list_node.
8217         (generate_forward_declaration_to_string_table): Delete.
8218         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8219
8220         * coverage.c (create_coverage): Don't pushdecl anything.
8221         * langhooks.c (lhd_clear_binding_stack): Call
8222         lang_hooks.decls.poplevel, not poplevel.
8223         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8224         circular list rather than going into an infinite loop.
8225
8226 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8227
8228         * optabs.c (expand_binop): When synthesizing double word rotates
8229         from single word shifts, use a new register target if the provided
8230         target is not a REG already.
8231
8232 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8233
8234         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8235         * c-common.c (handle_mode_attribute): Add extra arg to
8236         build_pointer_type_for_mode and build_reference_type_for_mode.
8237         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8238         for INTEGER_CST.
8239         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8240         Chain pointers via TYPE_NEXT_PTR_TO.
8241         (build_reference_type_for_mode): Similarly.
8242         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8243         and build_reference_type_for_mode.
8244         (tree_check4_failed): New function.
8245         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8246         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8247         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8248         Add check.
8249
8250 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8251
8252         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8253         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8254         when both A and B are nonnegative.
8255         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8256         nonzero.
8257
8258 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8259
8260         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8261         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8262
8263 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8264
8265         PR optimization/14669
8266         * fold-const.c (fold): Only unwiden integer comparisons for equality
8267         and inequality operators, or when the signedness doesn't change.
8268
8269 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8270
8271         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8272         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8273         * config/sparc/t-linux: New file.
8274
8275 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8276
8277         * gcse.c (can_assign_to_reg_p): New function, split out from...
8278         (want_to_gcse_p): ...here.
8279         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8280         the rhs of a store.
8281
8282 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8283
8284         * c-typeck.c (same_translation_unit_p): Fix pasto.
8285
8286 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8287
8288         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8289         (PARAM_MAX_SCHED_REGION_INSNS): New.
8290         * sched-rgn.c: Include params.h
8291         (MAX_RGN_BLOCKS): Delete.
8292         (MAX_RGN_INSNS): Delete.
8293         (too_large): Return bool.  Convert to PARAM_VALUE.
8294         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8295         * doc/invoke.texi (param): Document max-sched-region-blocks and
8296         max-sched-region-insns.
8297
8298 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8299
8300         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8301         for base types.
8302
8303 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8304
8305         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8306         change.
8307
8308 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8309
8310         PR c/14069
8311         * c-decl.c (finish_struct): Change type of incorrect flexible array
8312         field into error_mark_node.
8313
8314 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8315
8316         PR target/14580
8317         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8318         who are not local for Darwin PIC.
8319
8320 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8321
8322         * regrename.c (regrename_optimize): Set regs_ever_live for all
8323         registers introduced as replacement.
8324
8325 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8326
8327         PR middle-end/14470
8328         * expr.c (mark_queue): New function.
8329         (emit_insns_enqueued_after_mark): New function replacing
8330         emit_queue.  Clear the body of emitted queued insns.
8331         (emit_queue): Call emit_insns_enqueued_after_mark.
8332         (store_expr): Mark the increment queue on entry.  Emit
8333         only the incrementations queued when expanding the source.
8334
8335 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8336
8337         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8338         of top level bootstrap, and consistency).  Reindent.
8339         * configure: Regenerate.
8340
8341 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8342
8343         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8344         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8345         unnecessary casts.
8346
8347 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8348
8349         PR target/14291
8350         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8351         __MINGW32__.
8352
8353 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8354
8355         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8356         to nonimmediate_operand.
8357         ("*doloop_di"): Likewise.
8358
8359 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8360
8361         * real.h (struct real_value): Use the same type for all
8362         bitfields.  Rename exp to uexp.
8363         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8364         Adjust all uses of exp...
8365         * builtins.c: ... here, ...
8366         * emit-rtl.c: ... here, and ...
8367         * real.c: ... and here.
8368
8369 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8370
8371         * pretty-print.c (pp_base_maybe_space): New function.
8372         * pretty-print.h (pp_base_maybe_space): Declare.
8373         (pp_maybe_space): New macro.
8374
8375 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8376
8377         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8378
8379 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8380
8381         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8382         of using register multiplication cost.
8383         (expand_mult): Adapt choose_mult_variant call.
8384         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8385         of MODE; pass appropriate cost bound.  Adjust result when
8386         performing signed multiplication by a negative constant.
8387         Don't use intermediate modes larger than word_mode.
8388
8389 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8390
8391         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8392         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8393         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8394         * explow.c (expr_size): Likewise.
8395         * expr.h (placeholder_list, find_placeholder): Deleted.
8396         * expr.c (store_constructor): Likewise.
8397         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8398         (placeholder_list, find_placeholder): Deleted.
8399         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8400         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8401         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8402         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8403         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8404         Likewise.
8405         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8406         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8407         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8408         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8409         Clean up by using first_rtl_op.
8410         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8411         (substitute_placeholder_in_expr): New function.
8412         * tree.def (WITH_RECORD_EXPR): Deleted.
8413         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8414         (substitute_placeholder_in_expr): New.
8415
8416 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8417
8418         * dojump.c (prefer_and_bit_test): Fix which part of
8419         the and_test is replaced.
8420
8421 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8422
8423         * frontends.texi: Add missing line.
8424
8425 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8426             Chris Devers  <cdevers@pobox.com>
8427             Joseph S. Myers  <jsm@polyomino.org.uk>
8428
8429         * doc/frontends.texi: Rewrite.
8430         * doc/gcc.texi: Update last modification date.
8431
8432 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8433
8434         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8435         message before redirecting the edge.
8436
8437 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8438
8439         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8440         flag.
8441         * explow.c (force_not_mem): Set REG_POINTER flag according to
8442         MEM_POINTER one.
8443         * rtl.h (MEM_POINTER): New macro.
8444         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8445         for MEM_POINTER.
8446
8447 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8448
8449         PR target/13889
8450         * cse.c (fold_rtx): Avoid substituting constants into unary
8451         conversion operations.
8452
8453 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8454
8455         * fold-const.c (fold): Replace "expr" with "t".
8456
8457 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8458
8459         PR c/12373
8460         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8461         DECL_ORIGINAL_TYPE if there isn't one.
8462
8463 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8464
8465         * fold-const.c (fold): Replace "final_type" with "type".
8466         Remove variable "final_type".
8467
8468 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8469
8470         * fold-const.c (fold): Constify "type".
8471         Replace "TREE_TYPE (t)" with "type".
8472
8473 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8474
8475         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8476         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8477         via (*targetm.foo) () with targetm.foo ().
8478
8479 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8480
8481         PR other/14630
8482         * doc/install.texi: Add info directory category and entry.
8483
8484 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8485
8486         * fold-const.c (fold): Replace "t" with "tem" where it is used
8487         as a temporary variable.  Remove "orig_t" and all of its uses.
8488
8489 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8490
8491         * fold-const.c (fold): Remove variable "invert".
8492         Move the handling of relational expressions that can be folded
8493         to a constant ...
8494         (fold_relational_const): ... here.
8495         (tree_expr_nonzero_p): New.
8496
8497 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8498
8499         PR c/14635
8500         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8501         DEF_GCC_BUILTIN.
8502
8503 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8504
8505         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8506         (GTFILES): Add $(srcdir)/dojump.h.
8507         (gt-dojump.h): New dependency.
8508         * dojump.c (and_reg, and_test, shift_test): New static variables.
8509         (prefer_and_bit_test): New function.
8510         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8511
8512 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8513
8514         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8515         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8516         reorg.c, tree.h: Fix comment typos.
8517
8518 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8519
8520         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8521         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8522         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8523         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8524         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8525         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8526         targetm.foo ().
8527
8528 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8529
8530         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8531         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8532         always_inline attribute.
8533         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8534         Treat expansion as completed even if literal argument is
8535         invalid (so that other expansions are not tried in vain).
8536
8537 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8538
8539         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8540         const0_rtx.
8541
8542 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8543
8544         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8545         ...
8546         (fold_abs_const): ... here.
8547
8548 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8549
8550         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8551
8552 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8553
8554         PR target/11520
8555         * config/avr/avr.md ("call_insn"): Handle explicit integer
8556         specially.
8557         (call_value_insn): Likewise.
8558
8559 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8560
8561         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8562
8563 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8564
8565         * fold-const.c (negate_expr): Move the handling of constants
8566         ...
8567         (fold_negate_const): ... here.
8568
8569 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8570
8571         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8572         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8573         * tree.c (debug_no_type_hash): Deleted.
8574         (type_hash_canon): Abort if passed a variant.
8575         Check lang_hooks.types.hash_types.
8576         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8577         (build_array_type): Remove unnecessary allocation of pointer type.
8578         (build_complex_type): Properly qualify resulting type.
8579
8580 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8581
8582         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8583
8584 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8585
8586         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8587         (expand_mult): ...here.
8588         (extract_high_half): New, split out from expand_mult_highpart.
8589         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8590         (expand_highpart): Evaluate the cost of a shift/add sequence,
8591         then see if any of the specialized optabs are cheaper.
8592
8593 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8594
8595         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8596
8597 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8598
8599         * convert.c (convert_to_real): Add more math builtins.
8600
8601 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8602
8603         * convert.c (convert_to_real): Reformat using switch stmt.
8604
8605 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8606
8607         * c-common.c (pointer_int_sum): Do not complain about using
8608         pointers to pointers-to-members.
8609
8610 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8611
8612         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8613         have moved to the target hooks structure".
8614
8615 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8616
8617         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8618         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8619         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8620         Likewise.
8621         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8622         Likewise.
8623         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8624         rm7_fp_quick): Likewise.
8625         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8626         rm9k_fquick): Likewise.
8627         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8628         Likewise.
8629         (ir_sr70_icmp): Delete.
8630
8631 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8632
8633         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8634         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8635         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8636         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8637         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8638         Protect with proper check.
8639         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8640         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8641         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8642         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8643         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8644         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8645         not TYPE_FIELDS.
8646         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8647
8648 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8649
8650         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8651         dest is set between beginning and current insn.
8652
8653 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8654
8655         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8656         visible "static" identifiers "extern" in a local scope.
8657         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8658         post-increments/decrements.
8659
8660 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8661
8662         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8663         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8664         (xtensa_va_start): Remove assignment to current_function_arg_words.
8665
8666 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8667
8668         * alias.c (record_set): Detect the case where a register is assigned
8669         a new value that has the same base term as the old one.
8670
8671 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8672
8673         * doloop.c: Removed.
8674         * loop-doloop.c: New file.
8675         * Makefile.in (doloop.o): Remove.
8676         (loop-doloop.o): New.
8677         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8678         * cfgloopanal.c (get_loop_level): New function.
8679         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8680         is leaved immediatelly.
8681         * loop.c (strength_reduce): Do not call doloop optimization.
8682         * loop.h (LOOP_BCT): Removed.
8683         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8684         (rest_of_handle_loop2): Call doloop_optimize_loops.
8685         (rest_of_compilation): Test for optimizations moved to
8686         rest_of_handle_loop2.
8687
8688 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8689
8690         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8691         for mixed mode.
8692         (rs6000_emit_prologue): Ditto.
8693         (rs6000_emit_epilogue): Ditto.
8694         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8695         macro for mixed mode.
8696
8697 2004-03-18  Jan Hubicka  <jh@suse.cz>
8698
8699         * predict.c (propagate_freq): Compute correctly frequency of
8700         EXIT_BLOCK.
8701
8702 2004-03-17  Eric Christopher  <echristo@redhat.com>
8703
8704         * builtins.c (apply_args_size): Use reg_raw_mode.
8705         (apply_result_size): Ditto.
8706
8707 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8708
8709         PR target/14620
8710         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8711
8712 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8713
8714         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8715         32-bit builds when defaulting to 32-bit.
8716
8717 2004-03-17  Jan Hubicka  <jh@suse.cz>
8718
8719         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8720         array.
8721
8722 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8723
8724         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8725         (hazard_nop): Change type to nop.
8726         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8727         Fix all uses.  Change arith to multi if more than one insn emitted.
8728         * config/mips/5400.md (ir_vr54_arith): Likewise.
8729         * config/mips/5500.md (ir_vr55_arith): Likewise.
8730         * config/mips/7000.md (rm7_int_other): Likewise.
8731         * config/mips/9000.md (rm9k_int): Likewise.
8732         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8733
8734 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8735
8736         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8737         to hold the subtype tree instead of recomputing it several times.
8738
8739 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8740
8741         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8742         CC_INVERT.
8743         * config/mn10300/mn10300.md (cc): Remove "invert".
8744
8745 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8746
8747         * builtins.c (integer_valued_real_p): Add builtin rint.
8748         (fold_builtin): Likewise.
8749         * convert.c (convert_to_real): Likewise.
8750
8751         * convert.c (convert_to_real): Fix typos in `long double'
8752         builtins.
8753
8754 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8755
8756         PR c++/14481
8757         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8758         generated COMPOUND_EXPRs.
8759
8760 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8761
8762         * config/h8300/t-rtems (h8300-*-rtems*): New.
8763
8764 2004-03-16  Eric Christopher  <echristo@redhat.com>
8765
8766         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8767
8768 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8769
8770         * config/i386/i386-protos.h: Add a prototype for
8771         ix86_reverse_condition.
8772         * config/i386/i386.c (ix86_reverse_condition): New.
8773         * config/i386/i386.h (REVERSE_CONDITION): Use
8774         ix86_reverse_condition.
8775         * config/i386/i386.md: Use ix86_reverse_condition instead of
8776         REVERSE_CONDITION.
8777
8778 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8779
8780         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8781
8782 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8783
8784         PR bootstrap/12974
8785         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8786
8787 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8788
8789         * c-common.c (c_common_type_for_mode): Build vector types on
8790         demand.
8791         (handle_mode_attribute): Deprecate using the mode attribute
8792         to create vector types.  Fix indentation.
8793         (vector_type_node_list): Remove.
8794         (handle_vector_size_attribute): Create vector types on demand.
8795         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8796         * c-typeck.c (comptypes): Make vector types compatible if they
8797         have the same underlying mode.
8798         (convert_for_assignment): Use comptypes to convert between
8799         vector types.
8800         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8801         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8802         vector types.
8803         * tree.h: Remove vector types.
8804         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8805         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8806         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8807         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8808         * doc/extend.texi (Vector Types): Document how to use the
8809         vector_size attribute to create vectors, rather than mode.
8810
8811         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8812         * config/i386/emmintrin.h: Likewise.
8813         * config/i386/mmintrin.h: Likewise.
8814         * config/i386/xmmintrin.h: Likewise.
8815         * config/sh/ushmedia.h: Likewise.
8816
8817 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8818
8819         * config/freebsd-spec.h, config/arc/arc-protos.h,
8820         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8821         config/arm/linux-gas.h, config/arm/semi.h,
8822         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8823         config/ia64/freebsd.h, config/mips/7000.md,
8824         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8825         config/sparc/pbd.h: Update copyright.
8826
8827 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8828
8829         PR target/14577
8830         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8831
8832 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8833
8834         * combine.c (combine_simplify_rtx): Remove the "last"
8835         parameter and its documentation.  Adjust recursive calls.
8836         (simplify_logical): Always perform the only simplification
8837         controlled by "last", if the simplified expression is
8838         actually different.
8839         (try_combine): Do not pass the "last" parameter to
8840         combine_simplify_rtx.
8841
8842 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8843
8844         PR target/14599
8845         * config/mips/mips.md (UNSPEC_GP): New constant.
8846         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8847         an UNSPEC instead of (reg $gp).
8848         (mips16_gp_pseudo_reg): Change accordingly.
8849         (print_operand): Print $gp directly when handling CONST_GP_P.
8850
8851 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8852
8853         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8854         * longlong.h: Make code 68060 clean when compiling for m68060.
8855
8856 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8857
8858         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8859         * doc/md.texi: Clarify description of "i" constraint.
8860
8861 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8862
8863         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8864         Split store into store, fpstore, fpidxstore.  Fix all uses.
8865         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8866         Likewise.
8867         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8868         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8869         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8870         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8871         ir_sr70_fstore): Likewise.
8872
8873 2004-03-15  Richard Henderson  <rth@redhat.com>
8874
8875         PR middle-end/14535
8876         * except.c (collect_one_action_chain): Record action for cleanup
8877         outer of exception spec.
8878
8879 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8880
8881         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8882         Fix the check for abort and only do the mmap if we can.
8883
8884 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8885
8886         * config/sparc/sparc.h: Rework comments about the code model
8887         in 64-bit environment and the mode 'Pmode'.
8888         * doc/invoke.texi (SPARC options): Rework description of the
8889         different code models supported in 64-bit environment.
8890
8891 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8892
8893         * defaults.h (REVERSIBLE_CC_MODE): Define.
8894         * jump.c (reversed_comparison_code_parts): Don't check if
8895         REVERSIBLE_CC_MODE is defined.
8896
8897 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8898
8899         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8900         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8901         hosthooks.h, params.h, ra-colorize.c, web.c,
8902         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8903         config/avr/avr-protos.h, config/avr/avr.md,
8904         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8905         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8906         config/i386/freebsd.h, config/i386/freebsd64.h,
8907         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8908         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8909         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8910         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8911         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8912         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8913         config/sparc/aout.h, config/sparc/freebsd.h,
8914         config/sparc/litecoff.h, config/vax/vax-protos.h,
8915         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8916         copyright.
8917
8918 2004-03-15  Paul Brook  <paul@codesourcery.com>
8919
8920         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8921
8922 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8923
8924         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8925         (pp_c_cv_qualifier): Document.
8926         (pp_c_space_for_pointer_operator): Likewise.
8927         (pp_c_integer_constant): Likewise.
8928         (pp_c_identifier): Likewise.
8929         (pp_c_init_declarator): Don't print function body.
8930
8931 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8932
8933         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8934         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8935         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8936         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8937         wording and grammar.
8938
8939 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8940
8941         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8942         with lang_hooks.foo ().
8943         * builtins.c (expand_builtin_va_arg): Likewise.
8944         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8945         c_common_type_for_mode, c_common_nodes_and_builtins,
8946         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8947         * c-convert.c (convert): Likewise.
8948         * c-format.c (check_format_types): Likewise.
8949         * c-objc-common.c (c_tree_printer): Likewise.
8950         * c-typeck.c (build_unary_op, build_conditional_expr,
8951         build_binary_op): Likewise.
8952         * calls.c (try_to_integrate, expand_call,
8953         emit_library_call_value_1): Likewise.
8954         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8955         Likewise.
8956         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8957         cgraph_expand_function): Likewise.
8958         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8959         * coverage.c (build_fn_info_type, build_ctr_info_type,
8960         build_gcov_info, create_coverage): Likewise.
8961         * dbxout.c (dbxout_init): Likewise.
8962         * diagnostic.c (diagnostic_report_current_function): Likewise.
8963         * dojump.c (do_jump): Likewise.
8964         * dwarf2out.c (dwarf2_name): Likewise.
8965         * except.c (init_eh): Likewise.
8966         * explow.c (expr_size, int_expr_size): Likewise.
8967         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8968         Likewise.
8969         * expr.c (store_expr, store_constructor, safe_from_p,
8970         expand_expr_real, do_store_flag, try_casesi): Likewise.
8971         * function.c (push_function_context_to, pop_function_context_from,
8972         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8973         put_var_into_stack, allocate_struct_function, current_function_name):
8974         Likewise.
8975         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8976         Likewise.
8977         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8978         lhd_print_error_function): Likewise.
8979         * opts.c (handle_option, decode_options): Likewise.
8980         * passes.c (open_dump_file): Likewise.
8981         * print-tree.c (print_node): Likewise.
8982         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8983         expand_decl_cleanup, emit_case_nodes): Likewise.
8984         * stor-layout.c (variable_size): Likewise.
8985         * toplev.c (announce_function, wrapup_global_declarations,
8986         check_global_declarations, compile_file, default_tree_printer,
8987         process_options, lang_dependent_init, finalize): Likewise.
8988         * tree-dump.c (dequeue_and_dump): Likewise.
8989         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8990         initialize_inlined_parameters, declare_return_variable,
8991         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8992         walk_tree, copy_tree_r): Likewise.
8993         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8994         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8995         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8996         variably_modified_type_p, dump_tree_statistics): Likewise.
8997         * varasm.c (assemble_variable, compare_constant, copy_constant,
8998         force_const_mem, compute_reloc_for_constant, output_constant,
8999         output_addressed_constants, initializer_constant_valid_p): Likewise.
9000
9001 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9002
9003         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9004
9005 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9006
9007         * doc/install.texi: Reflect autoconf and automake version for
9008         libffi. Update autoconf version to 2.59.
9009
9010 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9011
9012         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9013         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9014         make_range, build_range_check, fold_range_test, unextend,
9015         constant_boolean_node, fold_binary_op_with_conditional_arg,
9016         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9017         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9018         with lang_hooks.foo ().
9019
9020 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9021
9022         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9023
9024 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9025
9026         * doc/install.texi: Note status of -fnew-ra.
9027
9028 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9029
9030         PR middle-end/14470
9031         * expr.c (store_expr): Call emit_queue before generating the move
9032         from the temporary to the original target.  Protect the temporary
9033         from emit_queue.
9034
9035 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9036
9037         PR target/14533
9038         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9039         other than UNSPEC_GOTOFF.
9040
9041 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9042
9043         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9044         to arm_legitimate_index_p.  Update all callers with SET as default
9045         value.
9046         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9047         range if OUTER is a sign-extend operation on QImode.  Correctly
9048         reject shift operations on sign-extended QImode addresses.
9049         (bad_signed_byte_operand): Delete.
9050         (arm_extendqisi_mem_op): New function.
9051         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9052         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9053         constraints.
9054         (CONSTRAINT_LEN): New.
9055         (EXTRA_CONSTRAINT): Delete.  Replace with...
9056         (EXTRA_CONSTRAINT_STR): ... this.
9057         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9058         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9059         is now always default.
9060         (define_splits for bad sign-extend loads): Delete.
9061         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9062         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9063         Rework 'U' constraint to 'Uv'.
9064         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9065         arm_extendqisi_mem_op.
9066         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9067         Add Uq constraint.
9068
9069 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9070
9071         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9072         with targetm version.
9073
9074         PR target/14567
9075         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9076         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9077         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9078         Update all users of RS6000_ARG_SIZE.
9079         (function_arg_advance): Count fregno using mode size.
9080         (function_arg): Handle long double split over regs and memory.
9081         (function_arg_partial_nregs): Likewise.
9082         (rs6000_va_arg): Repackage complex args.
9083
9084 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9085
9086         PR target/14047
9087         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9088         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9089         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9090
9091 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9092
9093         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9094         prototype.
9095         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9096         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9097
9098 2003-03-12  Andrew Pinski  <apinski@apple.com>
9099
9100         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9101         Use ret instead of result. Use addr instead of base.
9102
9103 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9104
9105         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9106         fixes required by libstdc++ and update installation instructions
9107         for libstdc++.a.
9108
9109 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9110
9111         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9112         leading '@' on fastcall symbols before stripping suffix.
9113
9114 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9115
9116         * combine.c (unmentioned_reg_p): New function to check whether an
9117         expression is a "specialization" of another, i.e. that there are
9118         no registers or memory references mentioned in the first that don't
9119         appear in the second.
9120         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9121         (combine_instructions): Also try combining instructions using the
9122         REG_EQUAL note from a preceding log-linked instruction.
9123
9124 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9125
9126         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9127
9128 2004-03-12  Matt Austern  <austern@apple.com>
9129
9130         * target.h (struct gcc_target): New target hook, unwind_label.
9131         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9132         * output.h (default_emit_unwind_label): New function.
9133         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9134         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9135         (TARGET_SUPPORTS_HIDDEN): New target macro.
9136         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9137         that corresponds to this FDE.
9138         (FRAME_BEGIN_LABEL): Allow target to override default label.
9139         (output_call_frame_info): If FDEs are linknonce, then use extra
9140         indirection for FDE encoding, output a label for each FDE, and
9141         output an empty label for each function without an FDE.
9142         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9143         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9144         decls with DECL_ONE_ONLY set, if that macro is defined.
9145         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9146         for a SUPPORTS_ONE_ONLY target.
9147         * config/darwin-protos.h (darwin_unique_section): Declare.
9148         (darwin_asm_named_section): Likewise.
9149         (darwin_section_type_flags): Likewise.
9150         (darwin_non_lazy_pcrel): Likewise.
9151         (darwin_emit_unwind_label): Likewise.
9152         (darwin_make_decl_one_only): Likewise.
9153         * config/darwin.c (machopic_finish): Get rid of tweak that
9154         eliminate stubs for symbols that are defined.
9155         (darwin_encode_section_info): Don't treat weak functions as defined.
9156         (darwin_make_decl_one_only): Define.
9157         (darwin_asm_named_section): Likewise.
9158         (darwin_section_type_flags): Likewise.
9159         (darwin_unique_section): Likewise.
9160         (darwin_emit_unwind_label): Likewise.
9161         (darwin_non_lazy_pcrel): Likewise.
9162         (darwin_asm_output_dwarf_delta): Difference between two labels is
9163         local only if both labels are local.
9164         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9165         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9166         (TARGET_SUPPORTS_HIDDEN): Likewise.
9167         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9168         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9169         (FRAME_BEGIN_LABEL): Likewise.
9170         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9171         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9172         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9173         (TARGET_ASM_UNIQUE_SECTION): Define.
9174         (EH_FRAME_SECTION_NAME): Define.
9175         (EH_FRAME_SECTION_ATTR): Likewise.
9176         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9177         (TARGET_ASM_NAMED_SECTION): Likewise.
9178         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9179         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9180         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9181         TARGET_ASM_EMIT_UNWIND_LABEL.
9182
9183 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9184
9185         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9186         existing exp10* case.
9187         (expand_builtin): Likewise.
9188
9189 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9190
9191         * doc/tm.texi (registers) <Values in Registers>: Add
9192         entry for REGMODE_NATURAL_SIZE.
9193
9194 2004-03-12  Richard Henderson  <rth@redhat.com>
9195
9196         PR target/14547
9197         * target.h (struct gcc_target): Move calls substructure before
9198         booleans.  Add split_complex_arg.
9199         * function.c (assign_parms, split_complex_args): Use it.
9200         * calls.c (expand_call): Likewise.
9201         (split_complex_values): Likewise.  Check for splittable types
9202         before allocating memory.
9203         (split_complex_types): Likewise.
9204         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9205         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9206         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9207         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9208         (TARGET_SPLIT_COMPLEX_ARG): New.
9209         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9210         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9211         (rs6000_override_options): Zap it for non-AIX.
9212         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9213         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9214         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9215         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9216         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9217         SPLIT_COMPLEX_ARGS entry.
9218
9219 2004-03-11  Richard Henderson  <rth@redhat.com>
9220
9221         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9222         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9223         (alpha_emit_xfloating_arith): Update to match.
9224         (alpha_emit_xfloating_compare): Likewise.
9225         (alpha_emit_xfloating_cvt): Likewise.
9226         (alpha_emit_xfloating_libcall): Take already built symbol,
9227         mark call const.
9228         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9229         op1 in a register.
9230
9231 2004-03-11  Richard Henderson  <rth@redhat.com>
9232
9233         PR target/14539
9234         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9235
9236         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9237
9238 2004-03-11  Richard Henderson  <rth@redhat.com>
9239
9240         PR middle-end/14477
9241         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9242
9243 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9244
9245         PR target/14262
9246         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9247         defined, pass small BLKmode values in registers in the low-order part.
9248
9249 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9250
9251         * combine.c (if_then_else_cond): Check for NULL return value of
9252         simplify_gen_subreg.
9253
9254 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9255
9256         PR target/14496
9257         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9258         TARGET_SINGLE_FLOAT.
9259
9260 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9261
9262         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9263         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9264         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9265         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9266
9267 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9268
9269         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9270         -((int)X>>C) where C is an integer constant one bit less than the
9271         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9272         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9273
9274         * simplify-rtx.c (simplify_unary_operation): Also implement the
9275         above transformations at the RTL level.
9276
9277 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9278
9279         * real.c (encode_ibm_extended): Do round low word.
9280
9281 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9282
9283         * config/arm/arm.md (is_xscale): Comment this attribute and move
9284         it a bit further up in the file, closer to related attributes.
9285
9286 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9287
9288         * config/host-solaris.c (sol_gt_pch_use_address): Add
9289         missing terminating marker to comment.
9290
9291 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9292
9293         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9294         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9295         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9296         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9297         move_operand as source predicate in all cases.
9298         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9299         Test reg_or_0_operand.  Use move_operand as source predicate.
9300         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9301         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9302         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9303         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9304         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9305         Use move_operand as source predicate.  Remove 'K' constraint.
9306         (*movqi_internal): Likewise movqi_internal.
9307         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9308         reg_or_0_operand.  Use move_operand as source predicate.
9309         (*movsf_softfloat): Likewise movsf_internal2.
9310         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9311         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9312         (*movdf_softfloat): Likewise movdf_internal2.
9313         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9314         for DImode if !TARGET_64BIT.
9315         (mips_legitimize_move): Simplify accordingly.
9316
9317 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9318
9319         PR/14362
9320         * var-tracking.c (struct variable_def): Added field refcount.
9321         (variable_htab_free): Decrease the refcount and delete variable
9322         only if there are no more references.
9323         (unshare_variable): New function.
9324         (vars_copy_1): Increase refcount instead of copying the variable.
9325         (variable_union): Share the variables where possible, unshare
9326         the variables if needed.
9327         (variable_different_p): Return false if var1 and var2 are
9328         the same structure.
9329         (variable_was_changed): Init the refcount of new variable.
9330         (set_frame_base_location): Unshare variable if needed.
9331         (set_variable_part): Init the refcount of new variable.
9332         Unshare the variables if needed.
9333         (delete_variable_part): Unshare the variables if needed.
9334         (emit_notes_for_differences_1): Init the refcount of new variable.
9335         (vt_add_function_parameters): Do not add function parameters to
9336         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9337         (vt_initialize): Do not add frame_base_decl to IN set of
9338         ENTRY_BLOCK_PTR because it is unused anyway.
9339
9340 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9341
9342         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9343         (vars_copy): Likewise.
9344         (variable_union): Likewise.
9345         (set_variable_part): Likewise.
9346         (delete_variable_part): Likewise.
9347
9348 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9349
9350         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9351         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9352         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9353         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9354         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9355         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9356         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9357         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9358         config/stormy16/stormy16.c: Fix comment typos and formatting.
9359
9360 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9361
9362         * configure: Regenerate, since I forgot to while committing Paolo's
9363         changes.
9364
9365 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9366
9367         PR ada/14131
9368         Move language detection to the top level.
9369         * configure.ac: Remove code to detect languages,
9370         it now lives exclusively in the top level.
9371         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9372         top level, renamed to ACX_PROG_GNAT.
9373
9374 2004-03-10  Richard Henderson  <rth@redhat.com>
9375
9376         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9377         extra arguments.
9378         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9379         and host_xmake_file fragments.
9380         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9381         (gt_pch_restore): Similarly for gt_pch_use_address.
9382         (default_gt_pch_get_address): New.
9383         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9384         (default_gt_pch_use_address): Split out of gt_pch_restore.
9385         (mmap_gt_pch_use_address): Likewise.
9386         * hooks.c (hook_voidp_size_t_null): Remove.
9387         (hook_bool_voidp_size_t_false): Remove.
9388         * hooks.h: Likewise.
9389         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9390         default_ or mmap_ definitions.
9391         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9392         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9393         and gt_pch_use_address.
9394         * config/host-linux.c, config/host-solaris.c: New files.
9395         * config/x-linux, config/x-solaris: New files.
9396         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9397         Update for changed definition.
9398         (darwin_rs6000_gt_pch_use_address): Likewise.
9399         * doc/hostconfig.texi: Update docs.
9400
9401 2004-03-10  Richard Henderson  <rth@redhat.com>
9402
9403         PR c/14517
9404         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9405         except for pedantic c90 mode.
9406
9407 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9408
9409         * configure.ac: Bump AC_PREREQ to 2.59.
9410         * configure: Regenerate.
9411
9412 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9413
9414         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9415         (exp10_optab, exp2_optab): Define corresponding macros.
9416         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9417         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9418         using exp10?f2 and exp2?f2 patterns.
9419         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9420         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9421         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9422         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9423
9424         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9425         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9426         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9427
9428 2004-03-10  Anthony Green  <green@redhat.com>
9429
9430         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9431
9432 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9433
9434         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9435         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9436         __LONGDOUBLE128.
9437         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9438         TARGET_OS_AIX_CPP_BUILTINS.
9439         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9440         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9441         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9442         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9443         previous change.
9444
9445 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9446
9447         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9448
9449 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9450
9451         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9452         __LONGDOUBLE128 on AIX.
9453
9454 2004-03-10  Andrew Haley  <aph@redhat.com>
9455
9456         PR optimization/14381
9457         * function.c (expand_function_end): Emit a blockage insn before
9458         the epilogue when -fnon-call-exceptions is used.
9459
9460         * except.c (expand_start_all_catch): Make comment more accurate.
9461
9462 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9463
9464         PR target/14480
9465         * config/rs6000/t-rtems: Add missing file on branch.
9466
9467 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9468
9469         * dbxout.c (dbxout_symbol_location): Do not output references
9470         to optimized-out constant pool symbols.
9471
9472 2004-03-10  Andreas Schwab  <schwab@suse.de>
9473
9474         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9475         twon34_r.
9476
9477 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9478
9479         * alias.c (alias_sets_might_conflict_p): New.
9480         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9481         * common.opt (Wstrict-aliasing=): New.
9482         * flags.h (warn_strict_aliasing): Change type to int.
9483         * opts.c (warn_strict_aliasing): Change type to int.
9484         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9485         * tree.h (alias_sets_might_conflict_p): Declare it.
9486         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9487
9488 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9489
9490         PR bootstrap/12371
9491         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9492         (CALL_USED_REGISTERS): Likewise.
9493         (REG_CLASS_CONTENTS): Likewise.
9494         (REG_ALLOC_ORDER): New.
9495         (REGNO_REG_CLASS): Use regno_reg_class.
9496         * config/m68k/m68k.c: Add regno_reg_class array.
9497
9498 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9499
9500         * config/ia64/ia64.md (divsi3): Fix algorithm.
9501           (udivsi3): Ditto.
9502           (setf_exp_xf): Remove '*' from name.
9503         * testsuite/gcc.dg/20040309-1.c: New test.
9504
9505 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9506
9507         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9508         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9509         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9510         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9511         (sparc_aout_select_rtx_section): Don't check
9512         SUNOS4_SHARED_LIBRARIES.
9513         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9514
9515 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9516
9517         PR other/14474
9518         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9519         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9520         INTERNALS".
9521
9522 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9523
9524         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9525         (LIBGCC_SPEC): Update to match.
9526
9527 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9528
9529         * c-decl.c (last_function_parms, last_function_parm_tags)
9530         (last_function_parm_others, current_function_parms)
9531         (current_function_parm_tags, current_function_parm_others):
9532         Delete.
9533         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9534         New macros.
9535         (grokdeclarator): For function definitions, save the arg-info
9536         block from the declarator in DECL_ARGUMENTS.
9537         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9538         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9539         contains only PARM_DECLs.  Improve diagnostics.
9540         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9541         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9542         (store_parm_decls_newstyle): Take the function to operate on,
9543         and an arg-info block, as arguments; don't get anything from
9544         current_function_* globals.
9545         (store_parm_decls_oldstyle): Likewise.
9546         (store_parm_decls): Pass fndecl and its arg-info block down to
9547         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9548         argument lists through store_parm_decls_newstyle to reduce
9549         overhead.
9550         (pushdecl): Comment on the problems with the call to copy_node.
9551         Clear DECL_ARGUMENTS of the old node after copying it, if it
9552         is an arg-info block instead of a chain of decls.
9553         (start_function): Do not manipulate current_function_parm* or
9554         last_function_parm*.
9555
9556 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9557             Andrew Pinski  <pinskia@physics.uc.edu>
9558
9559         * ifcvt.c (noce_try_sign_mask): New function to transform
9560         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9561         (noce_process_if_block): Call noce_try_sign_mask.
9562
9563 2004-03-09  Andrew Pinski  <apinski@apple.com>
9564
9565         * c-typeck.c (tagged_types_tu_compatible_p):
9566         Fix typo.
9567
9568 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9569
9570         * simplify-rtx.c (simplify_const_relational_operation): New function
9571         renamed from simplify_relational_operation.
9572         (simplify_relational_operation): Change prototype to accept an
9573         additional mode argument.  Call simplify_const_relational_operation.
9574         (simplify_gen_relational): Update simplify_relational_operation call.
9575         (simplify_ternary_operation): Update simplify_relational_operation
9576         subroutine call to use simplify_const_relational_operation instead.
9577
9578         * rtl.h (simplify_const_relational_operation): Prototype here.
9579         (simplify_relational_operation): Add addtional mode argument.
9580
9581         * combine.c (combine_simplify_rtx): Update calls to
9582         simplify_relational_operation.
9583         (simplify_set): Likewise.
9584         (gen_binary): Likewise.
9585         * cse.c (fold_rtx): Likewise.
9586         * dojump.c (compare_from_rtx): Likewise.
9587         (do_compare_rtx_and_jump): Likewise.
9588         * integrate.c (subst_constants): Likewise.
9589         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9590
9591 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9592
9593         * config/m32r/m32r.md: Remove all define_peephole's.
9594
9595 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9596
9597         * config/rs6000/rs6000.md: Remove trailing whitespace.
9598
9599 2004-03-08  Eric Christopher  <echristo@redhat.com>
9600
9601         * Makefile.in (site.exp): Add libiconv variable definition.
9602
9603 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9604
9605         * configure: Regenerate for config/accross.m4 correction.
9606
9607 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9608
9609         PR target/14480
9610         * config/rs6000/t-rtems: Add missing file on branch.
9611
9612 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9613
9614         PR middle-end/14289
9615         * c-typeck.c (c_mark_addressable): A register variable should
9616         be considered global if its not automatic, i.e. TREE_PUBLIC,
9617         TREE_STATIC or DECL_EXTERNAL.
9618         * function.c (put_var_into_stack): Call abort when placing a
9619         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9620
9621 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9622
9623         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9624         ("*extendqisi2_short_displ"): Likewise.
9625
9626 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9627
9628         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9629         (comp_operator): Likewise.
9630         * config/pdp11/pdp11-protos.h: Remove corresponding
9631         prototypes.
9632
9633 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9634
9635         * expr.c (highest_pow2_factor_for_type): Rename into
9636         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9637         TYPE_ALIGN when the target is a COMPONENT_REF.
9638         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9639
9640 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9641
9642         * config/rs6000/rs6000.c: Formatting fix.
9643         (legitimate_offset_address_p): Correct offset range check.
9644
9645         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9646         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9647         and MASK_STRING.
9648
9649 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9650
9651         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9652         for little endian.
9653         ("ashrdi3_no_power"): Disable for little endian.
9654         (ashrdi3): Same.
9655
9656 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9657
9658         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9659         builtins.
9660
9661 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9662
9663         PR target/14471
9664         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9665         case, checking for -no-mul-bug-abort option.
9666         * configure, config.in: Regenerate.
9667         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9668         and -mno-mul-bug-workaround.
9669         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9670         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9671         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9672         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9673         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9674         sure mulu.d is not last on cache-line.
9675         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9676         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9677         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9678         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9679         -mno-mul-bug-workaround.
9680         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9681         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9682         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9683         relation to MULT in head comment.
9684         (cris_op_str): Abort for MULT.
9685         (cris_print_operand) <case '!'>: New case.
9686
9687 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9688
9689         PR debug/11983
9690         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9691         dw_val_class_vec.  Replace use throughout file.
9692         (dw_float_const): Delete.
9693         (dw_vec_const): New.
9694         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9695         throughout file.
9696         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9697         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9698         (size_of_die): Adjust dw_val_class_vec sizing.
9699         (output_die): Output dw_val_class_vec.
9700         (insert_int, extract_int, insert_float): New functions.
9701         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9702         Handle CONST_VECTOR.
9703         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9704
9705 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9706
9707         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9708         AltiVec abi cannot co-exist.
9709
9710         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9711
9712 2004-03-07  Jan Hubicka  <jh@suse.cz>
9713
9714         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9715
9716 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9717
9718         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9719         ("*lshrsi3"): Also accept an immediate for 68HC12.
9720         ("*ashrsi3_const"): Likewise.
9721         ("*ashrsi3"): Likewise.
9722         ("*ashlsi3_const"): Likewise.
9723         ("*ashlsi3"): Likewise.
9724         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9725         comparing with a pop; don't use a split for that.
9726         ("cmphi split"): Disable compare split for 68HC12.
9727
9728         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9729         the status operands if they have side effects.
9730
9731 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9732
9733         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9734         definition.
9735         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9736         config/h8300/h8300.h, config/ia64/ia64.h,
9737         config/mcore/mcore.h, config/mmix/mmix.h,
9738         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9739         config/stormy16/stormy16.h, config/v850/v850.h,
9740         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9741         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9742         definition.
9743
9744 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9745
9746         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9747         <XOR_EXPR>: Fold x ^ x as zero.
9748         <AND_EXPR>: Fold x & x as x.
9749
9750 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9751
9752         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9753         "foo++ == const" into "++foo == const+incr".
9754
9755 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9756
9757         * config/mips/mips.c (mips_in_small_data_p): Return false if
9758         TARGET_ABICALLS.
9759
9760 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9761
9762         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9763         the stack register.
9764         (expand_prologue): Don't make an interrupt or a trap handler a far
9765         symbol.
9766         (m68hc11_initial_elimination_offset): Likewise.
9767
9768 2004-03-06  Richard Henderson  <rth@redhat.com>
9769
9770         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9771
9772 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9773
9774         * config/ns32k/ns32k-protos.h: Add a prototype for
9775         ns32k_notice_update_cc.
9776         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9777         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9778         ns32k_notice_update_cc.
9779
9780 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9781
9782         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9783         "*load_multiple_si"): Allow only if reload_completed.
9784         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9785         Likewise.
9786
9787 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9788
9789         * config/vax/vax-protos.h: Add a prototype for
9790         vax_notice_update_cc.
9791         * config/vax/vax.c (vax_notice_update_cc): New.
9792         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9793         vax_notice_update_cc.
9794
9795 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9796
9797         * collect2.c (main): Only export initfunc and finifunc if
9798         LD_INIT_SWITCH not defined.
9799         (scan_prog_file): Only export constructors and destructors if
9800         LD_INIT_SWITCH not defined.  Only export symbols not found in
9801         shared objects.
9802
9803 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9804
9805         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9806         last.
9807         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9808         from calls to gen_icacheflush.
9809
9810 2004-03-06  Richard Henderson  <rth@redhat.com>
9811
9812         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9813         (TARGET_LONG_DOUBLE_128): New.
9814         (TARGET_SWITCHES): Add long-double-{128,64}.
9815         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9816         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9817         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9818         (WIDEST_HARDWARE_FP_SIZE): New.
9819         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9820         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9821         if TARGET_VAX_FLOAT.
9822         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9823         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9824
9825 2004-03-06  Richard Henderson  <rth@redhat.com>
9826
9827         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9828         botched rtx class conversion.
9829
9830 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9831
9832         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9833         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9834
9835         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9836         macros.
9837         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9838
9839 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9840
9841         PR target/14343
9842         * config/i386/i386.md (movv2di_internal): Conditionalize on
9843         TARGET_SSE, not TARGET_SSE2.
9844
9845 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9846
9847         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9848         duplicated line.
9849
9850 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9851
9852         * builtins.c: Consistently use logN not log* in comments.
9853
9854 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9855
9856         * rtl.h (mem_expr_equal_p): Function prototype added.
9857         * cfgcleanup.c (merge_memattrs): New function.
9858         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9859         * emit-rtl.c (mem_expr_equal_p): New function.
9860
9861 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9862
9863         * objc/objc-act.c (synth_module_prologue): Const-qualify
9864         objc_selector type if using the GNU runtime; fix generated
9865         signatures for objc_msg_lookup and objc_msg_lookup_super
9866         to match what GNU ObjC headers provide; reformat and clean up.
9867         (synth_self_and_ucmd_args): Use previously constructed (and
9868         hence possibly const-qualified) objc_selector type.
9869
9870 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9871
9872         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9873
9874 2004-03-05  Jason Merrill  <jason@redhat.com>
9875
9876         * tree.h (TYPE_HASH): Use TYPE_UID.
9877         (TREE_HASH): New macro with old definition of TYPE_HASH.
9878         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9879         (build_array_type, build_function_type): Likewise.
9880         (build_method_type_directly): Likewise.
9881         (build_offset_type, build_complex_type): Likewise.
9882         (type_hash_list, attribute_hash_list): Likewise. Now static.
9883         * except.c: s/TYPE_HASH/TREE_HASH/.
9884
9885 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9886
9887         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9888         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9889         __va_ndx by 2 words when referencing an argument on the stack.
9890         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9891         words when an arg on the stack is first seen.
9892
9893 2004-03-05  Paul Brook  <paul@codesourcery.com>
9894
9895         * arm.h (ARM_FLAG_VFP): Remove.
9896         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9897         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9898
9899 2004-03-05  Paul Brook  <paul@codesourcery.com>
9900
9901         * function.c (assign_parms): Include pretend alignment offset.
9902
9903 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9904
9905         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9906         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9907
9908 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9909
9910         * configure.ac: When passing --enable-languages to subdir
9911         configure when host != build, make sure we don't pass an empty
9912         value.
9913         * configure: Regenerate.
9914
9915 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9916
9917         PR 13577
9918         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9919         options.
9920
9921 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9922
9923         * simplify-rtx.c (simplify_relational_operation): If
9924         flag_wrapv is set, do not move terms between the two
9925         side of a relational operator.
9926
9927 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9928
9929         * rtlanal.c: Include target.h and output.h
9930         (rtx_cost, address_cost, default_address_cost): Move from...
9931         * cse.c (rtx_cost, address_cost, default_address_cost):
9932         ... this file.
9933         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9934         * Makefile.in: Adjust dependencies.
9935
9936 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9937
9938         * cse.c (cse_end_of_basic_block): Make static.
9939         * local-alloc.c (function_invariant_p): Move to
9940         reload1.c.
9941         * loop.c (libcall_other_reg, record_excess_regs):
9942         Make static.
9943         * reload1.c (function_invariant_p): Moved here
9944         from local-alloc.c, made static.
9945         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9946         libcall_other_reg, record_excess_regs): Remove
9947         declarations.
9948
9949 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9950
9951         * config/m32r/m32r.c (signed_comparison_operator): Add a
9952         missing parenthesis.
9953
9954 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9955
9956         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9957         going to call mmap again.  Read the file into the right place.
9958         Give a fatal error if we have to relocate.
9959
9960 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9961
9962         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9963         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9964
9965 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9966
9967         PR other/14354
9968         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9969         round the same.  When rounding, clear bits that would cause a
9970         second rounding in pack_d.
9971         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9972
9973 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9974
9975         PR c++/14425, c++/14426
9976         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9977         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9978         Change C++ definitions to accept a 'const int' argument;
9979         the prototypes already do.
9980         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9981         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9982         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9983         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9984         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9985         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9986         end in ..._int; change them to accept an int instead of a char
9987         as the last parameter.
9988
9989 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9990
9991         * genmultilib:  Change '=' to '-' when translating option names
9992         to directory names.
9993
9994 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9995
9996         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9997         stack slot for temp used for result of BLKmode but in integral mode.
9998
9999 2004-03-04  Jan Hubicka  <jh@suse.cz>
10000
10001         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10002
10003         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10004         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10005
10006 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10007
10008         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10009         * testsuite/gcc.dg/20040303-1.c: New test.
10010
10011 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10012
10013         * ppro.md: Rewrite as a DFA pipeline description.
10014         * i386.md: Remove all uses of the ppro_uops attribute.
10015         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10016         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10017         ix86_sched_reorder, ix86_variable_issue,
10018         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10019         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10020         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10021         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10022         * athlon.md (athlon_ssecmp_load): Fix comment
10023
10024 2004-03-04  Stuart Hastings  <stuart@apple.com>
10025
10026         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10027
10028 2004-03-04  Stuart Hastings  <stuart@apple.com>
10029
10030         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10031         686, tell Darwin assembler to allow prefetch insns, non-empty def
10032         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10033
10034 2004-03-04  DJ Delorie  <dj@redhat.com>
10035
10036         PR optimization/14282
10037         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10038         between a call and the assignment of its return value.
10039
10040 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10041
10042         * config/h8300/h8300.c: Put a comment for every function.
10043
10044 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10045
10046         * config/h8300/h8300.md: Add comments about peephole2's.
10047
10048 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10049
10050         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10051
10052 2004-03-04  Jan Hubicka  <jh@suse.cz>
10053
10054         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10055         * cselib.c (cselib_record_memory): New static variable.
10056         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10057         Give up on memories when asked for.
10058         (cselib_init): Accept new argument.
10059         * cselib.h (cselib_init): Update prototype.
10060         * gcse.c (local_cprop_pass): Update call of cselib_init.
10061         * loop.c (load_mems): Update call of cselib_init.
10062         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10063         * sched-deps.c (sched_analyze): Update call of cselib_init.
10064
10065 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10066             GP <gp@qnx.com>
10067
10068         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10069         when compiling PIC.
10070
10071 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10072
10073         PR/14362
10074         * var-tracking.c (track_expr_p): Do not track variables which
10075         should be ignored for debugging purposes.
10076
10077 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10078
10079         * real.c (encode_ibm_extended): Don't bother rounding low double.
10080         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10081         when fmt->pnan < fmt->p.
10082
10083 2004-03-04  Eric Christopher  <echristo@redhat.com>
10084
10085         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10086         only range of valid arg registers and fixed_regs.
10087
10088 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10089
10090         PR target/14406
10091         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10092         (abstf2, abstf2_internal): New define_expand.
10093
10094 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10095
10096         PR optimization/14235
10097         * expr.c (convert_move): Copy the source to a new pseudo
10098         when converting from a sub-word source to a larger-than-word
10099         register which conflicts with the source.
10100
10101 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10102
10103         PR 13728
10104         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10105         parameters with the same name, unless one is a forward decl.
10106         Do not issue a redundant-redeclaration warning for forward
10107         decls of parameters.
10108
10109 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10110
10111         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10112         configuration.
10113
10114 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10115
10116         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10117
10118 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10119
10120         * target-def.h (TARGET_OPTF): Delete.
10121         * c-opts.c (TARGET_OPTF): Define.
10122
10123 2004-03-04  Jan Hubicka  <jh@suse.cz>
10124
10125         * cselib.c (cselib_finish): Fix another miss-application of my previous
10126         patch.
10127
10128 2004-03-03  Mike Stump  <mrs@apple.com>
10129
10130         Add framework support for darwin.
10131
10132         * c-incpath.c: Include target.h and machmode.h.
10133         (add_path): Use a consistent style for cpp_dir.  Initialize
10134         p->construct to 0.
10135         (add_cpp_dir_path): New.
10136         (register_include_chains): Add use of extra_includes callback.
10137         (hook_void_int): Add.
10138         (target_c_incpath): Add.
10139         * c-incpath.h (add_cpp_dir_path): New.
10140         (target_c_incpath_s): Add.
10141         (target_c_incpath): Add.
10142         (C_INCPATH_INIT): Add.
10143         * c-opts.c (c_common_missing_argument,
10144         c_common_handle_option): Add -F argument processing.
10145         * c.opt: Add -F argument processing.
10146         * gcc.c (trad_capable_cpp): Add -F argument processing.
10147         * cppfiles.c (find_file_in_dir): Update to use construct
10148         callback.
10149         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10150         cpp_get_prev): New.
10151         (_cpp_find_file): Use search_path_exhausted.
10152         (make_cpp_dir): Initialize construct to 0.
10153         * cpplib.h (missing_header_cb
10154         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10155         (cpp_callbacks): Add missing_header
10156         (cpp_dir): Add construct.
10157         * target-def.h: (TARGET_OPTF): New.
10158         * hooks.c (hook_void_int, hook_void_charptr): Add.
10159         * hooks.h (hook_void_int, hook_void_charptr): Add.
10160         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10161         $(MACHMODE_H) dependencies.
10162         * doc/invoke.texi (Darwin Options): Document -F.
10163         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10164         (TARGET_OPTF): Add.
10165         * fix-header.c (target_c_incpath): Add.
10166
10167         * config/darwin-c.c: Add c-incpath.h include.
10168         (using_frameworks, find_subframework_file,
10169         find_subframework_header, add_system_framework_path,
10170         frameworks_in_use, num_frameworks, max_frameworks,
10171         add_framework, find_framework, struct framework_header,
10172         framework_header_dirs, framework_construct_pathname,
10173         find_subframework_file, add_system_framework_path,
10174         add_framework_path, framework_defaults,
10175         darwin_register_frameworks, find_subframework_header): Add.
10176         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10177         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10178         (CPP_SPEC): Add __APPLE_CC__ support.
10179         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10180
10181 2004-03-04  Jan Hubicka  <jh@suse.cz>
10182
10183         * cselib.c (cselib_finish): Fix miss-application of my previous
10184         patch.
10185
10186 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10187
10188         * hooks.c (hook_tree_tree_identity): New.
10189         * hooks.h: Add a prototype for hook_tree_tree_identity.
10190         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10191         instead of MD_ASM_CLOBBERS.
10192         * system.h (MD_ASM_CLOBBERS): Poison.
10193         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10194         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10195         * target.h (gcc_target): Add md_asm_clobbers.
10196         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10197         (ix86_md_asm_clobbers): New.
10198         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10199         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10200         TARGET_MD_ASM_CLOBBERS.
10201
10202 2004-03-03  Stuart Hastings  <stuart@apple.com>
10203
10204         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10205
10206 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10207
10208         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10209
10210         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10211         (ASM_DOUBLE): Likewise.
10212         (ASM_LONGDOUBLE): Likewise.
10213         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10214
10215 2003-03-03  Richard Henderson  <rth@redhat.com>
10216
10217         PR opt/13862
10218         * cselib.c (cselib_record_sets): Don't record multiple sets in
10219         asm insns.
10220
10221 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10222
10223         * common.opt: Add description of the new -fgcse-after-reload flag.
10224
10225         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10226
10227         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10228         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10229         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10230         get_bb_avail_insn, hash_scan_set_after_reload,
10231         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10232         gcse_after_reload, get_bb_avail_insn): New functions to implement
10233         gcse-after-reload.
10234         (gcse_after_reload_main): New function, the main entry point to
10235         gcse-after-reload.
10236
10237         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10238
10239         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10240
10241         * toplev.c (flag_gcse_after_reload): Initialization.
10242
10243         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10244
10245         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10246         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10247         the gcse after reload optimization.
10248
10249         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10250         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10251         parameters.
10252
10253         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10254
10255 2004-03-03  Nicolas Pitre <nico@cam.org>
10256
10257         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10258         small negative values.
10259
10260 2004-03-03  Jan Hubicka  <jh@suse.cz>
10261
10262         * cselib.c (hash_table):  Remove GTY marker.
10263         (reg_values): Turn into array.
10264         (used_regs): Likewise.
10265         (n_used_regs): New static variable.
10266         (reg_values_old): Kill.
10267         (clear_table): Update uses of arrays.
10268         (cselib_lookup): Likewise.
10269         (cselib_record_set): Likewise.
10270         (cselib_init): Likewise.
10271         (cselib_finish): Likewise.
10272         (cselib_udpate_varray_sizes): Kill.
10273         * cselib.h (cselib_update_varray_sizes): Kill.
10274
10275 2004-03-03  Paul Brook  <paul@codesourcery.com>
10276
10277         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10278
10279 2004-03-03  Jan Hubicka  <jh@suse.cz>
10280
10281         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10282         Rename from ...; make statistics transparent.
10283         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10284         (loc_descriptor): New structure.
10285         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10286         add_statistics):
10287         New static function.
10288         (ggc_record_overhead, dump_statistics): New global function.
10289         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10290         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10291         from ...; accept locations
10292         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10293         ggc_realloc, ggc_alloc_typed):  ... this one.
10294         from ...; accept locations
10295         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10296         ggc_alloc_stat): Rename from ... ; pass locations
10297         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10298         ... this one.
10299         (ggc_alloc_stat): Record overehead.
10300         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10301         ggc_realloc, ggc_alloc_typed):  Turn to macros
10302         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10303         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10304         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10305         * langhooks.h (lhd_make_node): Declare.
10306         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10307         * langhooks.c (lhd_make_node): New.
10308         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10309         locations.
10310         (rtx_alloc, swallow_copy_rtx): ... this one.
10311         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10312         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10313         * toplpev.c (finalize): Dump stats.
10314         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10315         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10316         Rename from ... ; pass locators.
10317         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10318         build?,  build_decl): Declare.
10319         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10320         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10321         Declare.
10322         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10323         build?,  build_decl): New macros.
10324         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10325         * statistics.h: New file.
10326
10327 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10328             Richard Sandiford  <rsandifo@redhat.com>
10329
10330         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10331         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10332         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10333         * config/mips/mips.c (mips_output_division): Fill the branch delay
10334         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10335         TARGET_FIX_R4400.
10336         (mips_output_division): Adjust accordingly.
10337         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10338         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10339
10340 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10341
10342         * alias.c (rtx_equal_for_memref_p): Use predicates
10343         to test rtx classes and new rtx class codes, possibly
10344         splitting conditionals that tested against '<' and 'o'.
10345         * caller-save.c (save_call_clobbered_regs): Likewise.
10346         * combine.c (contains_muldiv, find_split_point, subst,
10347         combine_simplify_rtx, simplify_if_then_else,
10348         simplify_set, simplify_logical, expand_compound_operation,
10349         make_compound_operation, if_then_else_cond, known_cond,
10350         apply_distributive_law, cached_nonzero_bits,
10351         cached_num_sign_bit_copies, simplify_shift_const,
10352         gen_binary, simplify_comparison, update_table_tick,
10353         record_value_for_reg, get_lsat_value_validate): Likewise.
10354         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10355         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10356         Likewise.
10357         * emit-rtl.c (copy_insn_1): Likewise.
10358         * expr.c (force_operand): Likewise.
10359         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10360         * flow.c (notice_stack_pointer_modification_1,
10361         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10362         and_reg_cond, elim_reg_cond): Likewise.
10363         * function.c (update_epilogue_consts): Likewise.
10364         * genattrtab.c (attr_rtx_1): Likewise.
10365         * genopinit.c (gen_insn): Likewise.
10366         * integrate.c (subst_constants): Likewise.
10367         * jump.c (reversed_comparison_code_parts,
10368         reversed_comparison_code, delete_related_insns,
10369         rtx_renumbered_equal_p): Likewise.
10370         * local-alloc.c (block_alloc): Likewise.
10371         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10372         canonicalize_condition): Likewise.
10373         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10374         Likewise.
10375         * optabs.c (add_equal_node, expand_binop): Likewise.
10376         * predict.c (estimate_probability): Likewise.
10377         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10378         * recog.c (validate_replace_rtx_1, comparison_operator,
10379         offsettable_address_p, constrain_operands): Likewise.
10380         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10381         Likewise.
10382         * regclass.c (scan_one_insn): Likewise.
10383         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10384         * regrename.c (kill_autoinc_value): Likewise.
10385         * reload.c (find_reusable_reload, find_reloads,
10386         reg_overlap_mentioned_for_reload_p): Likewise.
10387         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10388         * rtl.c (copy_rtx): Likewise.
10389         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10390         * rtlanal.c (commutative_operand_precedence): Likewise.
10391         * sched-deps.c (conditions_mutex_p): Likewise.
10392         * sched-rgn.c (is_cfg_nonregular): Likewise.
10393         * simplify-rtx.c (simplify_gen_binary,
10394         simplify_gen_relational, simplify_replace_rtx,
10395         simplify_unary_operation, simplify_binary_operation,
10396         simplify_ternary_operation, simplify_rtx): Likewise.
10397         * unroll.c (reg_dead_after_loop): Likewise.
10398         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10399         print_operand): Likewise.
10400         * config/arc/arc.c (proper_comparison_operator): Likewise.
10401         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10402         Likewise.
10403         * config/avr/avr.c (_reg_unused_after): Likewise.
10404         * config/frv/frv.c (frv_ifcvt_modify_tests,
10405         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10406         * config/i386/i386.c (ix86_comparison_operator,
10407         ix86_carry_flag_operator, fcmov_comparison_operator,
10408         arith_or_logical_operator, print_operand,
10409         ix86_expand_binary_operator, ix86_binary_operator_ok):
10410         Likewise.
10411         * config/i386/i386.md: Likewise.
10412         * config/ia64/ia64.c (not_postinc_memory_operand,
10413         ia64_print_operand, update_set_flags, errata_emit_nops):
10414         Likewise.
10415         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10416         CONSTRAINT_OK_FOR_S): Likewise.
10417         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10418         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10419         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10420         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10421         Likewise.
10422         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10423         eqne_comparison_operator, signed_comparison_operator):
10424         Likewise.
10425         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10426         Likewise.
10427         * config/mmix/mmix (mmix_foldable_comparison_operator,
10428         mmix_comparison_operator): Likewise.
10429         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10430         * config/rs6000/rs6000.c (stmw_operation,
10431         branch_comparison_operator, trap_comparison_operator,
10432         ccr_bit): Likewise.
10433         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10434         * config/s390/s390.c (s390_alc_comparison,
10435         s390_slb_comparison):L Likewise.
10436         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10437         Likewise.
10438         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10439         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10440         emit_hard_tfmode_operation, reg_unused_after)
10441         * doc/md.texi, doc/rtl.texi: Likewise.
10442
10443         * ra-debug.c: Add 2004 to list of copyright years.
10444         * unroll.c: Likewise.
10445
10446         * combine.c (simplify_logical): Remove dummy test,
10447         (apply_distributive_law): Fix typo in comment.
10448         GET_CODE (x) == AND so x is a commutative binary op.
10449         * jump.c (delete_related_insns): simplify loop
10450         condition, move testing of RTX codes inside the loop.
10451         (rtx_renumbered_equal_p): do not use RTX_CODE.
10452         * rtl.c (rtx_class): Declare as enum rtx_class.
10453         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10454         Move to RTX_COMM_COMPARE class.
10455         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10456         Move to RTX_CONST_OBJ class.
10457         * rtl.h (enum rtx_class): New declaration,
10458         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10459         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10460         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10461         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10462         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10463         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10464         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10465         OBJECT_P): New macros.
10466         * config/sparc/sparc.c (noov_compare_op): Remove register
10467         from parameter.
10468
10469 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10470
10471         * target.h: Remove texi jargons in comments.
10472
10473 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10474
10475         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10476         threshold to 0x4f.
10477
10478         Revert:
10479         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10480         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10481         as well.
10482         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10483         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10484
10485 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10486
10487         * doc/md.texi (cbranchmode4): New.
10488
10489 2004-03-02  Eric Christopher  <echristo@redhat.com>
10490
10491         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10492         fix_trunc.
10493         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10494         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10495         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10496         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10497
10498 2004-03-02  Richard Henderson  <rth@redhat.com>
10499
10500         PR middle-end/11767
10501         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10502         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10503         before the compare, if flag_non_call_exceptions.
10504
10505 2004-03-02  Richard Henderson  <rth@redhat.com>
10506
10507         PR middle-end/14327
10508         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10509         emitting the label, not after.
10510
10511 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10512
10513         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10514         (m68hc11_mov_addr_mode): Likewise.
10515         (m68hc11_override_options): Initialize them based on target.
10516         (register_indirect_p): Allow a MEM for indirect addressing modes and
10517         use flags to control what is allowed.
10518         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10519         supported addressing modes.
10520         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10521         (go_if_legitimate_address_internal): Likewise.
10522         (m68hc11_indirect_p): Likewise and check the mode.
10523         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10524
10525 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10526
10527         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10528         (expand_builtin_setjmp_setup): Use
10529         targetm.builtin_setjmp_frame_value instead of
10530         BUILTIN_SETJMP_FRAME_VALUE.
10531         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10532         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10533         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10534         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10535         * targhooks.c (default_builtin_setjmp_frame_value): New.
10536         * targhooks.h: Add a prototype for
10537         default_builtin_setjmp_frame_value.
10538         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10539         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10540
10541 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10542
10543         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10544         sequences of moves.
10545         (add peepholes): New peepholes to optimize sequences adding small
10546         constants.
10547         (bset peepholes): New peepholes to transform an OR in a bset form
10548         (bclr peepholes): Likewise for bclr form.
10549         (cmp peepholes): New peepholes to avoid register copies when comparing.
10550
10551 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10552
10553         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10554         to separate push from moves.
10555         ("*pushdf_internal"): Likewise.
10556         ("*pushsf_internal"): Likewise.
10557         ("*pushsi_internal"): Likewise.
10558         ("movdi_internal"): Use define_insn_and_split; non push operand.
10559         ("movdf_internal"): Likewise.
10560         ("movsf_internal"): Likewise.
10561         ("movsi_internal"): Likewise.
10562         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10563         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10564         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10565
10566 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10567
10568         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10569         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10570         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10571         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10572         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10573         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10574         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10575         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10576         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10577         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10578         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10579
10580 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10581
10582         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10583         (SOFT_XY_REGNUM): Define.
10584         (cmp split): Use the above instead of hard coded numbers.
10585         (8-bit op split): No need to check the mode; allow Q_REG.
10586         (ashift split): Adjust the first operand if it uses the SP and we
10587         are pushing the shifted value.
10588         (plus shift split): Fix when a source is in register D+X.
10589         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10590
10591 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10592
10593         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10594         comparing with Z register.
10595
10596 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10597
10598         * cfgloop.h (struct loop_desc): Removed.
10599         (struct loop): Fields simple, desc and has_desc removed.
10600         (simple_loop_p, count_loop_iterations): Declaration removed.
10601         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10602         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10603         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10604         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10605         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10606         simple_condition_p, simple_increment, count_strange_loop_iterations,
10607         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10608         Removed.
10609         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10610
10611 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10612
10613         * genattrtab.c: Don't handle MATCH_INSN.
10614         * genrecog.c: Likewise.
10615         * gensupport.c: Likewise.
10616         * rtl.def (match_insn): Remove.
10617         * doc/md.texi (match_insn, match_insn2): Remove.
10618
10619 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10620
10621         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10622         macro results in memory allocation.
10623
10624 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10625
10626         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10627         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10628         %(fbsd_dynamic_linker),
10629         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10630         config/i386/freebsd.h
10631         * config/arm/freebsd.h: Ditto.
10632         * config/i386/freebsd.h: Ditto.
10633         * config/i386/freebsd64.h: Ditto.
10634         * config/ia64/freebsd.h: Ditto.
10635         * config/rs6000/sysv4.h: Ditto.
10636         * config/sparc/freebsd.h: Ditto.
10637
10638 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10639
10640         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10641
10642 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10643
10644         * rtl.def (define_combine): Remove.
10645
10646 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10647
10648         * config/h8300/h8300.md: Tweak formatting.
10649
10650 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10651
10652         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10653         *cmphi_h8300_znvc.
10654         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10655
10656 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10657
10658         PR bootstrap/14356
10659         * gcc.c (process_command): Remove const-qualification from argv.
10660         (main): Likewise.
10661
10662 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10663
10664         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10665         pushqi1_h8300hs_advanced.  Adjust its caller.
10666         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10667         Adjust its caller.
10668
10669 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10670
10671         * Makefile.in (install-libgcc, install-multilib): Pass
10672         mkinstalldirs var to libgcc.mk.
10673
10674 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10675
10676         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10677         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10678
10679 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10680
10681         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10682         * config/h8300/h8300.md: Split several peephole2's, each into
10683         two.
10684
10685 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10686
10687         * dominance.c (recount_dominator): Handle postdominators.
10688
10689 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10690
10691         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10692         (NUM_SYMBOL_TYPES): Likewise.
10693         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10694         (mips_unspec_address): Declare.
10695         (mips_gotoff_page, mips_gotoff_global): Delete.
10696         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10697         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10698         (mips_symbolic_constant_p, mips_symbolic_address_p)
10699         (mips_symbol_insns): Handle new symbol types.
10700         (general_symbolic_operand): New predicate.
10701         (mips_unspec_address): Make extern.
10702         (mips_gotoff_page, mips_gotoff_global): Delete.
10703         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10704         Handle new symbol types.
10705         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10706         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10707         mips_unspec_address directly.
10708         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10709         the documentation of -mexplicit-relocs.
10710
10711 2004-03-01  Jeff Law  <law@redhat.com>
10712
10713         * fold-const.c (fold): An equality comparison of a non-weak object
10714         against zero has a known result.  Similarly an equality comparison
10715         of the address of two non-weak, unaliased symbols has a known result.
10716
10717         * ggc-page.c (struct page_entry): New field PREV.
10718         (ggc_alloc): Update PREV field appropriately.
10719         (sweep_pages): Likewise.
10720         (ggc_free): Likewise.  Use PREV field rather than loop to
10721         improve ggc_free performance.
10722
10723 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10724
10725         * config/mips/mips.c (mips_output_division): Use the division
10726         instruction to fill the delay slot of a zero check.
10727         (mips_idiv_insns): Adjust accordingly.
10728
10729 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10730
10731         * config.gcc: Create a default tmake_file for linux, and use
10732         it in all but two linux clauses.  Comment those two.
10733
10734 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10735
10736         * combine.c (try_combine):  Do not refer to is_replaced.
10737         (gen_lowpart_for_combine):  Perverse subregs now have a
10738         more politically correct name.
10739         * cse.c (cse_insn): Likewise.
10740         * jump.c: Fix bogus reference to delete_insn.
10741
10742 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10743
10744         PR debug/14328
10745         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10746         constants as signed values.
10747
10748         PR middle-end/13448
10749         * c-tree.h (readonly_warning): Rename to ...
10750         (readonly_error): ... this.
10751         * c-typeck.c (build_unary_op): Adjust accordingly.
10752         (readonly_warning): Rename to ...
10753         (readonly_error): ... this and issue errors, not warnings.
10754         (build_modify_expr): Call readonly_error, not readonly_warning.
10755         (c_expand_asm_operands): Likewise.
10756         * tree-inline.c (optimize_inline_calls): Do not inline functions
10757         after errors have occurred.
10758
10759 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10760
10761         * configure.ac: Rearrange some threading code for clarity;
10762         add section comment.
10763         * configure: Regenerate.
10764
10765 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10766
10767         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10768         typos.
10769         * doc/cppopts.texi: Fix a typo.
10770
10771 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10772
10773         * config/i386/i386.md: Fix formatting.
10774
10775 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10776
10777         * configure.ac: Add some comments delineating sections of code.
10778
10779         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10780
10781         * doc/install.texi: Fix idiot typo in previous commit.
10782
10783         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10784
10785 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10786
10787         * config/h8300/h8300.md: Add comments about peephole2's.
10788
10789 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10790
10791         * config/h8300/h8300.md: Tweak operand numbers of some
10792         peephole2's.
10793
10794 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10795
10796         * config/h8300/h8300.md: Tweak comments about peephole2's.
10797
10798 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10799
10800         PR middle-end/14203
10801         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10802         instead of testing whether DECL_RTL is not NULL.
10803
10804 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10805
10806         * config/sh/sh.c: Fix formatting.
10807
10808 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10809
10810         * config/sh/sh.c: Convert to ISO-C.
10811
10812 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10813
10814         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10815         my previous patch.
10816
10817         * config/darwin.h (machopic_finish): Output stub even if the
10818         symbol is already defined.
10819
10820 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10821
10822         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10823
10824 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10825
10826         * genattr.c (main): Don't define
10827         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10828         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10829         (DFA_PIPELINE_INTERFACE): Likewise.
10830         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10831         (DFA_PIPELINE_INTERFACE): Likewise.
10832
10833 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10834
10835         * config/mips/mips.md (tstsi, tstdi): Delete.
10836
10837 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10838
10839         * config/mips/mips.c (override_options): Remove an obsolete
10840         duplicate definition of the "e" constraint.
10841         * config/mips/mips.h: Update a comment accordingly.
10842
10843 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10844
10845         * config/mips/mips.md: Complete the unfinished R4000
10846         multiply/shift errata workaround.  Improve documentation.
10847         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10848         has a hilo hazard.
10849         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10850         (muldi3, muldi3_internal): Likewise.
10851         (muldi3_internal2): Remove, replacing with...
10852         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10853         (mulsidi3): Take the errata into account.
10854         (mulsidi3_32bit): Remove, replacing with...
10855         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10856         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10857         (umulsidi3): Take the errata into account.
10858         (umulsidi3_32bit): Remove, replacing with..
10859         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10860         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10861         TARGET_FIX_R4000.
10862         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10863         (smuldi3_highpart, umuldi3_highpart): Likewise.
10864         * doc/invoke.texi: Document the errata workaround.
10865
10866 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10867
10868         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10869         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10870         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10871         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10872         * config/mips/mips.c (mips_idiv_insns): New function.
10873         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10874         (mips_output_division): Add a workaround for the R4000 divide/shift
10875         errata.
10876         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10877         the length of an "idiv" instruction.
10878         * doc/invoke.texi: Document the new switches.
10879
10880 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10881
10882         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10883         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10884
10885 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10886
10887         PR optimization/14229
10888         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10889
10890 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10891
10892         * fold-const.c (fold): Strip NOPs that change the signedness
10893         for RSHIFT too.  Expand comment.
10894
10895 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10896
10897         PR optimization/7871
10898         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10899         from or to call insns.
10900
10901 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10902
10903         PR optimization/7871
10904         * flow.c (propagate_one_insn): Interpret calls as setting global
10905         registers, not merely clobbering them.
10906
10907 2004-02-27  Dale Johannesen  <dalej@apple.com>
10908
10909         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10910         config/darwin-protos.h:  Ditto.
10911         config/darwin.h:  Remove call to it.
10912         * combine.c (distribute_notes): Do not place a REG_DEAD note
10913         when value is both set and used.
10914
10915 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10916
10917         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10918         as well.
10919         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10920         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10921
10922 2004-02-27  Andrew Pinski  <apinski@apple.com>
10923
10924         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10925         Speedup common case of the type values being in the same order.
10926
10927 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10928
10929         * config/ia64/ia64.h (no-inline-float-divide): New option.
10930         * config/ia64/ia64.h (no-inline-int-divide): New option.
10931         * config/ia64/ia64.h (no-inline-sqrt): New option.
10932         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10933         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10934         * config/ia64/ia64.c (ia64_override_options): Modify error
10935         checking for inlined division/sqrt.
10936
10937 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10938
10939         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10940         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10941         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10942         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10943         copyright.
10944
10945 2004-02-27  Paul Brook  <paul@codesourcery.com>
10946
10947         * function.c (assign_parms): Don't count pretend args for alignment.
10948
10949 2004-02-27  Richard Henderson  <rth@redhat.com>
10950
10951         * passes.c: New file.
10952         * Makefile.in (OBJS-common): Add it.
10953         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10954         * flags.h (rtl_dump_and_exit): ... here.
10955         * output.h (size_directive_output, last_assemble_variable_decl):
10956         Move from toplev.c.
10957         * rtl.h (reg_alloc): Move from toplev.c.
10958         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10959         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10960         open_dump_file, close_dump_file, rest_of_decl_compilation,
10961         rest_of_type_compilation, rest_of_handle_final,
10962         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10963         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10964         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10965         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10966         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10967         rest_of_handle_tracer, rest_of_handle_if_conversion,
10968         rest_of_handle_if_after_combine, rest_of_handle_web,
10969         rest_of_handle_branch_prob,
10970         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10971         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10972         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10973         rest_of_handle_null_pointer, rest_of_handle_combine,
10974         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10975         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10976         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10977         (decode_d_option): Use enable_rtl_dump_file.
10978         (compile_file, finalize, do_compile): Move profile+combine+graph
10979         cleanup to finish_optimization_passes.
10980         * toplev.h (init_optimization_passes, finish_optimization_passes,
10981         enable_rtl_dump_file): Declare.
10982
10983 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10984             Roger Sayle  <roger@eyesopen.com>
10985
10986         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10987         operands to build a tree with swapped operands.
10988         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10989         'unsignedp' predicate to specify the signedness.
10990
10991 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10992
10993         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10994         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10995         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10996         comment typos and formatting.  Follow spelling conventions.
10997
10998 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10999
11000         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11001         fix_truncsfsi2.
11002
11003         * config/rs6000/spe.md: Delete spe_efsctuiz.
11004         Add spe_fixuns_truncsfsi2.
11005         Add spe_fix_truncsfsi2.
11006
11007 2004-02-26  Eric Christopher  <echristo@redhat.com>
11008
11009         * c-lex.c (c_lex_string_translate): New variable.
11010         (lex_string): Use to determine string translation.
11011         * c-pragma.h: Prototype.
11012         * c-parse.in (start_string_translation): New. Set above.
11013         (stop_string_translation): Ditto.
11014         (attribute, attribute_list, asm_def, asm_stmt,
11015         asm_operand): Use above functions.
11016         * cp/parser.c (cp_parser_declaration): Translate strings
11017         unless token is RID_EXTERN. Set c_lex_string_translate
11018         for recursive use.
11019         (cp_parser_asm_definition): Only translate argument strings
11020         to asms.
11021         (cp_parser_asm_operand_list): Ditto.
11022         (cp_parser_attribute_list): Do not translate attribute strings.
11023
11024 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11025
11026         * stmt.c (expand_start_case_dummy): Remove.
11027         * tree.h: Remove the corresponding prototype.
11028
11029 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11030
11031         * builtins.c (apply_args_register_offset): Remove.
11032         * tree.h: Remove the corresponding prototype.
11033
11034 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11035
11036         * stor-layout.c (is_pending_size): Remove.
11037         * tree.h: Remove the corresponding prototype.
11038
11039 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11040
11041         * recog.c (validate_replace_src): Remove.
11042         * recog.h: Remove the corresponding prototype.
11043
11044 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11045
11046         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11047         MAYBE_REG_PARM_STACK_SPACE.
11048         * function.c: Likewise.
11049         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11050         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11051         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11052         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11053
11054 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11055
11056         * c-decl.c (c_expand_deferred_function): Remove.
11057         * c-tree.h: Remove the corresponding prototype.
11058
11059 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11060
11061         * postreload.c (reload_cse_move2add): Generate just a PLUS
11062         instead of an entire SET.
11063
11064 2004-02-26  Jan Hubicka  <jh@suse.cz>
11065
11066         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11067         /pentium4m.
11068         * i386.c (override_options): Add support for new CPUs.
11069         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11070         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11071         constants.
11072         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11073
11074 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11075
11076         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11077
11078 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11079
11080         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11081         (sparc_emit_fixunsdi): New prototype.
11082         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11083         (sparc_emit_fixunsdi): New function.
11084         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11085         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11086         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11087         to sparc_emit_floatunsdi.
11088         (fixuns_truncsfdi2): New expander.
11089         (fixuns_truncdfdi2): Likewise.
11090
11091 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11092
11093         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11094         unless HAVE_cc0.
11095
11096 2004-02-25  Richard Henderson  <rth@redhat.com>
11097
11098         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11099         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11100         use (op0-op1) == 0 if op0 is a pointer.
11101         * config/alpha/alpha.md (cmpdi): Use some_operand.
11102         (three comparison combine splits): Remove.
11103
11104 2004-02-25  Richard Henderson  <rth@redhat.com>
11105
11106         PR c/12794
11107         * c-common.c (handle_alias_attribute): Reject the attribute if
11108         current_function_decl is set.
11109
11110 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11111
11112         * config.gcc: Add comment describing extra_gcc_objs.
11113         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11114         * configure.ac (extra_gcc_objs): New substitution variable.
11115         (host_extra_gcc_objs): Don't substitute.
11116         * configure: Regenerate.
11117         * Makefile.in: Use extra_gcc_objs.
11118
11119 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11120
11121         * doc/contrib.texi: Add an entry for myself.
11122
11123 2004-02-25  Jan Hubicka  <jh@suse.cz>
11124
11125         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11126         * cfgbuild.c (make_eh_edge):  Make global.
11127         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11128         * except.c (build_post_landing_pads, connect_post_landing_pads,
11129         dw2_build_landing_pads, sjlj_emit_function_enter,
11130         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11131         sjlj_build_landing_pads): Update CFG.
11132         (emit_to_new_bb_before): New function.
11133         (finish_eh_generation): Do not rebuild the CFG.
11134
11135 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11136
11137         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11138         target_cpu_default defines.
11139         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11140         * pa.h (TARGET_DEFAULT): Likewise.
11141
11142 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11143
11144         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11145         comparisons with regard to signedness.
11146
11147 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11148
11149         * arm.c (thumb_legitimize_address): New function.
11150         * arm-protos.h: Prototype it.
11151         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11152         (LEGITIMIZE_ADDRESS): Use it.
11153
11154 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11155
11156         * reload1.c (reload): Only spill eliminable register with multiple
11157         adjacent elimination alternatives if all alternatives fail.
11158
11159 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11160
11161         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11162         is -4095...+4095 inclusive.
11163
11164 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11165
11166         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11167         the bootstrap failure with Sun CC 5.4 and 5.5.
11168
11169 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11170
11171         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11172         which modifies NEWREG.
11173         (cse_condition_code_reg): Update the mode of CC_REG in
11174         CC_SRC_INSN on our own.
11175
11176 2004-02-24  Michael Matz  <matz@suse.de>
11177
11178         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11179         regparm attributes.
11180
11181 2004-02-24  Richard Henderson  <rth@redhat.com>
11182
11183         * toplev.c (dump_file_tbl): Rename from dump_file.
11184         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11185         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11186         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11187         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11188         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11189         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11190         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11191         s/rtl_dump_file/dump_file/g.
11192
11193 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11194
11195         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11196         (spe_fixuns_truncsfsi2): Delete.
11197
11198         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11199         (fixuns_truncsfsi2): Delete.
11200
11201 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11202
11203         PR/14240
11204         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11205
11206 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11207
11208         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11209
11210 2004-02-24  Jason Merrill  <jason@redhat.com>
11211
11212         * tree.c (check_qualified_type): New fn.
11213         (get_qualified_type): Use it.  If type already has the desired
11214         quals, just return it.
11215         * tree.h: Declare it.
11216
11217 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11218
11219         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11220         TARGET_SCHED_FINISH_GLOBAL): New macros.
11221
11222         * target.h (md_init_global, md_finish_global): Function
11223         declarations corresponding to new target macros.
11224
11225         * haifa-sched.c (sched_init, sched_finish): Allow target to
11226         call the new schedular hooks.
11227
11228         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11229         call to update_life_info.
11230
11231         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11232         flag_schedule_insns for SH4.
11233
11234         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11235         find_set_regmode_weight, find_insn_regmode_weight,
11236         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11237         sh_variable_issue, high_pressure, ready_reorder,
11238         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11239         functions used to throttle the insn movement in first
11240         scheduling pass for SH.
11241
11242         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11243         TARGET_SCHED_FINISH_GLOBAL.
11244
11245 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11246
11247         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11248         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11249         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11250         symbols in sections named by the user.
11251         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11252         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11253         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11254         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11255         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11256         the above.
11257         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11258         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11259         one more pseudo to further improve code generation.
11260         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11261         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11262         inside UNSPEC.
11263         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11264         * config/frv/frv.c (frv_legitimate_address_p): Added
11265         allow_double_reg_p argument.  Adjust all callers.  Use it to
11266         decide whether to enable double-register indirect addressing.
11267         (frv_funcdesc_alias_set): Remove.
11268         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11269         register.  Emit movdi_ldd.
11270         (ldd_address_operand): New.
11271         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11272         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11273         (PREDICATE_CODES): Add ldd_address_operand.
11274         * config/frv/frv.md (movdi_ldd): New.
11275         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11276         intermediate computations if possible.
11277         (symGOTOFF2reg_i): Fix harmless typo.
11278         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11279         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11280         relocated p_vaddr to vaddr type.
11281         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11282         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11283         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11284         MEM, or use a funcdesc alias set.  Use regular move instead of
11285         ldd.
11286         (dbl_memory_one_insn_operand): Recognize function descriptors by
11287         type or by alias set, and don't split them.
11288         * config/frv/frv.md (call, call_value): Never use call_internal
11289         for fdpic.
11290         (call_internal, call_value_internal): Never match for FDPIC.
11291         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11292         call_value_fdpicsi): Require FDPIC.
11293         (ldd): Removed.
11294         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11295         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11296         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11297         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11298         FDPIC.  Compute data base address.
11299         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11300         before the other self-specs are processed.
11301         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11302         Build with -fPIC.
11303         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11304         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11305         inhibit_libc is defined.
11306         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11307         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11308         __FRV_FDPIC__.
11309         (__RELOC_POINTER): Define.
11310         (_Unwind_IteratePhdrCallback): Use it.
11311         * config/frv/frv.h (Twrite): Define.
11312         (TRANSFER_FROM_TRAMPOLINE): Use it.
11313         * config/frv/linux.h (INVOKE__main): Undefine.
11314         (Twrite): Override.
11315         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11316         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11317         (-mlibrary-pic): Emphasize that this option generates EABI code.
11318         (-mcpu): Add fr550.
11319         (-mpack): Remove.
11320         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11321         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11322         and CONSTs in FDPIC mode.
11323         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11324         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11325         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11326         constants.
11327         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11328         rather than 'i' constraint for the 2-instruction alternative.
11329         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11330         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11331         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11332         EXTRA_CONSTRAINT_FOR_Y.
11333         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11334         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11335         (addsi3): Change 'Y' constraint to 'Q'.
11336         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11337         * reload.c (CONST_POOL_OK_P): New macro.
11338         (find_reloads): Use it to decide whether a constant can be forced
11339         into memory.
11340         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11341         constant satisfies got12_operand.
11342         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11343         (frv_legitimate_address_p): Check for valid unspec offsets using
11344         got12_operand rather than frv_legitimate_fdpic_operand_p.
11345         (frv_legitimate_fdpic_operand_p): Delete.
11346         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11347         or after reload.
11348         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11349         TARGET_FDPIC.
11350         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11351         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11352         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11353         (frv_fdpic_fptr_operand): Don't declare here.
11354         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11355         rather than fdpic_got12_operand.
11356         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11357         got12_operand and const_unspec_operand.
11358         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11359         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11360         (symbolic_operand): Remove.
11361         (const_unspec_operand): New predicate.
11362         * config/frv/frv.md (*movsi_got): Use got12_operand.
11363         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11364         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11365         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11366         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11367         * config/frv/frv.c (frv_unspec): New structure.
11368         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11369         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11370         validate CONST indices.  Use frv_output_const_unspec to print them.
11371         (frv_print_operand): Update call to unspec_got_name.  Use
11372         frv_output_const_unspec to print constant unspecs.
11373         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11374         Reject UNSPECs otherwise.
11375         (unspec_got_name): Take the relocation number as argument, not an
11376         rtx containing it.
11377         (frv_output_addr_const_extra): Remove, replacing with...
11378         (frv_output_const_unspec): ...this new function.
11379         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11380         (gpr_or_int12_operand): Use fdpic_got12_operand.
11381         (dbl_memory_one_insn_operand): Likewise.
11382         (fdpic_got12_operand): Use frv_const_unspec_p.
11383         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11384         are already legitimate.  Use frv_small_data_reloc_p when deciding
11385         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11386         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11387         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11388         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11389         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11390         label, for real this time.
11391         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11392         representation of visibility.
11393         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11394         such.
11395         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11396         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11397         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11398         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11399         it was explicitly disabled.
11400         (frv_stack_info): There is no need to save the link register in every
11401         frame unless TARGET_LINKED_FP is true.
11402         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11403         frame pointer if the stack pointer might change value.
11404         (frv_return_addr_rtx): Check and process "count" argument.
11405         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11406         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11407         (frv_find_base_term): Declare.
11408         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11409         (FIND_BASE_TERM): Define.
11410         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11411         small_data_register_operand, small_data_symbolic_operand.  Add
11412         symbolic_operand.
11413         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11414         (frv_print_operand_memory_reference, output_move_single): Remove
11415         special handling for unlegitimized sdata addresses.
11416         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11417         and symbolic addresses.
11418         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11419         (frv_find_base_term): New function.
11420         (int_2word_operand): Check specifically for symbolic address constants.
11421         (pic_register_operand, pic_symbolic_operand): Delete.
11422         (small_data_register_operand, small_data_symbolic_operand): Delete.
11423         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11424         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11425         (move_source_operand): Only accept CONSTs if they're a two-insn
11426         symbolic constant.
11427         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11428         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11429         using gen_symGOTOFF2reg*.
11430         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11431         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11432         themselves a cost of 3 insns.
11433         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11434         Change predicate to symbolic_operand.
11435         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11436         (*movsi_lda_sdata): Delete.
11437         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11438         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11439         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11440         frv-*-*linux*.
11441         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11442         label.
11443         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11444         -multilib-library-pic.
11445         (LINK_SPEC): Add -z text for -mfdpic.
11446         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11447         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11448         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11449         Override.
11450         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11451         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11452         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11453         crtstuff-generated files.
11454         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11455         * config.gcc: Add frv-*-*linux*.
11456         * config/frv/linux.h, config/frv/t-linux: New.
11457         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11458         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11459         when -mfdpic even if a linker script is explicitly listed.
11460         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11461         * config/frv/frv.c (frv_override_options): Clear asm_out
11462         unaligned_op for SImode on FDPIC.
11463         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11464         argument passed to decl_readonly_section.
11465         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11466         whole block run with FDPIC even with -fno-PIC.
11467         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11468         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11469         symbol or label plus offset to memory.
11470         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11471         GOTOFF and GPREL for LABEL_REF.
11472         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11473         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11474         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11475         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11476         * doc/invoke.texi: Document them.
11477         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11478         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11479         (frv_splittable_got_operand): Removed.
11480         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11481         LO_SUM.  Add comments.
11482         (frv_override_options): Moved enabling of FDPIC to
11483         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11484         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11485         (frv_legitimize_fdpic_address): Don't duplicate logic in
11486         frv_emit_movsi.
11487         (frv_gen_GPsym2reg): New.
11488         (unspec_got_name): Added gprel.
11489         (frv_expand_fdpic_call): Add support for inlining PLTs.
11490         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11491         (gpr_or_int12_operand): Added GPREL12.
11492         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11493         (small_data_symbolic_operand): Fail if FDPIC.
11494         (fdpic_splittable_got_operand): Removed.
11495         (fdpic_got12_operand): Added GPREL12.
11496         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11497         when appropriate.  Fix sdata GOTOFF.
11498         (frv_legitimate_constant_p): Require legitimate PIC operand for
11499         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11500         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11501         flag_pic case.
11502         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11503         frv_assemble_integer fails.
11504         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11505         (SUBTARGET_DRIVER_SELF_SPECS): New.
11506         (ASM_SPEC): Don't pass -mno-fdpic.
11507         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11508         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11509         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11510         -multilib-library-pic.
11511         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11512         condexec_si_media_operator, condexec_sf_add_operator and
11513         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11514         and condexec_sf_unary_operator.
11515         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11516         New.
11517         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11518         movsi_internal.  Give them internal names.  movsi_got has type
11519         int.
11520         (fdpic got splitters): Remove.
11521         (symGPREL2reg, symGPREL2reg_hilo): New.
11522         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11523         to -mlibrary-pic.  Map -multilib-library-pic to it.
11524         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11525         Document.
11526         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11527         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11528         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11529         (frv_cannot_force_const_mem): New function.
11530         (const_small_data_p, plus_small_data_p): Update comments on sdata
11531         on FDPIC.
11532         (frv_override_options): Set flag_pie for FDPIC too.
11533         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11534         call-saved registers on FDPIC.
11535         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11536         don't force LR to be preserved.
11537         (frv_expand_prologue): Likewise.
11538         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11539         (frv_frame_pointer_required): Don't force it just because the
11540         FDPIC register is used.
11541         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11542         operand only if !condexec_p.
11543         (frv_legitimize_address): Return the FDPIC-legitimized address.
11544         Don't match small data here on FDPIC.
11545         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11546         symbols.  Use TRUE/FALSE instead of 1/0.
11547         (frv_local_funcdesc_p): New.
11548         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11549         immediates when possible.
11550         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11551         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11552         an UNSPEC_GOT.
11553         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11554         12-bit immediates when possible.
11555         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11556         are not legitimate pic operands.
11557         (frv_in_small_data_p): Re-enable for FDPIC.
11558         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11559         (FRV_GLOBAL_P): Removed.
11560         * config/frv/frv.md: Add modes to CONSTs.
11561         (movsi_got): New.
11562         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11563         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11564         (fdpic splittable operations): Match on flag_pic != 1.
11565         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11566         * config/frv/frv.c (frv_asm_out_constructor,
11567         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11568         bytes, not bits.
11569         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11570         * config/frv/frv.c (frv_assemble_integer): Reject complex
11571         expressions referencing function SYMBOL_REFs.
11572         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11573         (move_source_operand): Reject CONSTs that reference function
11574         SYMBOL_REFs on FDPIC.
11575         (frv_emit_movsi): If we get such a CONST, break it up.
11576         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11577         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11578         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11579         MEM.
11580         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11581         (frv_trampoline_size): Increase for FDPIC.
11582         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11583         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11584         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11585         Disable use of GOTOFF for now.
11586         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11587         Disable use of small data in FDPIC for now.
11588         (frv_asm_output_mi_thunk): Implement for FDPIC.
11589         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11590         * config/frv/frv.c (frv_asm_out_constructor): Use
11591         frv_assemble_integer for FDPIC pointers.
11592         (frv_asm_out_destructor): Likewise.
11593         * config/frv/frv.md (ldd): Fix order of operands.  Use
11594         address_operand for input.
11595         2003-09-18  DJ Delorie  <dj@redhat.com>
11596         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11597         (unspec_got_name): Correct typo.
11598         (frv_emit_movsi): Pre-expand splittable GOTs.
11599         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11600         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11601         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11602         * config/frv/t-frv: Add -mfdpic multilibs.
11603         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11604         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11605         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11606         flag_pic, default to 32-bit pics, require DWORD ops.
11607         (frv_override_options): Add W and Z constraints.
11608         (frv_expand_prologue): No pic prologue for -mfdpic.
11609         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11610         (frv_print_operand_memory_reference): Handle GOT constants.
11611         (frv_legitimate_address_p): Allow GOT constants.
11612         (frv_legitimize_address): Handle GOT addresses too.
11613         (frv_legitimate_fdpic_operand_p): New.
11614         (frv_legitimize_fdpic_address): New.
11615         (unspec_got_name): New.
11616         (frv_output_addr_const_extra): New.
11617         (frv_expand_fdpic_call): New.
11618         (frv_fdpic_fptr_operand): New.
11619         (gpr_or_int12_operand): Handle GOT operands.
11620         (int_2word_operand): Handle GOT operands.
11621         (fdpic_operand): New.
11622         (fdpic_splittable_got_operand): New.
11623         (fdpic_got12_operand): New.
11624         (frv_emit_movsi): Handle GOT operands.
11625         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11626         (frv_print_operand): Support 'g' code for GOT operands.
11627         * config/frv/frv-protos.h: Add prototypes as needed.
11628         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11629         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11630         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11631         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11632         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11633         R_FRV_GOTOFFLO): New.
11634         (movsi_high_got, movsi_lo_sum_got): New.
11635         (*movsi_pic): Don't use this splitter for -mfdpic.
11636         (addsi3): Allow GOT references also.
11637         (call, call_value): Handle -mfdpic separately.
11638         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11639         call_value_fdpicsi): New.
11640         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11641         symGOTOFF2reg_i): New.
11642         * config/frv/frv.h (MASK_FDPIC): New.
11643         (TARGET_FDPIC): New.
11644         (TARGET_SWITCHES): Add -mfdpic.
11645         (FDPIC_FPTR_REGNO): New.
11646         (FDPIC_REGNO): New.
11647         (OUR_FDPIC_REG): New.
11648         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11649         FDPIC_CALL_REGS.
11650         (REG_CLASS_NAMES): Likewise.
11651         (REG_CLASS_CONTENTS): Likewise.
11652         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11653         (EXTRA_CONSTRAINT): Add it here.
11654         (FRV_GLOBAL_P): New.
11655         (OUTPUT_ADDR_CONST_EXTRA): New.
11656
11657 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11658
11659         * config/sparc/sparc.h: Remove commented-out definitions of
11660         TARGET_EDOM and GEN_ERRNO_RTX.
11661
11662 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11663
11664         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11665         df_analyse with df_analyze.
11666
11667 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11668
11669         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11670         beginning of block.
11671
11672 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11673
11674         * calls.c (precompute_arguments): Update comment.
11675
11676 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11677
11678         * et-forest.c: Replace et_occurences with et_occurrences.
11679
11680 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11681
11682         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11683         with iv_analyze.
11684
11685 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11686
11687         * config/i386/i386.c: Rename pni to sse3.
11688         * config/i386/i386.h: Likewise.
11689         * config/i386/i386.md: Likewise.
11690         * config/i386/pmmintrin.h: Likewise.
11691         * doc/extend.texi: Likewise.
11692         * doc/invoke.texi: Likewise.
11693
11694 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11695             Kazu Hirata  <kazu@cs.umass.edu>
11696
11697         Remove -fwritable-strings.
11698         * c-common.c (fix_string_type): Don't check
11699         flag_writable_strings.
11700         (fix_string_type): Likewise.
11701         * c-opts.c (set_std_c89): Don't initialize
11702         flag_writable_strings.
11703         (set_std_c99): Likewise.
11704         * common.opt (fwritable-strings): Remove.
11705         * flags.h: Remove the external declaration of
11706         flag_writable_strings.
11707         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11708         Remove.
11709         * toplev.c (flag_writable_strings): Remove.
11710         (f_options): Remove an entry for writable-strings.
11711         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11712         flag_writable_strings.
11713         (compare_constant) <STRING_CST>: Likewise.
11714         (build_constant_desc): Likewise.
11715         * config/darwin.c (machopic_select_section): Likewise.
11716         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11717         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11718         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11719         * config/mips/mips.c (mips_select_section): Likewise.
11720         (mips_encode_section_info): Likewise.
11721         * config/pa/pa.c (pa_select_section): Likewise.
11722         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11723         * config/v850/v850.c (v850_select_section): Likewise.
11724         * doc/invoke.texi (-fwritable-strings): Remove.
11725         (-fno-const-strings): Don't mention -fwritable-strings.
11726         * doc/trouble.texi: Don't mention -fwritable-strings.
11727
11728 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11729
11730         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11731
11732 2004-02-23  Dale Johannesen  <dalej@apple.com>
11733
11734         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11735         (movdf_hardfloat64):  Ditto.
11736         (movdf_softfloat64):  Ditto.
11737
11738 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11739         * config/rs6000/rs6000.c (function_arg): call to
11740         rs6000_mixed_function_arg for DFmode moved to allow
11741         normal DFmode incoming register assignment.
11742
11743 2004-02-23  Dale Johannesen  <dalej@apple.com>
11744
11745         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11746         (movdf_hardfloat64):  Ditto.
11747
11748 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11749
11750         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11751         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11752         copyright.
11753
11754 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11755
11756         PR c/14156
11757         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11758         to use DECL_P instead.
11759
11760         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11761         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11762
11763 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11764
11765         * Makefile.in (opts.o): Depend on target.h.
11766         * opts.c (decode_options): Use targetm.default_short_enums
11767         instead of DEFAULT_SHORT_ENUMS.
11768         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11769         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11770         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11771         * target.h (gcc_target): Add default_short_enums.
11772         * config/cris/cris.h: Remove a comment about
11773         DEFAULT_SHORT_ENUMS.
11774         * config/ip2k/ip2k.h: Likewise.
11775         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11776         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11777
11778 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11779             Falk Hueffner  <falk@debian.org>
11780
11781         PR c/14188
11782         * builtins.c (expand_builtin_va_arg): Emit an informative message
11783         if a trap is generated.
11784         * c-typeck.c (build_function_call): Likewise.
11785
11786 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11787
11788         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11789         fopen.
11790         * libgcov.c: Include sys/stat.h.
11791         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11792         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11793         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11794         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11795
11796 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11797
11798         * reorg.c: Remove comments about dead ports.
11799
11800 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11801
11802         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11803         extra host object file when targetting cygwin rather than generic
11804         object files.
11805
11806 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11807
11808         Merge from tree-ssa:
11809         2003-11-20  Richard Henderson  <rth@redhat.com>
11810
11811                 * tree-inline.c (insert_decl_map): New.
11812                 (remap_decl, remap_type, remap_block, copy_body_r,
11813                 initialize_inlined_parameters, declare_return_variable,
11814                 remap_save_expr): Use it.
11815
11816         * function.c (copy_body_r): Add mapping from id->ret_label to
11817         id->ret_label.  Revert test for ret_label.
11818
11819 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11820
11821         * genoutput.c (process_template): Strip trailing whitespace in @
11822         templates and issue a warning if there was any.
11823
11824 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11825
11826         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11827         object file when targetting cygwin.
11828         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11829         overridden by top-level Makefile.
11830
11831 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11832
11833         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11834         the x87's load constant instructions when optimizing for size.
11835
11836 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11837
11838         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11839         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11840         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11841         * fold-const.c: Likewise.
11842         * simplify-rtx.c: Likewise.
11843
11844 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11845
11846         * combine.c (can_combine_p): Don't ignore SETs marked with
11847         REG_EH_REGION notes.
11848         (try_combine): When attemting to fix unrecognized insns, don't
11849         split a PARALLEL that contains the original i2.
11850
11851 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11852
11853         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11854         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11855         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11856         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11857         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11858         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11859         portion of header.
11860         (__altivec_link_error_invalid_argument): Remove prototype; will use
11861         __builtin_altivec_compiletime_error("vec_*") instead.
11862         (vec_*): Fix/complete set of available operation overloads given the
11863         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11864         cv-correctness of pointer arguments; in C, always check for correct
11865         argument types before macro expansion.
11866         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11867         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11868         '-W[no-]altivec-long-deprecated' switches.
11869         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11870         '__vector', '__pixel' and '__bool' macros using
11871         '__attribute__((altivec(...)))' types.
11872         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11873         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11874         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11875         New type nodes.
11876         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11877         handling '-W[no-]altivec-long-deprecated'.
11878         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11879         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11880         altivec_expand_dst_builtin): Remove casts from integer literals.
11881         (altivec_expand_builtin): Likewise; handle expansion of new
11882         '__builtin_altivec_compiletime_error' function.
11883         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11884         types, and make them distinct from other vector types; register
11885         '__builtin_altivec_compiletime_error' function.
11886         (print_operand): For 'P', print a full target register name instead of
11887         merely its number.
11888         (rs6000_attribute_table): Add "altivec" attribute.
11889         (rs6000_handle_altivec_attribute): New function.
11890         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11891         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11892         maps to).
11893         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11894         declare.
11895         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11896
11897 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11898
11899         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11900         check.
11901         (shift_mix4left+2): Delete redundant pattern.
11902
11903 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11904
11905         * alias.c (OUTGOING_REGNO): Don't define the default.
11906         * builtins.c (OUTGOING_REGNO): Likewise.
11907         (INCOMING_REGNO): Likewise.
11908         (apply_args_register_offset): Always use OUTGOING_REGNO.
11909         * combine.c (OUTGOING_REGNO): Likewise.
11910         * sibcall.c (OUTGOING_REGNO): Likewise.
11911         * defaults.h (INCOMING_REGNO): Provide the default.
11912         (OUTGOING_REGNO): Likewise.
11913
11914 2004-02-21  Jan Hubicka  <jh@suse.cz>
11915
11916         * params.def (max-peeled-insns, max-completely-peeled-insns,
11917         max-once-peeled-insns): Set to 400.
11918
11919 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11920
11921         PR c++/12007
11922         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11923         are set for parameters before outputing debugging information.
11924
11925 2004-02-20  Falk Hueffner  <falk@debian.org>
11926
11927         PR target/14201
11928         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11929         numbers.
11930
11931 2004-02-20  Per Bothner  <per@bothner.com>
11932
11933         * input.h:  Don't #include line-map.h.  It may cause link problems
11934         with undefined linemap_line_start when line-map.h is included but
11935         line-map.o is not linked, as currently happens with gengtype on
11936         compilers that don't support inline.
11937         * toplev.c:  So we do have to explicitly #include line-map.h here.
11938
11939 2004-02-20  Richard Henderson  <rth@redhat.com>
11940
11941         * doc/invoke.texi: Add -Wvariadic-macros.
11942
11943 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11944
11945         * haifa-sched.c (sched_emit_insn): Remove.
11946         * sched-int.h: Remove the corresponding prototype.
11947
11948 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11949
11950         Revert:
11951         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11952         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11953         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11954         * config/cris/cris.h: Remove a comment about
11955         DEFAULT_SHORT_ENUMS.
11956         * config/ip2k/ip2k.h: Likewise.
11957         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11958
11959 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11960             Tom Tromey  <tromey@redhat.com>
11961
11962         * doc/install.texi: Moved --disable-libgcj and
11963         --with-system-zlib documentation to new section for
11964         Java-specific options.
11965         Added explicit Cross-Compiler-Specific Options subheading.
11966         Added section for Java-specific options.
11967
11968 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11969
11970         * doc/install.texi (Building the Ada compiler): Remove
11971         example.
11972
11973 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11974
11975         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11976
11977 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11978
11979         * gcc.c (process_command): Allow translation of the copyright
11980         symbol but not the rest of the copyright message.
11981         * gcov.c (print_version): Likewise.  Allow translation of the
11982         message about warranty.
11983
11984 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11985
11986         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11987         predicate.
11988         ("*andsi_clear"): Tweak constraints to not match postincrement.
11989         Adjust the predicate to exclude a volatile memory reference.
11990         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11991         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11992
11993 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11994
11995         * move-if-change: Remove.
11996         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11997         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11998         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11999         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12000         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12001         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12002
12003 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12004
12005         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12006         for operand2.  Add condition that requires register_operand operand2
12007         before reload.
12008
12009 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12010             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12011
12012         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12013         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12014
12015 2004-02-19  Richard Henderson  <rth@redhat.com>
12016
12017         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12018         * tree.c (build0, build1, build2, build3, build4): Split out from...
12019         (build): ... here.  Call them.
12020         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12021
12022         * convert.c (convert_to_integer): Remove extra build argument.
12023         * tree-inline.c (expand_call_inline): Likewise.
12024
12025 2004-02-19  Richard Henderson  <rth@redhat.com>
12026
12027         * c-opts.c (warn_variadic_macros): New.
12028         (c_common_handle_option): Set it.
12029         (sanitize_cpp_opts): Copy it to cpp_opts.
12030         * c.opt (Wvariadic-macros): New.
12031         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12032         * cppinit.c (cpp_create_reader): Initialize it.
12033         * cppmacro.c (parse_params): Check it.
12034
12035 2004-02-19  David Daney <ddaney@avtrex.com>
12036
12037         PR preprocessor/14198
12038         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12039         builtin_assert ("machine=mips")
12040
12041 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12042
12043         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12044         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12045         * config/cris/cris.h: Remove a comment about
12046         DEFAULT_SHORT_ENUMS.
12047         * config/ip2k/ip2k.h: Likewise.
12048         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12049
12050 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12051
12052         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12053         when passing single SFmode quantities in general registers,
12054         put them in the high half.
12055
12056 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12057
12058         * doc/md.texi (Standard Names): Document additional dependency on
12059         fix pattern.
12060
12061         * optabs.c (ftruncify): Remove.
12062         (expand_fix): Manually inline ftruncify above.
12063         (can_fix_p): Add FIXME note.
12064
12065 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12066
12067         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12068         spe_fixuns_truncsfsi2.
12069
12070         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12071         fixuns_truncsfsi2.
12072
12073 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12074
12075         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12076         * testsuite/gcc.dg/20040219-1.c: New test.
12077
12078 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12079
12080         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12081         "*subsf3_cconly"): Subtraction is not commutative.
12082
12083 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12084
12085         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12086         (sdbout_symbol): If called before sdbout_init, queue DECL for
12087         later and return.
12088         (sdbout_init): Set sdbout_initialized true, process decls
12089         queued earlier by sdbout_symbol.
12090         (sdbout_finish): Use size_t for index variable.
12091
12092 2004-02-19  Jeff Law  <law@redhat.com>
12093
12094         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12095         for unordered comparison codes.
12096
12097 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12098
12099         * reload1.c (reload): Correct comment.
12100         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12101         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12102         register variables are not used by reload.
12103
12104 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12105
12106         PR target/14209
12107         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12108         constraints to not match postincrement.  Adjust the predicate to
12109         exclude a volatile memory reference.
12110
12111 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12112
12113         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12114
12115 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12116
12117         * hooks.c (hook_void_tree_int): Remove.
12118         (hook_void_constcharptr): Likewise.
12119         (hook_int_void_0): Likewise.
12120         * hooks.h: Remove the prototypes for the above three
12121         functions.
12122         * targhooks.c (hook_bool_machine_mode_true): Remove.
12123         * targhooks.h: Remove the prototype for
12124         hook_bool_machine_mode_true.
12125
12126 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12127
12128         * emit-rtl.c (subreg_realpart_p): Remove.
12129         (reorder_insns_with_line_notes): Likewise.
12130         (end_full_sequence): Likewise.
12131         * rtl.h: Remove the prototype for the above functions.
12132
12133 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12134
12135         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12136         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12137         config/iq2000/iq2000.h, config/m32r/m32r.h,
12138         config/pdp11/pdp11.h, config/sparc/sparc.h,
12139         config/xtensa/xtensa.h: Remove commented-out or useless
12140         definitions of CASE_VECTOR_PC_RELATIVE.
12141
12142 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12143
12144         * loop.c (all_sets_invariant_p): Remove.
12145
12146 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12147
12148         PR target/12916
12149         * config/sparc/sparc.h (NPARM_REGS): Delete.
12150         (BASE_RETURN_VALUE_REG): Likewise.
12151         (BASE_OUTGOING_VALUE_REG): Likewise.
12152         (BASE_PASSING_ARG_REG): Likewise.
12153         (BASE_INCOMING_ARG_REG): Likewise.
12154         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12155         TARGET_ARCH64, not TARGET_V9.
12156         (function_arg_slotno): Dispatch based on the mode class.
12157         Handle vector modes like floating-point modes.
12158         (function_arg_record_value_1): Handle vector types like
12159         floating-point types.
12160         (function_arg_record_value_2): Likewise.
12161         Calculate regno after mode transformation.
12162         (function_arg): Handle vector modes like floating-point modes.
12163         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12164         If ARCH64, do not recheck alignment.
12165         (function_arg_pass_by_reference): Reorder the conditions.
12166         (sparc_return_in_memory): Move after function_arg_padding.
12167         Implement calling conventions for vector modes.
12168         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12169         (function_value): Move scope of 'regbase'.
12170         Implement calling conventions for vector modes.
12171         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12172         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12173         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12174         the argument is passed by reference.
12175         (sparc_type_code): Handle vector types.
12176
12177 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12178
12179         * function.c (assign_parms): When building decl_rtl for
12180         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12181
12182 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12183
12184         * expr.c (is_aligning_offset): Check if we are aligning the
12185         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12186         in bits.
12187
12188 2003-02-18  Matt Austern  <austern@apple.com>
12189
12190         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12191         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12192         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12193         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12194         spec string.
12195         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12196
12197 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12198
12199         * dwarf2out.c (loclabel_num): Move outside #ifdef
12200         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12201         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12202         Mark with GTY(()).
12203         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12204         Allocate memory with ggc_alloc.  No need to copy anything.
12205         (ia64_hpux_file_end): Update to match.
12206
12207 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12208
12209         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12210         by default.
12211
12212 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12213
12214         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12215         ("divmodtisi3"): Likewise.
12216         ("udivmoddi4", "udivmodtidi3"): Likewise.
12217         ("divmodsi4", "divmoddisi3"): Likewise.
12218         ("udivmodsi4", "udivmoddisi3"): Likewise.
12219         ("udivsi3", "umodsi3"): Likewise.
12220
12221 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12222
12223         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12224         placeholder insn when chunkifying the pool.
12225
12226 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12227
12228         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12229         generating PIC code.
12230
12231 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12232
12233         * config/h8300/h8300-protos.h: Add a prototype for
12234         h8300_expand_branch.
12235         * config/h8300/h8300.c (h8300_expand_branch): New.
12236         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12237         bgtu, beq, bne): Call h8300_expand_branch().
12238
12239 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12240
12241         * config/h8300/h8300-protos.h: Add prototypes for
12242         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12243         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12244         (h8300_hard_regno_mode_ok): Likewise.
12245         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12246         h8300_hard_regno_nregs().
12247         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12248
12249 2004-02-18  Per Bothner  <per@bothner.com>
12250
12251         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12252         partly reverts my 2003-10-01 change, because we're back to logically
12253         including <command line> inside the main line.
12254         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12255         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12256         Fixes PR preprocessor/14103.
12257
12258         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12259         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12260         (cpp_push_include):  Don't need to increment pfile's line field.
12261         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12262
12263         * c-ppoutput.c (print struct):  New first_time field.
12264         (init_pp_output):  Set print.first_time.
12265         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12266         which is set also for (say) <command line>.  Clear print.first_time.
12267
12268         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12269         does not match the code, so fix both.
12270         (should_stack_file):  Inline include_pch_p function.
12271         (include_pch_p):  Remove pointless function.
12272
12273         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12274
12275 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12276
12277         * config/h8300/h8300.md (four define_peephole2's): Use
12278         h8300_regs_ok_for_stm().
12279
12280 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12281
12282         * config/h8300/h8300-protos.h: Update the prototype for
12283         expand_a_rotate().
12284         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12285         argument.
12286         * config/h8300/h8300.md: Update all callers.
12287
12288 2004-02-18  Jan Hubicka  <jh@suse.cz>
12289
12290         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12291         floats.
12292         (simplify_binary_operation): Deal with logicals on floats.
12293
12294         * i386.md (SSE fabs splitters): Emit new patterns.
12295         (SSE cmov splitters): Likewise.
12296         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12297         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12298         subregs.
12299         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12300         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12301
12302 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12303
12304         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12305         by hand.
12306         (output_a_rotate): Tweak a comment.
12307         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12308         (*rotlhi3_1): Change to rotlhi3_1.
12309         (*rotlsi3_1): Change to rotlsi3_1.
12310
12311 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12312
12313         PR target/13866
12314         * arm.c (load_multiple_operation): Don't insist that the source reg
12315         of a post-increment component is the same as the destination.
12316         (store_multiple_operation): Likewise.
12317
12318 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12319
12320         * config/h8300/h8300.md: Move movsf patterns into one section
12321         of the file.
12322
12323 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12324
12325         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12326         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12327         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12328         config/mips/linux64.h, config/pa/pa-64.h,
12329         config/rs6000/aix51.h, config/rs6000/aix52.h,
12330         config/rs6000/spe.md, config/sparc/linux.h,
12331         config/sparc/linux64.h: Update copyright.
12332
12333 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12334
12335         * config/h8300/h8300.md: Move push patterns into one
12336         section of the file.
12337
12338 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12339
12340         PR c++/11326
12341         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12342         fntype.
12343
12344 2004-02-18  Paul Brook  <paul@codesourcery.com>
12345
12346         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12347
12348 2004-02-18  Paul Brook  <paul@codesourcery.com>
12349
12350         PR debug/12934
12351         * dwarf2out.c (loc_descriptor_from_tree): Handle
12352         EXPR_WITH_FILE_LOCATION.
12353
12354 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12355
12356         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12357         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12358         trailing whitespace from instructions.
12359
12360 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12361
12362         * configure.ac: When generating auto-build.h, pass
12363         --enable-languages to the sub-configure.
12364         Put quotes around ${program_transform_name} when generating
12365         name of as, ld, nm, objdump.
12366         * configure: Regenerate.
12367
12368 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12369
12370         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12371         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12372         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12373         (s-preds, s-iov): Do not depend on move-if-change.
12374
12375 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12376
12377         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12378         (insert_save): Likewise.
12379
12380 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12381
12382         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12383         warning.
12384
12385 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12386
12387         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12388         *one_cmplsi2_h8300.
12389         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12390
12391 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12392
12393         * config/h8300/h8300-protos.h: Update the prototype of
12394         fix_bit_operand().
12395         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12396         argument "what".
12397         * config/h8300/h8300.md: Update all callers.
12398
12399 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12400
12401         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12402         the last argument to "code" from "type".
12403
12404 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12405
12406         * config/h8300/h8300.c: Remove an extern declaration of
12407         rtx_equal_function_value_matters.
12408
12409 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12410
12411         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12412         by hand.
12413         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12414         (*iorqi3_1): Change to iorqi3_1.
12415         (*xorqi3_1): Change to xorqi3_1.
12416
12417 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12418
12419         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12420         typos.
12421
12422 2004-02-17  Jan Hubicka  <jh@suse.cz>
12423
12424         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12425
12426 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12427
12428         PR optimization/14119
12429         * combine.c (try_combine): When attemting to fix unrecognized insns,
12430         don't delete SETs marked with REG_EH_REGION notes.
12431
12432 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12433
12434         * combine.c (simplify_if_then_else): Do not replace
12435         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12436         modes differ.
12437
12438 2004-02017  Steven Bosscher  <stevenb@suse.de>
12439
12440         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12441         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12442         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12443         * ada/utils.c: Likewise.
12444         * cp/decl.c: Likewise.
12445         * f/com.c: Likewise.
12446         * java/class.c: Likewise.
12447
12448 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12449
12450         * config/h8300/h8300.md: Fix comment typos.
12451
12452 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12453
12454         * config/mips/t-iris6gld: Renamed to ...
12455         * config/mips/t-irix-gld: ... this.
12456         * config.gcc (mips-sgi-irix6*): Reflect this
12457         (mips-sgi-irix5*): Use it with GNU ld.
12458
12459         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12460         to ...
12461         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12462         * config/mips/t-irix-gld: Reflect this.
12463         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12464
12465         * config/mips/iris5gld.h: New file.
12466         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12467         Only use collect2 without gas.
12468
12469         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12470         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12471         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12472         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12473
12474         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12475         * config/mips/iris5.h: ... here.
12476
12477         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12478         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12479         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12480
12481         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12482         using irix_startfile_spec, irix_endfile_spec.
12483
12484 2004-02-16  Gunther Nikl  <gni@gecko.de>
12485
12486         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12487
12488 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12489
12490         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12491         insns by hand.
12492
12493 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12494
12495         * cfghooks.c (split_edge): Speed up updating of dominators.
12496
12497 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12498
12499         PR c++/11326
12500         * c-common.c (flag_abi_version): Remove.
12501         * c-common.h (flag_abi_version): Likewise.
12502         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12503         * c.opt (fabi-version): Remove.
12504         * calls.c (expand_call): Always pass a function type to
12505         struct_value_rtx.  Use convert_memory_address.
12506         * common.opt (fabi-version): Add it.
12507         * flags.h (flag_abi_version): Likewise.
12508         (abi_version_at_least): New macro.
12509         * opts.c (common_handle_option): Add OPT_fabi_version.
12510         * toplev.c (flag_abi_version): Define it.
12511         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12512         New function.
12513         (ia64_output_mi_thunk): Use it.
12514         (ia64_struct_value_rtx): Likewise.
12515
12516 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12517
12518         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12519         Don't generate insns by hand.
12520
12521 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12522
12523         PR c++/14178
12524         * doc/invoke.texi (fabi-version): The default is 2 now.
12525
12526 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12527
12528         * loop-iv.c: New file.
12529         * Makefile.in (loop-iv.o): New.
12530         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12531         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12532         num_loop_branches): New functions.
12533         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12534         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12535         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12536         get_simple_loop_desc, free_simple_loop_desc): Declare.
12537         (simple_loop_desc): New inline function.
12538         (struct rtx_iv, struct niter_desc): New.
12539         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12540         * expr.c (force_operand): Handle subregs of expressions created by
12541         loop unroller.
12542         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12543         parts of the initialization to toplev.c
12544         * loop-unroll.c (loop_exit_at_end_p): New.
12545         (unroll_and_peel_loops): Call iv_analysis_done.
12546         (decide_peel_once_rolling, decide_peel_completely,
12547         decide_unroll_stupid, decide_unroll_constant_iterations,
12548         decide_unroll_runtime_iterations, decide_peel_simple,
12549         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12550         unroll_loop_runtime_iterations): Use new simple loop analysis.
12551         * loop-unswitch.c (compare_and_jump_seq): New.
12552         (may_unswitch_on_p): Renamed to ...
12553         (may_unswitch_on): Use new iv analysis.
12554         (reversed_condition): Export.
12555         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12556         * predict.c (estimate_probability): Use new simple loop analysis.
12557         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12558         canon_condition, simplify_using_condition): Declare.
12559         * stor-layout.c (get_mode_bounds): New.
12560         * toplev.c (rest_of_handle_loop2): Some parts of
12561         initialization/finalization moved here from loop-init.c.
12562
12563 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12564
12565         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12566         pointer.
12567         (CALL_USED_REGISTERS): Likewise.
12568         (REG_ALLOC_ORDER): Likewise.
12569         (REG_CLASS) <GENERAL_REGS>: Likewise.
12570
12571 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12572
12573         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12574         in associative operators.
12575         * rtlanal.c (commutative_operand_precedence): Create some new
12576         variables.  Prefer a commutative operand on the left, then
12577         binary expressions, then NEG and NOT.
12578
12579 2004-02-16  Matthias Klose  <doko@debian.org>
12580
12581         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12582         in terms of SHLIB_SOVERSION.
12583         * config/m68k/t-slibgcc-elf-ver: New file.
12584         * config/pa/t-slibgcc-elf-ver: New file.
12585         * config.gcc (m68k-linux, parisc-linux): Use them when not
12586         sjlj exceptions are not configured.
12587
12588 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12589
12590         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12591
12592 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12593
12594         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12595
12596 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12597
12598         * doc/sourcebuild.texi: Mention backends.html.
12599
12600 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12601
12602         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12603         line-map.c, line-map.h, var-tracking.c: Fix comment
12604         formatting.
12605
12606 2004-02-16  Richard Henderson  <rth@redhat.com>
12607
12608         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12609
12610         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12611
12612 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12613
12614         * config/h8300/h8300.md: Remove unnecessary parallels from
12615         all define_insn and define_split patterns.
12616
12617 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12618
12619         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12620         "clobber").
12621
12622 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12623
12624         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12625         '%#'.
12626
12627 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12628
12629         * config/ia64/ia64.c, config/mips/mips.c,
12630         config/mmix/mmix-modes.def: Fix comment typos.
12631
12632 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12633
12634         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12635         (get_directive_line): Remove unused function prototype.
12636
12637 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12638
12639         * tree-inline.c (copy_body_r): Do not replace ret_label.
12640
12641 2004-02-14  Jan Hubicka  <jh@suse.cz>
12642
12643         * i386.c (x86_four_jump_limit): New variable.
12644         (k8_avoid_jump_misspredicts): Rename to ...
12645         (ix86_avoid_jump_misspredicts): .. this one.
12646         (ix86_pad_returns): Break out from ...
12647         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12648         to.
12649         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12650
12651 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12652
12653         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12654         PARALLEL is NULL.
12655
12656 2004-02-14  Per Bothner  <per@bothner.com>
12657
12658         * fix-header.c (line_table):  Move local variable in main to global.
12659         * scan.h (line_table):  Use it.
12660         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12661         line (recently renamed to src_loc) before calling recognized_function.
12662
12663 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12664
12665         * Makefile.in: Fix comment typos.
12666
12667 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12668
12669         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12670         for start_value when it is directly moved into reg, and factorize
12671         the retrieval of GET_MODE (reg).
12672
12673 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12674
12675         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12676         (mips_load_got_global): Delete.
12677         (mips_gotoff_page): Declare.
12678         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12679         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12680         UNSPEC_LOAD_GOT pattern rather than a MEM.
12681         (*load_got[sd]i): New patterns.
12682         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12683         (mips_load_got_page, mips_load_got_global): Delete.
12684         (mips_gotoff_page): New function.
12685         (override_options): Don't initialize mips_got_alias_set.
12686
12687 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12688
12689         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12690         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12691         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12692         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12693         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12694         * config/mips/mips.c: Fix some overly-long lines.
12695         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12696         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12697
12698 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12699
12700         * configure.ac: Search for as, ld below libexec/gcc.
12701         * configure: Regenerate.
12702
12703 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12704
12705         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12706         __builtin_arm_setwcx ().
12707         * config/arm/arm.c (arm_expand_builtin): Generate operands
12708         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12709
12710 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12711
12712         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12713         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12714         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12715         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12716         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12717         (_mm_mulhi_pu16): Likewise.
12718
12719 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12720
12721         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12722         DECL_NAME != 0 before dereferencing.
12723
12724 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12725
12726         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12727         (s390_output_addr_const_extra): Declare.
12728         (s390_output_pool_entry): Remove FILE * argument.
12729         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12730         (s390_output_addr_const_extra): New function.
12731         (print_operand_address): Call output_addr_const instead of
12732         s390_output_symbolic_const.
12733         (print_operand): Likewise.
12734         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12735         Remove FILE * argument.
12736         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12737         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12738         call.
12739
12740 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12741
12742         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12743         (struct edge, struct vertex, struct graph): New.
12744         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12745         free_graph): New functions.
12746
12747 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12748
12749         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12750         Use ".set macro" to avoid warnings about multi-instruction
12751         macros, since they're intentional.
12752
12753 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12754
12755         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12756         comment about STANDARD_EXEC_PREFIX.
12757
12758         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12759         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12760         for installing .1 manpages.  Add rules for installing cpp
12761         and gcov manpages under their installed names.
12762
12763 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12764
12765         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12766         host, but try LD_FOR_TARGET first.
12767         * configure: Rebuilt.
12768
12769 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12770
12771         * dbxout.c: Move declaration of dbxout_type_decl outside
12772         #ifdef DBX_DEBUGGING_INFO.
12773         * c-parse.in: Don't give the asmdef production a type.
12774
12775 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12776
12777         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12778         (debug_nothing_tree_int): Prototype.
12779         (dwarf_debug_hooks): Delete, unused.
12780         * debug.c (do_nothing_debug_hooks): Update.
12781         (debug_nothing_tree_int): New function.
12782         * langhooks.h (struct lang_hooks_for_decls):
12783         Remove builtin_type_decls field.
12784         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12785         (LANG_HOOKS_DECLS): Update.
12786         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12787         Use debug_hooks->type_decl.
12788         * dbxout.c (preinit_symbols): New static.
12789         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12790         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12791         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12792         for symbols to output.
12793         (dbxout_type_decl): New function.
12794         (dbxout_symbol): If called before dbxout_init has run, queue
12795         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12796         to TYPE_DECLs before emitting them.
12797         * xcoffout.c (assign_type_number): Delete.
12798         (xcoff_type_numbers): New static table.
12799         (xcoff_assign_fundamental_type_number): New function.
12800         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12801         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12802         * sdbout.c: Include varray.h.
12803         (deferred_global_decls): New static.
12804         (sdb_debug_hooks): Update.
12805         (sdbout_global_decl): If we can't emit something right now,
12806         remember it in deferred_global_decls.
12807         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12808         (sdbout_init): Initialize deferred_global_decls.
12809         * Makefile.in: Update dependencies of sdbout.o.
12810         * dwarf2out.c (dwarf2out_type_decl): New function.
12811         (dwarf2_debug_hooks): Update.
12812         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12813         * c-decl.c (getdecls): Just return 0.
12814         (check_for_loop_decls): Don't use getdecls.
12815         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12816         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12817
12818 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12819
12820         * config/s390/s390.c (s390_sched_reorder2): Remove.
12821         (TARGET_SCHED_REORDER2): Do not redefine.
12822
12823 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12824
12825         * c-parse.in (maybe_type_qual): Delete.
12826         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12827         (asm_argument): New grammar rules.
12828         (extdef_1): Use asmdef.
12829         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12830         (xexpr): Move up with other expression rules.
12831         (stmt): Use asm_stmt.
12832
12833         * c-typeck.c (build_asm_expr): New function - body mostly
12834         pulled from build_asm_stmt.
12835         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12836         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12837
12838 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12839
12840         PR bootstrap/13617
12841         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12842         (mips_declare_object): Make variadic.
12843         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12844         mips_output_aligned_decl_common.
12845         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12846         (mips_declare_object): Make variadic.
12847
12848 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12849
12850         * function.c (update_epilogue_consts): Teach about binary operations.
12851
12852         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12853         previous MEM_VOLATILE in REF.
12854         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12855         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12856
12857 2004-02-12  Gunther Nikl  <gni@gecko.de>
12858
12859         * config.gcc: Restore support for m68k-openbsd.
12860
12861 2004-02-12  Jan Hubicka  <jh@suse.cz>
12862
12863         * tree-optimize.c (tree_rest_of_compilation): Do not release
12864         DECL_ARGUMENTS.
12865
12866 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12867
12868         * doc/install.texi: Fix the spelling of "explicitly".
12869
12870 2004-02-11  Eric Christopher  <echristo@redhat.com>
12871
12872         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12873         duplicate argument structure of cpp_interpret_string.
12874         * cpphash.h: Move prototype...
12875         * cpplib.h: Here.
12876         * cpplib.c: Fix calls to match new function signature.
12877
12878 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12879
12880         PR c/456
12881         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12882         constant expressions at all outside C99 mode if pedantic.
12883
12884 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12885
12886         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12887         (log10_optab, log2_optab): Define corresponding macros.
12888         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12889         * genopinit.c (optabs): Implement log10_optab and log2_optab
12890         using log10?f2 and log2?f2 patterns.
12891         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12892         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12893         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12894         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12895
12896         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12897         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12898         log2, log2f and log2l built-ins as inline x87 intrinsics.
12899
12900 2004-02-11  Richard Henderson  <rth@redhat.com>
12901
12902         PR target/1532
12903         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12904         dead insn after reload.
12905
12906 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12907
12908         * tree.h (frame_base_decl): Add GTY marker.
12909         * var-tracking.c (frame_base_decl): Likewise.
12910
12911 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12912
12913         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12914         incorrect, hunk.
12915         (add_location_or_const_value_attribute): Use text_section_label,
12916         not TEXT_SECTION_NAME.
12917
12918 2004-02-11  Per Bothner  <per@bothner.com>
12919
12920         Represent column numbers using line-map's source_location.
12921         The "next available source_location" is now managed internally by
12922         line-maps.c rather than by clients.
12923         * line-map.h (struct line_map):  New field column_bits.
12924         <from_line>:  Rename field to start_location.
12925         (struct line_maps):  New fields highest_location and max_column_hint.
12926         (linemap_check_files_exited):  New declaration.
12927         (linemap_line_start):  New declaration.
12928         (linemap_add):  Remove from_line parameter; use highest_location field.
12929         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12930         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12931         (CURRENT_LINE_MAP):  Remove macro.
12932         (linemap_position_for_column):  New inline function.
12933         * line-map.c (linemap_init):  Clear new fields.
12934         (linemap_check_files_exited):  New function, extracted from ...
12935         (linemap_free):  Use linemap_check_files_exited.
12936         (linemap_add):  Remove from_line parameter.  Various updates.
12937         (linemap_line_start):  New function.
12938         (linemap_lookeup):  Update for new field names.
12939         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12940         linemap_position_for_column may unpredictably change the current map,
12941         it is cleaner and simpler for us to not cache it in cpp_reader.
12942         (struct cpp_buffer):  New sysp field.
12943         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12944         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12945         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12946         current map using linemap_lookup.
12947         (do_linemarker):  Also set buffer's sysp field.
12948         (destringize_and_run):  No longer need to decrement current line.
12949         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12950         (search_path_head, open_file_failed):  Use buffer's sysp.
12951         (cpp_make_system_header):  Get current map using linemap_lookup.
12952         Also set buffer's sysp flag.
12953         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12954         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12955         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12956         (struct cpp_reader):  ... and adding saved_line_base field.
12957         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12958         Update accordingly.  Don't adjust line.
12959         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12960         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12961         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12962         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12963         * cpplex.c (_cpp_lex_direct):  Likewise.
12964         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12965         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12966         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12967         Remove col field as it is now subsumed by src_loc.
12968         * cpperror.c:  Update various field, parameter, and macro names.
12969         (print_location):  If col==0, try SOURCE_COLUMN of line.
12970         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12971         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12972         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12973         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12974         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12975         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12976         (_cpp_lex_direct):  Use linemap_position_for_column.
12977         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12978         parameter.  Instead get it from the line_table global.  Adjust callers.
12979         (print):  Remove map field.  Replace line field to src_line.
12980         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12981         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12982         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12983         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12984         * cpptrad.c (copy_comment):  Rename variable.
12985         * c-lex.c (map):  Remove static variable, for same reason we removed
12986         cpp_reader's map field.
12987         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12988         to call linemap_lookup.
12989         (cb_line_change):  Token's line field replaced by src_loc.
12990         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12991         Don't save new_map.
12992
12993         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12994         source_location.
12995
12996 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12997
12998         * config/rs6000/altivec.md (*movv4si_internal): At least one
12999         operand must be register_operand.
13000         (*movv8hi_internal1): Likewise.
13001         (*movv16qi_internal1): Likewise.
13002         (*movv4sf_internal1): Likewise.
13003
13004 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13005
13006         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13007         operand.
13008         (movv4hi_internal): Same.
13009         (movv2sf_internal): Same.
13010         (movv1di_internal): Same.
13011
13012 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13013
13014         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13015         TARGET_OLDABI consistently.
13016         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13017         mips_va_arg,override_options,compute_frame_size,
13018         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13019         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13020         and TARGET_OLDABI consistently.
13021         * config/mips/mips.md (exception_receiver): Likewise.
13022         * config/mips/linux64.h: Likewise.
13023
13024 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13025
13026         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13027         Set AltiVec ABI and vrsave as default for ppc64 linux.
13028         (init_cumulative_args): Post error, if try to return
13029         value in AltiVec register without enable AltiVec.
13030         (function_arg_advance): Ditto for passing arguments.
13031
13032 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13033
13034         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13035         a label before updating its usage count.
13036
13037 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13038
13039         * doc/install.texi: Remove extra cd.
13040
13041 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13042
13043         * c-common.c (vector_size_helper): Remove; call
13044         reconstruct_complex_type() instead.
13045         * tree.c (reconstruct_complex_type): New function
13046         (formerly vector_size_helper() in c-common.c).
13047         (make_vector): Make externally visible.
13048         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13049
13050 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13051
13052         * config/h8300/h8300-protos.h: Add a prototype for
13053         h8300_regs_ok_for_stm.
13054         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13055         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13056         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13057         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13058         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13059         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13060         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13061         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13062         h8300_regs_ok_for_stm().
13063
13064 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13065
13066         PR c/14088
13067         * real.c (real_from_string): Look for 'X' as well as 'x' in
13068         hexfloat strings.
13069
13070 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13071
13072         * config/h8300/h8300.md: Remove an incorrect comment about
13073         peephole2.  Add comments.
13074
13075 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13076
13077         PR/14058
13078         * emit-rtl.c (set_decl_incoming_rtl): New.
13079         * tree.h (set_decl_incoming_rtl): New.
13080         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13081         DECL_INCOMING_RTL.
13082         * ada/misc.c (adjust_decl_rtl): Likewise.
13083
13084 2004-02-10  Per Bothner  <per@bothner.com>
13085
13086         * c-opts.c (c_common_post_options):   Don't emit working directory
13087         in cpp output if -P was specified.
13088
13089 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13090
13091         PR c/14092
13092         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13093         negate_expr back to the original type.
13094
13095 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13096
13097         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13098         bump retaddr here.
13099
13100 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13101
13102         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13103         gen_lowpart_SUBREG): Move under the file in which they
13104         are actually declared.
13105
13106 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13107
13108         * doc/sourcebuild.texi: Add libada documentation.
13109
13110         * doc/install.texi: Update documentation on Ada build, now
13111         that the GNAT lib and tools are built automatically.
13112
13113 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13114
13115         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13116         && TARGET_IRIX.
13117
13118 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13119
13120         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13121         boundaries outside build_component_ref() call (a macro in ObjC++).
13122
13123 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13124
13125         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13126         (init_cumulative_args): Likewise.
13127         (a7_overlap_mentioned_p): Delete prototype.
13128         * config/xtensa/xtensa.c (struct machine_function): Replace
13129         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13130         Add set_frame_ptr_insn field.
13131         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13132         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13133         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13134         at the function entry and replace the operand with the pseudo.
13135         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13136         argument and record this flag in CUMULATIVE_ARGS.
13137         (function_arg): Remove result_mode and special-case code to handle
13138         arguments in a7.  Instead, set need_a7_copy flag when there is an
13139         incoming argument in a7.
13140         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13141         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13142         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13143         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13144         special-case code.
13145         (a7_overlap_mentioned_p): Delete.
13146         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13147         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13148         arguments to init_cumulative_args and pass "incoming" flag instead.
13149         (BLOCK_REG_PADDING): Delete.
13150         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13151         checks for reload_in_progress and reload_completed.  Update calls to
13152         xtensa_copy_incoming_a7.
13153         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13154         to call xtensa_copy_incoming_a7.
13155
13156 2004-02-09  DJ Delorie  <dj@redhat.com>
13157
13158         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13159         longer modify standard_exec_prefix, standard_bindir_prefix, or
13160         standard_startfile_prefix.
13161
13162 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13163
13164         PR c++/11295
13165         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13166         to expand_expr_real call, and pass in alt_rtl as last argument.
13167
13168         PR libstdc++/5625
13169         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13170         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13171         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13172         * except.c (expand_builtin_extend_pointer): New.
13173         * except.h (expand_builtin_extend_pointer): Declare.
13174
13175 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13176
13177         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13178         unaligned loads and stores.
13179
13180 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13181
13182         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13183         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13184
13185         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13186         * config/mips/iris5.h: ... here.
13187         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13188
13189         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13190         * config/mips/iris5.h: ... here.
13191
13192 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13193
13194         * configure.ac: Remove default executable files before AC_PROG_CC.
13195         * configure: Regenerate.
13196
13197 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13198
13199         PR target/13721
13200         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13201         print a operand other than a register.
13202
13203 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13204
13205         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13206         tree code rather than call fold_convert, which doesn't specify a
13207         default floating point to integer conversion.
13208
13209 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13210
13211         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13212         code to support SGS assembler.  Reformat adjacent code where possible.
13213         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13214         definition.
13215         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13216         for '%#'.
13217         * config/m68k/linux.h, config/m68k/m68k.c,
13218         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13219         macros and asm_printf() format strings.
13220         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13221         * config/m68k/linux.h: Update copyright.
13222         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13223
13224 2004-02-08  Andreas Schwab  <schwab@suse.de>
13225             Bernardo Innocenti  <bernie@develer.com>
13226
13227         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13228         REGISTER_PREFIX.
13229         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13230         frame pointer register, overridable by OS targets.
13231         * (M68K_REGNAME): Macro to obtain register name for asm output,
13232         eventually replacing %a6 with M68K_FP_REG_NAME.
13233         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13234         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13235         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13236         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13237         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13238
13239 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13240
13241         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13242         hook_rtx_tree_int_null.
13243         * targhooks.c (default_struct_value_rtx): Remove.
13244         * targhooks.h: Remove the prototype for
13245         default_struct_value_rtx.
13246         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13247         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13248         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13249         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13250         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13251         config/rs6000/rs6000.c, config/s390/s390.c,
13252         config/stormy16/stormy16.c, config/v850/v850.c,
13253         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13254         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13255
13256 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13257
13258         * README.Portability: Change "ISO C89" to "ISO C90".
13259         * c-parse.in (primary, initelt): Likewise.
13260
13261 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13262
13263         * real.c (encode_ibm_extended): Normalize the input value before
13264         converting it to a double.  Handle the case where a normal value
13265         rounds to infinity.
13266
13267 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13268
13269         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13270         warning.
13271         * cse.c (preferrable): Change to preferable. Update all of its
13272         callers.
13273         * genautomata.c (ainsn): Change
13274         first_ainsn_with_given_equialence_num to
13275         first_ainsn_with_given_equivalence_num.  Update all of its
13276         references.
13277
13278 2004-02-08  Jan Hubicka  <jh@suse.cz>
13279
13280         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13281
13282 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13283
13284         * function.c (assign_parms): Fix formatting.
13285
13286 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13287
13288         * default.h (PROMOTE_PROTOTYPES): Remove.
13289         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13290         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13291         EXPAND_BUILTIN_SAVEREGS): Poison.
13292         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13293         hook_bool_tree_false.
13294         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13295         * target.h: Replace SETUP_INCOMING_VARARGS with
13296         targetm.calls.setup_incoming_varargs().
13297         * targhooks.c (default_promote_function_return): Remove.
13298         (default_promote_prototypes): Likewise.
13299         (default_struct_value_rtx): Always abort().
13300         (default_expand_builtin_saveregs): Always print an error
13301         message.
13302         (default_setup_incoming_varargs): Do nothing.
13303         (default_pretend_outgoing_varargs_named): Don't depend on
13304         SETUP_INCOMING_VARARGS.
13305         * targhooks.h: Remove the prototype for
13306         default_promote_function_return and
13307         default_promote_prototypes.
13308
13309 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13310
13311         * system.h (SHARED_SECTION_ASM_OP): Poison.
13312         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13313         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13314
13315 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13316
13317         Bug 13856
13318         * c-decl.c (diagnose_mismatched_decls): Only give special
13319         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13320         is also true.
13321         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13322         DECL_FUNCTION_CODE when defining a built-in function.
13323         Don't update DECL_ESTIMATED_INSNS.
13324         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13325         FUNCTION_DECLs.
13326         * tree.h: Delete DECL_ESTIMATED_INSNS.
13327         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13328         (expand_call_inline, optimize_inline_calls): Don't update
13329         DECL_ESTIMATED_INSNS nor inlined_insns.
13330         * cgraphunit.c (cgraph_analyze_function): Don't update
13331         DECL_ESTIMATED_INSNS.
13332
13333 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13334
13335         * c-common.c (shadow_warning): Delete.
13336         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13337         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13338         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13339         * c-parse.in (free_parser_stacks): Delete.
13340
13341 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13342
13343         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13344         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13345         Use the top level mkinstalldirs, not the one in the gcc subdir.
13346         * mkinstalldirs: Remove (from the gcc subdir).
13347
13348 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13349
13350         PR middle-end/13696
13351         * fold-const.c (fold_convert): New function to provide type
13352         conversion to the middle-end without using convert.
13353         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13354         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13355         invert_truthvalue, optimize_bit_field_compare, range_binop,
13356         decode_field_reference, make_range, build_range_check, unextend,
13357         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13358         fold_binary_op_with_conditional_arg, fold_inf_compare,
13359         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13360         convert with calls to fold_convert.
13361
13362 2004-02-07  Jan Hubicka  <jh@suse.cz>
13363
13364         * genrecog.c (find_operand): add extra argument stop.
13365         (validate_pattern): Verify that mach_dup is duplicating operand
13366         defined lexically earlier.
13367
13368 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13369
13370         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13371         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13372         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13373         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13374         config/ia64/ia64.h, config/ip2k/ip2k.h,
13375         config/iq2000/iq2000.h, config/mips/iris5.h,
13376         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13377         config/rs6000/aix51.h, config/rs6000/aix52.h,
13378         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13379         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13380         config/sparc/linux.h, config/sparc/linux64.h,
13381         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13382         config/xtensa/xtensa.h: Remove the definitions of
13383         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13384         MAX_WCHAR_TYPE_SIZE.
13385         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13386         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13387
13388 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13389
13390         PR bootstrap/13990
13391         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13392         gen_rtx_NE.
13393
13394 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13395
13396         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13397         #ifdef ENABLE_CHECKING and #endif.
13398
13399 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13400
13401         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13402         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13403         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13404         integer types and floating point with unsafe_math_optimizations.
13405         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13406         Optimize A - B as A + (-B), if B is easily negated.
13407
13408 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13409
13410         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13411         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13412         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13413         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13414         Update copyright.
13415
13416 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13417
13418         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13419
13420 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13421
13422         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13423         glibc 2.3 or better.
13424
13425 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13426
13427         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13428         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13429
13430 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13431
13432         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13433         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13434         (SHLIB_MKMAP_OPTS): Delete.
13435         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13436         (bispecs): Add rule.
13437         * config/rs6000/libgcc-ppc64.ver: New file.
13438         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13439         (__floatdidf, __floatdisf): Optimize multiply.
13440         (__fixunstfdi): New function.
13441         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13442         real and imag parts larger than one register.
13443         (function_arg): Correct type of reg used when fp arg split partially
13444         to stack.
13445         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13446         and __MACH__ or __powerpc64__.
13447
13448 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13449             Ulrich Weigand  <uweigand@de.ibm.com>
13450
13451         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13452         of gen_highpart or gen_lowpart when the floating point format is
13453         wider than the result mode.
13454
13455 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13456
13457         * dwarf2out.c (loclabel_num): Move into #ifdef
13458         DWARF2_DEBUGGING_INFO.
13459
13460 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13461
13462         * objc/objc-act.c (build_super_template) the 'class' field of
13463         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13464         (get_super_receiver): Likewise.
13465
13466 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13467
13468         * reload1.c (check_eliminable_occurrences): Optimize the reset
13469         of can_eliminate.
13470         (eliminate_regs_in_insn): Likewise.
13471
13472 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13473             Josef Zlomek  <zlomekj@suse.cz>
13474
13475         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13476         at the beginning of function, call dwarf2out_var_location for
13477         NOTE_INSN_VAR_LOCATION note.
13478         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13479         decl_loc_table): New.
13480         (lookup_decl_loc): New function.
13481         (add_var_loc_to_decl): New function.
13482         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13483         only if can_use_fbreg.
13484         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13485         functions.
13486         (loc_descriptor): Likewise. Process VAR_LOCATION.
13487         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13488         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13489         can_use_fbreg == true.
13490         (add_location_or_const_value_attribute): Added parameter enum
13491         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13492         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13493         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13494         with attr == DW_AT_location.
13495         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13496         if frame_base_decl is defined and has a location list.
13497         (gen_variable_die): Call add_location_or_const_value_attribute with
13498         attr == DW_AT_location.
13499         (dwarf2out_var_location): New function.
13500         (dwarf2out_begin_function): New function.
13501         (dwarf2out_init): Create decl_loc_table.
13502
13503 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13504
13505         * loop.c (force_movables): Transitively increase the priorities of
13506         all insns forces by an insn, not just the first one.
13507
13508 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13509             Daniel Berlin <dberlin@dberlin.org>
13510
13511         Josef Zlomek  <zlomekj@suse.cz>
13512         * Makefile.in (var-tracking.o): New.
13513         * common.opt (fvar-tracking): New.
13514         * flags.h (flag_var_tracking): New.
13515         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13516         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13517         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13518         * rtl.c (note_insn_name): Likewise.
13519         * rtl.def (VAR_LOCATION): New.
13520         * rtl.h (NOTE_VAR_LOCATION): New.
13521         (NOTE_VAR_LOCATION_DECL): New.
13522         (NOTE_VAR_LOCATION_LOC): New.
13523         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13524         (variable_tracking_main): New exported function.
13525         * timevar.def (TV_VAR_TRACKING): New.
13526         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13527         (dump_file): "vartrack" was added (-dV).
13528         (flag_var_tracking): New.
13529         (f_options): "var-tracking" was added.
13530         (rest_of_handle_variable_tracking): New function.
13531         (rest_of_compilation): Run variable tracking.
13532         (process_options): If user has not specified flag_var_tracking set it
13533         according to optimize, debug_info_level and debug_hooks.
13534         * tree.h (frame_base_decl): New.
13535         * var-tracking.c: New file.
13536         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13537         (ia64_override_options): Set flags to run variable tracking in machine
13538         dependent reorg instead of toplev.c.
13539         (ia64_reorg): Run variable tracking if wanted.
13540         * doc/invoke.texi: Mention variable tracking in -dV,
13541         add and -fvar-tracking.
13542         * doc/passes.texi: Added variable tracking pass.
13543
13544         Daniel Berlin <dberlin@dberlin.org>
13545         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13546         * dbxout.c (dbx_debug_hooks): Likewise.
13547         (xcoff_debug): Likewise.
13548         * debug.c (do_nothing_debug_hooks): Likewise.
13549         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13550         * dwarfout.c (dwarf_debug_hooks): Likewise.
13551         * sdbout.c (sdb_debug_hooks): Likewise.
13552         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13553         * final.c (final_scan_insn): Call var_location debug hook for each
13554         NOTE_INSN_VAR_LOCATION.
13555
13556 2004-02-06  Jan Hubicka  <jh@suse.cz>
13557
13558         * flow.c (update_life_info): Allocate reg_deaths when called from
13559         scheudler.
13560         (attempt_auto_inc):  Update life ranges accordingly.
13561
13562 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13563
13564         PR debug/11816
13565         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13566
13567 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13568
13569         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13570
13571 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13572
13573         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13574         a separate line info table in use.
13575         Use the correct size for terminators.
13576         (output_die): Use offset, not delta.
13577
13578 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13579
13580         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13581
13582 2004-02-06  Jan Hubicka  <jh@suse.cz>
13583
13584         * recog.c (split_all_insns): Do not update reg info.
13585         * regrename.c (regrename_optimize): Likewise.
13586         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13587         * flow.c (struct propagate_block_info): Add insn_num field.
13588         (reg_deaths): New array.
13589         (life_analysis): Free reg_deaths info.
13590         (allocate_reg_life_data): Allocate reg_deaths array.
13591         (propagate_one_insn): Use new array.
13592         (init_propagate_block): Initialize it.
13593         (free_propagate_block_info): Finish compuation of
13594         REG_LIVE_LENGTH
13595         (attempt_auto_inc): Sanity check that REG_INFO is not
13596         computed at same time.
13597         (mark_used_regs): Update new array.
13598
13599         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13600         substitution.
13601
13602 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13603
13604         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13605         *extendqisi2_short_displ.
13606
13607 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13608
13609         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13610         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13611         (emit_library_call_value_1): Likewise pass nargs.
13612         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13613         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13614         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13615         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13616         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13617         prototype.
13618         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13619         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13620         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13621         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13622         INIT_CUMULATIVE_ARGS.
13623         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13624         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13625         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13626         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13627         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13628         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13629         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13630         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13631         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13632         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13633         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13634         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13635
13636 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13637
13638         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13639         possible.
13640
13641 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13642
13643         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13644         note containing (plus (reg) (const_int)), where reg is an
13645         eliminable reg, then perform the register elimination without
13646         depending on eliminate_regs().
13647
13648 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13649
13650         * config/arc/arc.c (arc_return_in_memory): Check the return
13651         value of int_size_in_bytes against -1.  Don't check
13652         TREE_ADDRESSABLE.
13653         * config/avr/avr.c (avr_return_in_memory): Check the return
13654         value of int_size_in_bytes against -1.
13655         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13656         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13657         Likewise.
13658         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13659         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13660         Likewise.
13661
13662 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13663
13664         * config/frv/frv-protos.h: Remove the prototype for
13665         frv_setup_incoming_varargs.
13666         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13667         (frv_setup_incoming_varargs): Make it static.
13668         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13669
13670 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13671
13672         * config/fr30/fr30-protos.h: Remove the prototype for
13673         fr30_setup_incoming_varargs.
13674         Update the prototypes for fr30_num_arg_regs and
13675         fr30_function_arg_partial_nregs.
13676         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13677         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13678         (fr30_setup_incoming_varargs): Make it static.
13679         Add argument second_time.  Don't do anything when second_time
13680         is nonzero.
13681         (fr30_num_arg_regs): Change the type of the first argument to
13682         enum machine_mode.
13683         (fr30_function_arg_partial_nregs): Change the type of the
13684         second argument to enum machine_mode.
13685         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13686         (SETUP_INCOMING_VARARGS): Remove.
13687
13688 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13689
13690         * config/arc/arc-protos.h: Remove the prototype for
13691         arc_setup_incoming_varargs.
13692         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13693         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13694         (arc_setup_incoming_varargs): Make it static.
13695         (arc_external_libcall): Likewise.
13696         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13697         Remove the commented-out definition of
13698         ASM_OUTPUT_EXTERNAL_LIBCALL.
13699
13700 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13701
13702         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13703         to $$(slibdir) in the installation commands.
13704
13705 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13706
13707         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13708         with inner_regno, not regno.
13709         * rtlanal.c (refers_to_regno_p): Same.
13710
13711 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13712
13713         * config.gcc: Remove i370 support.
13714
13715 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13716
13717         * doc/install.texi:  Update automake and autoconf version
13718         requirements.  Note where to find gcj automake version.
13719
13720 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13721
13722         * Makefile.in (generate-manpages): Move dependencies to ...
13723         (man): here.
13724         * doc/makefile.texi: Document new targets.
13725         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13726
13727 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13728
13729         PR/13485
13730         Makefile.in (srcextra):  Add a level of indirection to ...
13731         (gcc.srcextra): ... here.
13732         (po-generated): Delete.
13733         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13734         options.c.
13735         (start.encap): Remove superfluous lang.srcextra dependency.
13736         objc/Make-lang.in (po-generated):  Delete.
13737
13738 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13739
13740         * config/ia64/ia64.c (REG_GP): Remove.
13741
13742 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13743
13744         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13745
13746 2004-02-05  Devang Patel  <dpatel@apple.com>
13747
13748         * dwarf2out.c (force_type_die): Look up input type itself
13749         instead of root_type() of type.
13750
13751 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13752
13753         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13754         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13755         pre-reload splitters are transformed to post-reload
13756         define_insn_and_split patterns.
13757         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13758
13759 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13760
13761         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13762         TARGET_PROMOTE_PROTOTYPES.
13763
13764 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13765
13766         PR middle-end/13750
13767         Revert:
13768         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13769         PR pch/13361
13770         * c-typeck.c (constructor_asmspec): Delete.
13771         (struct initializer_stack): Delete field 'asmspec'.
13772         (start_init): Delete saving of asmspec.
13773         (finish_init): Don't update constructor_asmspec.
13774         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13775         * stmt.c (expand_asm): Duplicate strings from tree.
13776         (expand_asm_operands): Likewise.
13777         * tree.c (tree_size): Update computation of size of STRING_CST.
13778         (make_node): Don't make STRING_CST nodes.
13779         (build_string): Allocate string with tree node.
13780         * tree.def (STRING_CST): Update comment.
13781         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13782         (tree_string): Place contents of string in tree node.
13783         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13784         from tree.
13785
13786 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13787
13788         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13789         msgid.
13790
13791 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13792
13793         * config/rs6000/altivec.md (*movv4si_internal): At least one
13794         operand must be altivec_register_operand.
13795         (*movv8hi_internal1): Likewise.
13796         (*movv16qi_internal1): Likewise.
13797         (*movv4sf_internal1): Likewise.
13798
13799 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13800
13801         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13802         * configure: Regenerate.
13803
13804 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13805
13806         * doc/install.texi: Update description of --gxx-include-dir to
13807         give correct default value.
13808
13809 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13810
13811         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13812         8 with MAC_REG.
13813
13814 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13815
13816         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13817         gen_rtx_PARALLEL.
13818
13819 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13820
13821         * emit-rtl.c: Update the comment about the file.
13822
13823 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13824
13825         * sourcebuild.texi (Test Idioms): Update testcase naming
13826         conventions.
13827
13828 2004-02-04  Per Bothner  <per@bothner.com>
13829
13830         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13831         * c-ppoutput.c (pp_dir_change):  New function.
13832         * c-common.h (pp_dir_change):  New declaration.
13833         * cpplib.h (struct cpp_options):  Remove working_directory field.
13834         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13835         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13836         Don't handle -fworking_directory here, but in c_common_post_options.
13837         (read_original_directory): Don't back up when done.
13838         Don't clear no-longer used working_directory flag.
13839         * cpplib.h:  Update declarations to match.
13840         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13841         (init_c_lex):  Don't set dir_change callback here, since we want
13842         to set it even if flag_preprocess_only.
13843         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13844         (c_common_post_options):  Set dir_change callback.
13845         Call pp_dir_change if approporiate.
13846         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13847         unneeded parameter and result. Do LC_RENAME for <built-in>.
13848         (c_common_post_options):  Call cpp_read_main_file here instead.
13849         (c_common_init):  Update accordingly.
13850         (push_command_line_include):  Don't cpp_push_main_file.
13851         Do LC_RENAME rather than LC_LEASE to get back to main file.
13852         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13853         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13854         files, but call finish_options for all files.
13855         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13856         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13857         cpp_find_main_file + cpp_push_main_file.
13858         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13859         * opts.c (handle_options):  Only set main_input_filename first time.
13860
13861 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13862
13863         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13864
13865 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13866
13867         * reload.c (find_equiv_reg): When checking for register overlap,
13868         don't index hard_regno_nregs with a pseudo-reg.
13869
13870 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13871
13872         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13873
13874 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13875
13876         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13877         against FIRST_PSEUDO_REGISTER.
13878
13879 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13880
13881         * Makefile.in: Move target, host overrides after per-language
13882         fragments.
13883
13884         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13885         (GNATLIBCFLAGS): Remove -g.
13886
13887 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13888
13889         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13890         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13891         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13892         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13893         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13894         config/sparc/sparc.c, config/vax/vax.c: Revert the
13895         replacements of "FALLTHRU" with "Fall through" done in the
13896         previous patch.
13897
13898 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13899
13900         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13901         config/arm/arm.c, config/arm/arm.md,
13902         config/cris/cris-protos.h, config/fr30/fr30.c,
13903         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13904         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13905         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13906         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13907         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13908         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13909         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13910         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13911         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13912         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13913         config/s390/s390.md, config/sparc/netbsd-elf.h,
13914         config/sparc/openbsd.h, config/sparc/sparc.c,
13915         config/xtensa/lib2funcs.S: Fix comment formatting.
13916
13917 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13918
13919         * config/alpha/alpha.c, config/arc/arc.c,
13920         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13921         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13922         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13923         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13924         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13925         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13926         config/iq2000/iq2000.c, config/m32r/m32r.c,
13927         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13928         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13929         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13930         config/rs6000/rs6000.h, config/sparc/sparc.c,
13931         config/vax/vax.c: Fix comment typos.  Follow spelling
13932         conventions.
13933
13934 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13935
13936         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13937         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13938         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13939         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13940         config/arm/fpa.md, config/arm/iwmmxt.md,
13941         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13942         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13943         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13944         config/sparc/netbsd-elf.h: Update copyright.
13945
13946 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13947
13948         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13949         for all modes whose size is greater than 8 bytes if ARCH32.
13950         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13951         by reference if ARCH32.
13952
13953 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13954
13955         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13956
13957 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13958
13959         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13960         to before adddi3 insn patterns.
13961         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13962         "reload_insi"): Move to before addsi3 insn patterns.
13963
13964 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13965
13966         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13967         parameter.  Use it instead of current_function_is_thunk.
13968         * function.h (struct function): Update documentation for is_thunk.
13969         * tree.h (CALL_FROM_THUNK_P): New macro.
13970         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13971         no_new_pseudos when testing current_function_is_thunk.
13972         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13973
13974 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13975
13976         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13977         TARGET_SETUP_INCOMING_VARARGS.
13978
13979 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13980
13981         * emit-rtl.c (gen_rtx): Remove.
13982         * genattrtab.c: Don't mention gen_rtx in a comment.
13983         * rtl.h: Remove the prototype for gen_rtx.
13984         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13985
13986 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13987
13988         * config/arc/arc.h, config/fr30/fr30.h
13989         (SETUP_INCOMING_VARARGS): Remove the target-independent
13990         comments.
13991         * doc/tm.texi: Don't mention deprecated target macros.
13992
13993 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13994
13995         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13996         target-independent comment.
13997
13998 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13999
14000         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14001         mention deprecated target macros.
14002
14003 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14004
14005         * config.gcc: Remove obsolete ports and configurations.
14006         * config/linux-aout.h, config/netware.h,
14007         config/t-linux-gnulibc1, config/d30v/abi,
14008         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14009         config/d30v/d30v.h, config/d30v/d30v.md,
14010         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14011         config/dsp16xx/dsp16xx-modes.def,
14012         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14013         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14014         config/i370/README, config/i370/i370-c.c,
14015         config/i370/i370-protos.h, config/i370/i370.c,
14016         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14017         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14018         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14019         config/i386/moss.h, config/i386/netware.h,
14020         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14021         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14022         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14023         config/i960/i960-c.c, config/i960/i960-coff.h,
14024         config/i960/i960-modes.def, config/i960/i960-protos.h,
14025         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14026         config/i960/rtems.h, config/i960/t-960bare,
14027         config/m68k/hp310.h, config/m68k/hp320.h,
14028         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14029         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14030         Remove.
14031         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14032         doc/md.texi: Remove mentions of obsolete ports.
14033
14034 2004-02-04  Jan Hubicka  <jh@suse.cz>
14035
14036         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14037         pointer when all VALUE's locations has been invalidated.
14038         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14039
14040 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14041
14042         * doc/invoke.texi (x86 options): Fix spelling/wording.
14043
14044 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14045
14046         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14047         put the original string in a comment.
14048         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14049         * config/mips/mips.c (mips_output_ascii): Likewise.
14050         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14051
14052 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14053
14054         * system.h (GIV_SORT_CRITERION): Poison.
14055         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14056         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14057
14058 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14059
14060         PR target/9348
14061         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14062         multiplies with a multiplication of the wrong signedness, its the
14063         signedness of the multiplication that we've performed that needs to
14064         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14065         if expand_mult_highpart_adjust places the result in target.
14066
14067 2004-02-03  Richard Henderson  <rth@redhat.com>
14068
14069         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14070
14071 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14072
14073         * config.gcc (sh[234]l): Use little endian fragments.
14074
14075 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14076
14077         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14078         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14079         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14080         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14081         floating point format.
14082         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14083         the above functions.
14084         (output_move_quad): Output float values in correct target format.
14085         (legitimate_const_double_p): New function.
14086         * config/pdp11/pdp11.h: Fix typos.
14087         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14088         (TARGET_FLOAT_FORMAT): Ditto.
14089         (pdp11_f_format, pdp11_d_format): Add external declarations.
14090         (MAX_REGS_PER_ADDRESS): Corrected.
14091         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14092         (PRINT_OPERAND): Output float literals in target format.
14093
14094 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14095
14096         PR c++/13975
14097         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14098         TI_PRIVATE.
14099         (access_public_node): Redefine.
14100         (access_protected_node): Likewise.
14101         (access_private_node): Likewise.
14102         * tree.c (build_common_tree_nodes): Create access_public_node,
14103         access_protected_node, and access_private_node.
14104
14105 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14106
14107         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14108         (MASK_INLINE_INT_DIV_THR): Ditto.
14109         (MASK_INLINE_SQRT_LAT): Ditto.
14110         (MASK_INLINE_SQRT_THR): Ditto.
14111         (MASK_DWARF2_ASM): Ditto.
14112         (MASK_EARLY_STOP_BITS): Ditto.
14113
14114 2004-02-02  Paul Brook  <paul@codesourcery.com>
14115
14116         Merge from csl-arm-branch.
14117
14118         2004-01-30  Paul Brook  <paul@codesourcery.com>
14119
14120         * aof.h (REGISTER_NAMES): Add vfp reg names
14121         (ADDITIONAL_REGISTER_NAMES): Ditto.
14122         * aout.h (REGISTER_NAMES): Ditto.
14123         (ADDITIONAL_REGISTER_NAMES): Ditto.
14124         * arm-protos.h: Update/Add Prototypes.
14125         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14126         Only allow 0.0 for VFP.
14127         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14128         (values_fp): Rename from values_fpa.  Update Users.
14129         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14130         Update users.  Only check valid constants for this hardware.
14131         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14132         Only allow consts for FPA.
14133         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14134         Only allow consts for FPA.
14135         (use_return_insn): Check for saved VFP regs.
14136         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14137         (arm_legitimize_address): Ditto.
14138         (arm_general_register_operand): New function.
14139         (vfp_mem_operand): New function.
14140         (vfp_compare_operand): New function.
14141         (vfp_secondary_reload_class): New function.
14142         (arm_float_compare_operand): New function.
14143         (vfp_print_multi): New function.
14144         (vfp_output_fstmx): New function.
14145         (vfp_emit_fstm): New function.
14146         (arm_output_epilogue): Output VPF reg restore code.
14147         (arm_expand_prologue): Output VFP reg save code.
14148         (arm_print_operand): Add 'P'.
14149         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14150         (arm_regno_class): Return classes for VFP regs.
14151         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14152         (arm_get_frame_size): Ditto.
14153         * arm.h (FIXED_REGISTERS): Add VFP regs.
14154         (CALL_USED_REGISTERS): Ditto.
14155         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14156         (FIRST_VFP_REGNUM): Define.
14157         (LAST_VFP_REGNUM): Define.
14158         (IS_VFP_REGNUM): Define.
14159         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14160         (HARD_REGNO_NREGS): Handle VFP regs.
14161         (REG_ALLOC_ORDER): Add VFP regs.
14162         (enum reg_class): Add VFP_REGS.
14163         (REG_CLASS_NAMES): Ditto.
14164         (REG_CLASS_CONTENTS): Ditto.
14165         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14166         (REG_CLASS_FROM_LETTER): Add 'w'.
14167         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14168         (EXTRA_MEMORY_CONSTRAINT): Define.
14169         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14170         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14171         (REGISTER_MOVE_COST): Ditto.
14172         (PREDICATE_CODES): Add arm_general_register_operand,
14173         arm_float_compare_operand and vfp_compare_operand.
14174         * arm.md (various): Rename as above.
14175         (divsf3): Enable when TARGET_VFP.
14176         (divdf3): Ditto.
14177         (movdfcc): Ditto.
14178         (sqrtsf2): Ditto.
14179         (sqrtdf2): Ditto.
14180         (arm_movdi): Disable when TARGET_VFP.
14181         (arm_movsi_insn): Ditto.
14182         (movsi): Only split with general regs.
14183         (cmpsf): Use arm_float_compare_operand.
14184         (push_fp_multi): Restrict to TARGET_FPA.
14185         (vfp.md): Include.
14186         * vfp.md: New file.
14187         * fpa.md (various): Rename as above.
14188         * doc/md.texi: Document ARM w and U constraints.
14189
14190         2004-01-15  Paul Brook  <paul@codesourcery.com>
14191
14192         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14193         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14194         Break out of loop when we find a float-abi.  Fix typo.
14195         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14196         Set -mfloat-abi=.
14197         * doc/install.texi: Document --with-fpu.
14198
14199         2003-01-14  Paul Brook  <paul@codesourcery.com>
14200
14201         * config.gcc (with_arch): Add armv6.
14202         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14203         * config/arm/arm.c (arm_overrride_options): Ditto.
14204
14205         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14206
14207         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14208         (FL_ARCH6): Renamed from FL_ARCH6J.
14209         (arm_arch3m): Renamed from arm_fast_multiply.
14210         (arm_arch6): Renamed from arm_arch6j.
14211         * arm.h: Update all uses of above.
14212         * arm-cores.def: Likewise.
14213         * arm.md: Likewise.
14214
14215         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14216         not arm6j.  Add entry for arch armv6.
14217
14218         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14219
14220         * arm.c (arm_emit_extendsi): Delete.
14221         * arm-protos.h (arm_emit_extendsi): Delete.
14222         * arm.md (zero_extendhisi2): Also handle zero-extension of
14223         non-subregs.
14224         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14225         (thumb_zero_extendhisi2): Only match if not v6.
14226         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14227         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14228         (thumb_extendqisi2): Likewise.
14229         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14230         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14231         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14232         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14233         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14234         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14235         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14236         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14237         (arm_extendqisi2addsi): Likewise.
14238
14239         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14240
14241         Revert this change:
14242         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14243         + REG addressing modes.
14244
14245         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14246         + REG addressing modes.
14247
14248         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14249
14250         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14251         CONSTANT_P_RTX.
14252
14253         2003-30-12  Paul Brook  <paul@codesourcery.com>
14254
14255         * longlong.h: protect arm inlines with !defined (__thumb__)
14256
14257         2003-30-12  Paul Brook  <paul@codesourcery.com>
14258
14259         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14260
14261         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14262
14263         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14264         change.
14265
14266         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14267
14268         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14269         to the virtual incoming args pointer for downward stacks.
14270
14271         2003-12-29  Paul Brook  <paul@codesourcery.com>
14272
14273         * config/arm/arm-cores.def: Add cost function.
14274         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14275         (arm_rtx_costs): Remove
14276         (struct processors): Add rtx_costs field.
14277         (all_cores, all_architectures): Ditto.
14278         (arm_override_options): Set targetm.rtx_costs.
14279         (thumb_rtx_costs): New function.
14280         (arm_rtx_costs_1): Remove cases handled elsewhere.
14281         * config/arm/arm.h (processor_type): Add COSTS parameter.
14282
14283         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14284
14285         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14286         (arm926ejs.md): Include it.
14287         * config/arm/arm926ejs.md: New pipeline description.
14288
14289         2003-12-24  Paul Brook  <paul@codesourcery.com>
14290
14291         * config/arm/arm.c (arm_arch6j): New variable.
14292         (arm_override_options): Set it.
14293         (arm_emit_extendsi): New function.
14294         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14295         * config/arm/arm.h (arm_arch6j): Declare.
14296         * config/arm/arm.md: Add sign/zero extend insns.
14297
14298         2003-12-23  Paul Brook  <paul@codesourcery.com>
14299
14300         * config/arm/arm.c (all_architectures): Add armv6.
14301         * doc/invoke.texi: Document it.
14302
14303         2003-12-19  Paul Brook  <paul@codesourcery.com>
14304
14305         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14306         insn patterns to match.
14307         * config/arm/arm-generic.md: Ditto.
14308         * config/arm/cirrus.md: Ditto.
14309         * config/arm/fpa.md: Ditto.
14310         * config/amm/iwmmxt.md: Ditto.
14311         * config/arm/arm1026ejs.md: Ditto.
14312         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14313         for 11_loadb.
14314
14315         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14316
14317         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14318         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14319         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14320         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14321         arm_no_early_mul_dep): Correctly deal with conditional execution,
14322         parallels and single shift operations.
14323         (arm_no_early_alu_shift_value_dep): Define.
14324         * arm.md (attr type): Replace 'normal' with 'alu',
14325         'alu_shift' and 'alu_shift_reg'.
14326         (attr core_cycles): Adjust.
14327         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14328         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14329         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14330         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14331         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14332         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14333         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14334         attribute appropriately.
14335         * config/arm/arm1026ejs.md (alu_op): Adjust.
14336         (alu_shift_op, alu_shift_reg_op): New.
14337         * config/arm/arm1136.md: Add better bypasses for early
14338         registers. Remove load[234] and store[234] bypasses.
14339         (11_alu_op): Adjust.
14340         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14341
14342         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14343
14344         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14345         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14346         * config/arm/arm.c (arm_no_early_store_addr_dep,
14347         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14348         * config/arm/arm1026ejs.md: Add load-store bypass.
14349         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14350         Add bypasses between instructions.
14351
14352         2003-12-10  Paul Brook  <paul@codesourcery.com>
14353
14354         * config/arm/arm.c (arm_fpu_model): New variable.
14355         (arm_fload_abi): New variable.
14356         (target_fpe_name): Rename from target_fp_name.
14357         (target_fpu_name): New variable.
14358         (arm_is_cirrus): Remove.
14359         (fpu_desc): New struct.
14360         (all_fpus): Define.
14361         (pf_model_for_fpu): Define.
14362         (all_loat_abis): Define.
14363         (arm_override_options): Set fp arch flags based on -mfpu=
14364         and -float-abi=.
14365         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14366         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14367         (*): Use new TARGET_* flags.
14368         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14369         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14370         (TARGET_SOFT_FLOAT): Ditto.
14371         (TARGET_SOFT_FLOAT_ABI): New.
14372         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14373         TARGET_HARD_FLOAT.
14374         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14375         (TARGET_OPTIONS): Add -mfpu=.
14376         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14377         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14378         (arm_pf_model): Define.
14379         (arm_float_abi_type): Define.
14380         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14381         * config/arm/arm.md: Use new TARGET_* flags.
14382         * config/arm/cirrus.md: Ditto.
14383         * config/arm/fpa.md: Ditto.
14384         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14385         * config/arm/semi.h (ASM_SPEC): Ditto.
14386         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14387         (FPUTYPE_DEFAULT): Set to VFP.
14388         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14389
14390         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14391
14392         PR target/12476
14393         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14394         'bx' instead of 'b' to avoid branch range restrictions.  Output
14395         the thunk immediately before the thunked-to function.
14396         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14397         .thumb_func if a thunk is being generated.  Emit .code 16 along
14398         with .thumb_func if a thunk is not being generated.
14399
14400         2003-11-15  Nicolas Pitre <nico@cam.org>
14401
14402         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14403         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14404         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14405         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14406         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14407
14408         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14409             Ian Lance Taylor  <ian@wasabisystems.com>
14410
14411         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14412         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14413
14414         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14415
14416         * config/arm/arm.md (insn):  Add new V6 instruction names.
14417         (generic_sched):  New attr.
14418         * config/arm/arm-generic.md:  Use generic_sched here.
14419         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14420         stages of pipeline.  Adjust latency counts accordingly.
14421         * config/arm/arm1136jfs.md:  New file.
14422
14423         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14424
14425         * config/arm/arm.h (processor_type): New enumeration type.
14426         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14427         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14428         (CPP_CPU_ARCH_SPEC): Likewise.
14429         * config/arm/arm.c (arm_tune): New variable.
14430         (all_cores): Use cores.def.
14431         (all_architectures): Add representative processor.
14432         (arm_override_options): Restructure way in which tuning
14433         information is deduced.
14434         * arm.md: Update "insn" and "type" attributes throughout.
14435         (insn): New attribute.
14436         (type): Compute "mult" from "insn" attribute.  Add load2,
14437         load3, load4 alternatives.
14438         (arm automaton): Move to arm-generic.md.
14439         * config/arm/arm-cores.def: New file.
14440         * config/arm/arm-generic.md: Likewise.
14441         * config/arm/arm1026ejs.md: Likewise.
14442
14443 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14444
14445         * doc/invoke.texi (SPARC options): Remove -mflat and
14446         all -mxxx (xxx:chip) options.
14447         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14448         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14449         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14450         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14451         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14452         * config/sparc/sparc.c: Likewise.
14453         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14454         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14455         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14456         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14457         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14458         (sparc_flat_must_save_register_p): Likewise.
14459         (sparc_flat_compute_frame_size): Likewise.
14460         (sparc_flat_save_restore): Likewise.
14461         (sparc_flat_function_prologue): Likewise.
14462         (sparc_flat_function_epilogue): Likewise.
14463         (sparc_flat_epilogue_delay_slots): Likewise.
14464         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14465         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14466         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14467         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14468         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14469         (CONDITIONAL_REGISTER_USAGE): Likewise.
14470         (FRAME_POINTER_REQUIRED): Likewise.
14471         (INITIAL_ELIMINATION_OFFSET): Likewise.
14472         (BASE_RETURN_VALUE_REG): Likewise.
14473         (BASE_OUTGOING_VALUE_REG): Likewise.
14474         (BASE_PASSING_ARG_REG): Likewise.
14475         (BASE_INCOMING_ARG_REG): Likewise.
14476         (INCOMING_REGNO): Likewise.
14477         (OUTGOING_REGNO): Likewise.
14478         (LOCAL_REGNO): Likewise.
14479         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14480         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14481         (EPILOGUE_USES): Likewise.
14482         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14483         ("flat" attribute): Delete.
14484         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14485         handling.
14486         (call followed by jump define_peephole's): Delete.
14487         (exception_receiver): Likewise.
14488         (builtin_setjmp_receiver): Likewise.
14489         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14490
14491 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14492
14493         PR c/11658
14494         PR c/13994
14495         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14496         on langhooks.h.
14497         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14498         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14499         Include langhooks.h.  Replace c_common_truthvalue_conversion
14500         with the truthvalue_conversion language hook throughout.
14501         (expr_no_commas): Call default_conversion before save_expr
14502         for the first term of the production 'x ? : y'.
14503         * c-common.c (c_common_truthvalue_conversion): Remove
14504         obsolete block.  Invoke recursively the hook instead
14505         of this function.
14506         * c-convert.c (convert): handle ERROR_MARK_NODE.
14507         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14508         returned by the truthvalue_conversion language hook.
14509         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14510         c_objc_common_truthvalue_conversion.
14511         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14512         New function.
14513         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14514         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14515         c_objc_common_truthvalue_conversion.
14516
14517 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14518
14519         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14520         of gen_rtx.
14521         (LIBCALL_VALUE): Likewise.
14522         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14523         gen_rtx_CC0 instead of gen_rtx.
14524         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14525         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14526         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14527         gen_rtx.
14528         (m68hc11_emit_logical): Likewise.
14529
14530 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14531
14532         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14533         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14534         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14535         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14536         config/mips/mips.md, config/mmix/mmix.c,
14537         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14538         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14539         config/rs6000/altivec.md, config/s390/s390.c,
14540         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14541         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14542         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14543         constants that are readily available.
14544
14545 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14546
14547         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14548         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14549         instead of GEN_INT (0).  Do the same for other constants that
14550         are readily available.
14551
14552 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14553
14554         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14555         gen_rtx.
14556         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14557         instead of gen_rtx.
14558         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14559         gen_rtx.
14560         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14561         gen_rtx_ASHIFT instead of gen_rtx.
14562         (udivmodqi4): Likewise.
14563
14564 2004-02-02  Richard Henderson  <rth@redhat.com>
14565
14566         PR target/13789
14567         * expr.c (store_expr): Use force_operand before emit_move_insn.
14568
14569 2004-02-02  Jeff Law  <law@redhat.com>
14570             Roger Sayle  <roger@eyesopen.com>
14571
14572         * tree.c (commutative_tree_code, associative_tree_code): New
14573         functions.
14574         (iterative_hash_expr): Use commutative_tree_code.
14575         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14576         * fold-const.c (operand_equal_p): Use commutative_tree_code
14577         rather than inlining the commutativity check.
14578         (fold): Likewise.
14579
14580 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14581
14582         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14583         * config/frv/frv-protos.h: Remove the prototype for
14584         frv_function_arg_keep_as_reference.
14585         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14586         Remove.
14587         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14588         * config/stormy16/stormy16.h: Remove the commented-out
14589         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14590
14591 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14592
14593         PR target/13914
14594         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14595         for retaddr_column.
14596
14597 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14598
14599         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14600         gen_rtx.
14601
14602 2004-02-02  Eric Christopher  <echristo@redhat.com>
14603             Zack Weinberg  <zack@codesourcery.com>
14604
14605         * c-opts.c (c_common_handle_option): Add -finput-charset.
14606         * c.opt: Ditto.
14607         * cppcharset.c (one_iso88591_to_utf8): Remove.
14608         (convert_iso88591_utf8): Ditto.
14609         (conversion_tab): Remove 8859-1 converter.
14610         (_cpp_input_to_utf8): Remove.
14611         (_cpp_init_iconv_buffer): Ditto.
14612         (_cpp_close_iconv_buffer): Ditto.
14613         (_cpp_convert_input): New function.
14614         (_cpp_default_encoding): Ditto.
14615         * cpphash.h: Add/remove prototypes for above.
14616         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14617         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14618         for narrow execution and input character sets.
14619         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14620         * doc/cppopts.texi: Document -finput-charset.
14621
14622 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14623
14624         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14625         against FIRST_PSEUDO_REGISTER.
14626
14627 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14628
14629         * doc/invoke.texi (SPARC options): Further improve.
14630
14631 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14632
14633         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14634         config/h8300/h8300.c, config/ip2k/ip2k.md,
14635         config/iq2000/iq2000.c, config/mips/mips.c,
14636         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14637         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14638         config/v850/v850.md: Fix indentation.
14639
14640 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14641
14642         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14643         arguments on a 16-byte boundary in the parameter array if ARCH64.
14644         Split handling of TFmode.
14645
14646 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14647
14648         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14649         Don't test CONSTANT_P (x).
14650         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14651         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14652         Fix misindentation.
14653
14654 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14655
14656         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14657
14658 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14659
14660         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14661         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14662         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14663         config/iq2000/iq2000.c, config/m32r/m32r.c,
14664         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14665         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14666         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14667         config/stormy16/stormy16.c, config/v850/v850.md,
14668         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14669
14670 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14671
14672         * config/mcore/mcore.c (block_move_sequence): Replace
14673         gen_rtx_CONST_INT with GEN_INT.
14674
14675 2004-02-02  Jan Hubicka  <jh@suse.cz>
14676
14677         * alias.c (record_set): Use hard_regno_nregs.
14678         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14679         * builtins.c (apply_args_size): Likewise.
14680         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14681         mark_set_regs, add_stored_regs, mark_referenced_regs,
14682         insert_restore, insert_save, insert_one_insn): Likewise.
14683         * cfgcleanup.c: Include regs.h
14684         (mark_effect, mentions_nonequal_regs): Likewise.
14685         * cfgrtl.c (mark_killed_regs): Likewise
14686         * combine.c (update_table_tick, record_value_for_reg,
14687         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14688         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14689         reg_bitfield_target_p, distribute_notes): Likewise.
14690         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14691         exp_equiv_p, cse_insn): Likewise.
14692         * cselib.c (cselib_lookup): Likewise.
14693         (cselib_invalidate_regno, cselib_record_set): Likewise.
14694         * df.c (df_ref_record): Likewise.
14695         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14696         Likewise.
14697         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14698         count_or_remove_death_notes_bb): Likewise.
14699         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14700         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14701         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14702         * integrate.c (mark_stores): Likewise.
14703         * jump.c (delete_prior_computation): Likewise.
14704         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14705         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14706         * loop.c (LOOP_REGNO_NREGS): Likewise.
14707         * postreload.c (reload_combine, reload_combine_note_store,
14708         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14709         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14710         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14711         try_recolor_web, insert_coalesced_conflicts, check_colors,
14712         break_precolored_alias): Likewise.
14713         * ra-debug.c: Include regs.h
14714         (ra_print_rtx_object): Likewise.
14715         * ra-rewrite (choose_spill_colors): Likewise.
14716         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14717         * ra.c (init_ra): Likewise.
14718         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14719         peep2_find_free_register): Likewise.
14720         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14721         * regclass.c (hard_regno_nregs): New array.
14722         (init_reg_modes_once): Initialize it.
14723         (choose_hard_reg_mode): Use it.
14724         (record_reg_classes): Likewise.
14725         * regmove.c (mark_flags_life_zones): Likewise.
14726         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14727         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14728         copy_value, maybe_mode_change, find_oldest_value_reg,
14729         copyprop_hardreg_forward_1):
14730         * regs.h (hard_regno_nregs): Declare.
14731         * realod.c (reload_inner_reg_of_subreg): Use it.
14732         (push_reload, combine_reloads, find_dummy_reload,
14733         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14734         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14735         reload_adjust_reg_for_mode): Likewise.
14736         * reload1.c (compute_use_by_pseudos, count_pseudo,
14737         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14738         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14739         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14740         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14741         delete_output_reload): Likewise.
14742         * resource.c (update_live_status, mark_referenced_resources,
14743         mark_set_resources, mark_target_live_regs): Likewise.
14744         * rtlanal.c:  Include regs.h
14745         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14746         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14747         subreg_regno_offset, subreg_offset_representable_p,
14748         hoist_test_store): Likewise.
14749         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14750         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14751         * stmt.c: Include regs.h
14752         (decl_conflicts_with_clobbers_p): Likewise.
14753         * varasm.c (make_decl_rtl): Likewise.
14754         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14755
14756 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14757
14758         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14759         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14760         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14761         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14762         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14763         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14764         config/iq2000/iq2000.h, config/m32r/m32r.c,
14765         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14766         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14767         config/mcore/mcore.c, config/mcore/mcore.h,
14768         config/mcore/mcore.md, config/mips/mips.c,
14769         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14770         config/rs6000/rs6000.c, config/s390/s390.c,
14771         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14772         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14773         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14774
14775 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14776
14777         * config/h8300/h8300.md (two peephole2's): New.
14778
14779 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14780
14781         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14782         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14783         (ASM_CPU_SPEC): Likewise
14784         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14785         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14786
14787 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14788
14789         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14790         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14791         (expand_builtin): Always call expand_builtin_pow.
14792
14793 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14794
14795         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14796         BUILT_IN_SIGNBITL): New GCC builtins.
14797         * builtins.c (expand_builtin_signbit): New function to RTL expand
14798         calls to signbit, signbitf and signbitl as inline intrinsics.
14799         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14800         (fold_builtin_signbit): New function to perform constant folding
14801         of signbit, signbitf and signbitl.
14802         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14803
14804         * doc/extend.texi: Document new signbit{,f,l} builtins.
14805
14806 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14807
14808         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14809
14810 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14811
14812         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14813         "mips_const_double_ok" and "simple_memory_operand", which were
14814         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14815         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14816         for removal of simple_memory_operand.
14817
14818 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14819
14820         * config/c4x/c4x.md: Use GEN_INT instead of
14821         gen_rtx (CONST_INT, ...).
14822
14823 2004-01-31  Richard Henderson  <rth@redhat.com>
14824
14825         * varasm.c (output_constant_pool): Don't zap the pool.
14826
14827 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14828
14829         * genrecog.c (decision_type): Add DT_const_int.
14830         (write_cond) [DT_const_int]: Print a comparison against small
14831         constant.
14832         (write_node): Simplify comparisons against small constants
14833         before printing tests.
14834
14835 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14836
14837         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14838         instead of gen_rtx_CONST_INT.
14839
14840 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14841
14842         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14843         instead of gen_rtx_CONST_INT.
14844
14845 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14846
14847         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14848         hook_bool_CUMULATIVE_ARGS_false.
14849         * targhooks.c (default_strict_argument_naming): Rename to
14850         hook_bool_CUMULATIVE_ARGS_false.
14851         * targhooks.h: Update the prototype for
14852         default_strict_argument_naming.
14853
14854 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14855
14856         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14857         * config/sh/sh.h: Likewise.
14858         * config/sh/sh.md: Likewise.
14859
14860 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14861
14862         * doc/invoke.texi (SPARC options): Restructure and update.
14863
14864 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14865
14866         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14867         STRICT_ARGUMENT_NAMING): Poison.
14868         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14869         hook_bool_tree_false.
14870         * targhooks.c (default_promote_function_args): Remove.
14871         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14872         Don't check incoming.
14873         (default_strict_argument_naming): Don't use
14874         STRICT_ARGUMENT_NAMING.
14875         * targhooks.h: Remove the prototype for
14876         default_promote_function_args.
14877
14878 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14879
14880         * config/i386/i386-protos.h: Remove the prototype for
14881         ix86_setup_incoming_varargs.
14882         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14883         (ix86_setup_incoming_varargs): Make it static.
14884         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14885
14886 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14887
14888         * alloc-pool.c: Fix comment typos.
14889         * builtin-types.def: Likewise.
14890         * builtins.def: Likewise.
14891         * c-pretty-print.c: Likewise.
14892         * df.h: Likewise.
14893         * reload1.c: Likewise.
14894
14895 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14896
14897         * doc/invoke.texi: Follow spelling conventions.
14898         * doc/tm.texi: Likewise.
14899
14900 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14901
14902         * doc/install.texi: Fix typos.
14903         * doc/invoke.texi: Likewise.
14904
14905 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14906
14907         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14908         registers as pointers.
14909         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14910
14911 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14912
14913         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14914         and restore it to gen_lowpart_general on exit.
14915         (gen_lowpart_for_combine): Adjust all callers to go through
14916         gen_lowpart.
14917         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14918         and restore it to gen_lowpart_general on exit.
14919         (gen_lowpart_if_possible): Adjust all callers to go through
14920         gen_lowpart.
14921         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14922         (gen_lowpart): Declare as pointer to function, initialized to
14923         gen_lowpart_general.
14924         * rtl.h (gen_lowpart): Declare as pointer to function.
14925
14926 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14927
14928         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14929         * calls.c: Likewise.
14930         * emit-rtl.c: Likewise.
14931         * function.c: Likewise.
14932         * reload1.c: Likewise.
14933         * config/i386/cygming.h: Likewise.
14934         * config/i386/i386.c: Likewise.
14935         * config/i386/winnt.c: Likewise.
14936
14937 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14938
14939         PR bootstrap/9249
14940         * doc/install.texi: document --enable-__cxa_atexit option.
14941         * configure.ac: Disable __cxa_atexit if not supported.
14942         * configure: Regenerate.
14943
14944 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14945
14946         * ggc-zone.c (ggc_free): New function.
14947
14948 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14949
14950         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14951         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14952         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14953         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14954         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14955         config/alpha/alpha.c, config/alpha/alpha.h,
14956         config/alpha/alpha.md, config/alpha/unicosmk.h,
14957         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14958         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14959         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14960         config/frv/frvend.c, config/i386/cygming.h,
14961         config/i386/djgpp.h, config/i386/emmintrin.h,
14962         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14963         config/i386/i386-protos.h, config/i386/openbsd.h,
14964         config/i386/winnt.c, config/i386/xm-mingw32.h,
14965         config/i386/xmmintrin.h, config/ia64/ia64.md,
14966         config/iq2000/iq2000.md, config/m32r/m32r.md,
14967         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14968         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14969         config/mips/iris5gas.h, config/mips/iris6.h,
14970         config/mips/iris6gas.h, config/mips/linux.h,
14971         config/mips/mips.md, config/mips/netbsd.h,
14972         config/mips/openbsd.h, config/mips/windiss.h,
14973         config/pa/fptr.c, config/rs6000/aix.h,
14974         config/rs6000/altivec.h, config/rs6000/darwin.h,
14975         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14976         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14977         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14978         config/sparc/sol2.h: Update copyright.
14979
14980 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14981
14982         * Makefile.in (abs_docdir, abs_srcdir): Define.
14983         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14984
14985 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14986
14987         * genconfig.c (main): Have CC0_P check its operand even on a
14988         target without cc0.
14989
14990 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14991
14992         * config/alpha/alpha.c: Remove mentions of deprecates macros
14993         in comments, remove some target-independent comments about target
14994         macros, and/or add minimal function comments for target hook
14995         implementations.
14996         * config/avr/avr.c: Likewise.
14997         * config/ia64/ia64.h: Likewise.
14998         * config/ip2k/ip2k.c: Likewise.
14999         * config/iq2000/iq2000.c: Likewise.
15000         * config/m32r/m32r.h: Likewise.
15001         * config/m68hc11/m68hc11.c: Likewise.
15002         * config/mcore/mcore.c: Likewise.
15003         * config/mmix/mmix.c: Likewise.
15004         * config/mn10300/mn10300.c: Likewise.
15005         * config/pa/pa.c: Likewise.
15006         * config/pdp11/pdp11.c: Likewise.
15007         * config/rs6000/rs6000.h: Likewise.
15008         * config/sh/sh.c: Likewise.
15009         * config/sh/sh.h: Likewise.
15010         * config/sparc/sparc.c: Likewise.
15011         * config/sparc/sparc.h: Likewise.
15012         * config/stormy16/stormy16.c: Likewise.
15013         * config/xtensa/xtensa.c: Likewise.
15014
15015 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15016
15017         PR optimization/12147
15018         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15019         RELOAD_FOR_OPADDR_ADDR.
15020         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15021         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15022
15023 2004-01-30  Jan Hubicka  <jh@suse.cz>
15024
15025         * reload.c (get_secondary_mem): Fix updating of
15026         secondary_memlocs_elim_used.
15027
15028 2004-01-30  Richard Henderson  <rth@redhat.com>
15029
15030         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15031         (MAX_RTX_HASH_TABLE): Remove.
15032         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15033         (first_pool, last_pool, pool_offset): Remove.
15034         (struct rtx_constant_pool): Split out from ...
15035         (struct varasm_status): ... here.  Reference one via pointer.
15036         (struct constant_descriptor_rtx): Merge struct pool_constant.
15037         (SYMHASH): Remove.
15038         (decode_rtx_const): Remove.
15039         (const_hash_rtx, compare_constant_rtx): Remove.
15040         (record_constant_rtx): Remove.
15041         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15042         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15043         (const_rtx_hash_1, const_rtx_hash): New.
15044         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15045         (simplify_subtraction): Use simplify_rtx.
15046         (force_const_mem): Rewrite to use new data structures.
15047         (find_pool_constant): Likewise.
15048         (get_pool_constant, get_pool_constant_mark,
15049         get_pool_constant_for_function, get_pool_mode,
15050         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15051         (output_constant_pool_2): Split out from output_constant_pool.
15052         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15053         (output_constant_pool): Zap entire pool datastructure.
15054         (mark_constant): Use new pool datastructures.
15055         (mark_constants): Use for_each_rtx.
15056         (mark_constant_pool): Use new pool datastructures.
15057
15058 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15059
15060         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15061         Copy operands[1] to pseudo for simplify_gen_subreg.
15062
15063 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15064
15065         * gcse.c (bypass_block): Fix a typo in the previous check-in
15066         to the file.
15067
15068 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15069
15070         * toplev.c: Include alloc-pool.h.
15071         * Makefile.in (toplev.c): Update dependencies.
15072
15073 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15074
15075         * combine.c (simplify_shift_const, case XOR): Be careful when
15076         commuting XOR with ASHIFTRT.
15077
15078 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15079             Eric Botcazou  <ebotcazou@libertysurf.fr>
15080
15081         * config/sparc/sparc-protos.h: Remove the prototype for
15082         sparc_builtin_saveregs.
15083         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15084         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15085         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15086         (TARGET_STRUCT_VALUE_RTX): Likewise.
15087         (TARGET_RETURN_IN_MEMORY): Likewise.
15088         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15089         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15090         (sparc_builtin_saveregs): Make it static.
15091         (sparc_promote_prototypes): New.
15092         (sparc_struct_value_rtx): Likewise.
15093         (sparc_return_in_memory): Likewise.
15094         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15095         (PROMOTE_FUNCTION_RETURN): Likewise.
15096         (RETURN_IN_MEMORY): Likewise.
15097         (STRUCT_VALUE): Likewise.
15098         (STRUCT_VALUE_INCOMING): Likewise.
15099         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15100         (STRICT_ARGUMENT_NAMING): Likewise.
15101         (PROMOTE_PROTOTYPES): Likewise.
15102
15103         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15104
15105 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15106
15107         PR c/12818
15108         * varasm.c (const_hash_1) <STRING_CST>: Use the
15109         address to compute the hash value if flag_writable_strings.
15110         (compare_constant) <STRING_CST>: Compare the addresses
15111         if flag_writable_strings.
15112         (build_constant_desc): Do not copy the expression for a
15113         STRING_CST if flag_writable_strings.
15114
15115 2004-01-30  Jan Hubicka  <jh@suse.cz>
15116
15117         * alloc-pool.c: Include hashtab.h
15118         (alloc_pool_descriptor): New structure
15119         (alloc_pool_hash): New global variable.
15120         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15121         (create_alloc_pool): Update statistics.
15122         (free_alloc_pool): Likewise.
15123         (pool_alloc): Likewise.
15124         (output_info): New structure
15125         (print_statistics, dump_alloc_pool_statistics): New function.
15126         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15127         (dump_alloc_pool_statistics): Declare.
15128         * toplev.c (finalize):  Dump statistics.
15129
15130         * reload.c (secondary_memlocs_elim_used): New static variable.
15131         (get_secondary_mem): Update it.
15132         (find_reloads): Use it.
15133
15134 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15135
15136         * toplev.c: Fix broken checkin of 2003-12-30, again.
15137
15138 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15139
15140         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15141         s390*-*-* targets by specifying a 'nop' insn.
15142         * configure: Regenerate.
15143
15144 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15145
15146         PR target/11475
15147         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15148
15149 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15150
15151         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15152         of addr when creating MEM copy.
15153
15154 2004-01-29  Devang Patel  <dpatel@apple.com>
15155
15156         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15157
15158 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15159
15160         PR inline-asm/6162
15161         * reload.c (find_reloads): Only support one pair of commutative
15162         operands.
15163
15164 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15165
15166         PR java/13824
15167         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15168         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15169         recursion.
15170
15171 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15172
15173         * config/frv/frv.c: Don't mention deprecated macros in
15174         comments.  Remove some target-independent comments about
15175         target macros.
15176         * config/frv/frv.h: Likewise.
15177
15178 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15179
15180         * cfghooks.c (split_block): Set probability and count of the
15181         new edge.
15182
15183 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
15184
15185         * dwarf2out.c (struct die_struct): Added field decl_id.
15186         (decl_die_table): Changed to hash table.
15187         (decl_die_table_allocated): Deleted.
15188         (decl_die_table_in_use): Deleted.
15189         (DECL_DIE_TABLE_INCREMENT): Deleted.
15190         (decl_die_table_hash): New function.
15191         (decl_die_table_eq): New function.
15192         (lookup_decl_die): Lookup in a hash table.
15193         (equate_decl_number_to_die): Insert into a hash table.
15194         (dwarf2out_init): Init hash table decl_die_table.
15195
15196 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15197
15198         PR optimization/13424
15199         * expr.c (store_constructor): Revert 2003-12-03 change.
15200
15201         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15202         expected before returning early.  Avoid sharing RTL if they
15203         need to be changed.
15204
15205         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15206         handling so that memory attributes are preserved.  Don't call
15207         ix86_set_move_mem_attrs.
15208         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15209         (ix86_expand_clrstr): Rename src argument to
15210         dst.  Rework rep_stos and strset handling so that memory attributes
15211         are preserved.
15212         (ix86_expand_strlen): Pass src argument to
15213         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15214         memory attributes are preserved.
15215         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15216         change_address instead of gen_rtx_MEM.
15217         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15218         expanders.
15219         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15220         strmovqi, strmovqi_rex64): Remove.
15221         (rep_mov*, strmov*): Prefix insn names with *.
15222         (strset, strset_singleop, rep_stos): New expanders.
15223         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15224         strsetqi, strsetqi_rex64): Remove.
15225         (rep_stos*, strset*): Prefix insn names with *.
15226         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15227         to SImode.
15228         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15229         are preserved.
15230         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15231         Prefix insn names with *.
15232         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15233         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15234         (strlenqi_1): New expander.
15235         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15236
15237 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15238
15239         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15240         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15241         verify_flow_info): Declaration removed.
15242         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15243         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15244         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15245         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15246         instead of delete_block.
15247         * cfghooks.c: Include timevar.h and toplev.h.
15248         (cfg_hooks): Define here.
15249         (verify_flow_info, dump_bb): Moved from cfg.c.
15250         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15251         split_block, split_block_after_labels, move_block_after,
15252         delete_basic_block, split_edge, create_basic_block,
15253         create_empty_bb, can_merge_blocks_p, merge_blocks,
15254         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15255         New functions.
15256         * cfghooks.h (struct cfg_hooks): Added fields name,
15257         make_forwarder_block, tidy_fallthru_edge and
15258         move_block_after. Changed type of verify_flow_info, dump_bb,
15259         split_block fields. Renamed cfgh_split_edge and delete_block
15260         fields.
15261         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15262         split_block, delete_block, split_edge, create_basic_block,
15263         can_merge_blocks_p, merge_blocks): Macros removed.
15264         (cfg_hooks): Do not export.
15265         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15266         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15267         move_block_after, delete_basic_block, split_edge, create_basic_block,
15268         create_empty_bb, can_merge_blocks_p, merge_blocks,
15269         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15270         Declare.
15271         (cfg_layout_rtl_cfg_hooks): Declare.
15272         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15273         New functions.
15274         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15275         (redirect_edge_with_latch_update): Removed.
15276         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15277         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15278         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15279         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15280         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15281         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15282         cfghooks.c.
15283         (rtl_create_basic_block): Coding style fix.
15284         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15285         rtl_make_forwarder_block): New functions.
15286         (update_cfg_after_block_merging): Removed.
15287         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15288         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15289         to dump_bb.
15290         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15291         find_if_case_2): Don't update dominators.
15292         * timevar.def (TV_CFG_VERIFY): New.
15293         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15294         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15295         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15296         (remove_bbs): Don't call remove_bbs.
15297         (create_preheader): Use make_forwarder_block.
15298         (mfb_keep_just, mfb_update_loops): New static functions.
15299
15300 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15301
15302         * config/avr/avr.h: Remove target-independent comments about
15303         target macros.
15304
15305 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15306
15307         * timevar.c (timevar_print): Mention when checking is enabled.
15308
15309 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15310
15311         * c-lex.c (c_lex): Rename to...
15312         (c_lex_with_flags): Add new parameter to get CPP flags.
15313         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15314         * c-pragma.h (c_lex_with_flags): Declare.
15315
15316 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15317
15318         * config/mcore/mcore.c (mcore_external_libcall): Add a
15319         comment.
15320         (mcore_return_in_memory): Likewise.
15321
15322 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15323
15324         * config/mcore/mcore-protos.h: Remove the prototype for
15325         mcore_setup_incoming_varargs.
15326         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15327         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15328         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15329         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15330         (TARGET_STRUCT_VALUE_RTX): Likewise.
15331         (TARGET_RETURN_IN_MEMORY): Likewise.
15332         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15333         (mcore_setup_incoming_varargs): Make it static.  Receive the
15334         first argument by reference.  Add argument second_time.
15335         (mcore_external_libcall): New.
15336         (mcore_return_in_memory): Likewise.
15337         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15338         (PROMOTE_FUNCTION_RETURN): Likewise.
15339         (STRUCT_VALUE): Likewise.
15340         (RETURN_IN_MEMORY): Likewise.
15341         (SETUP_INCOMING_VARARGS): Likewise.
15342         (PROMOTE_PROTOTYPES): Likewise.
15343         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15344
15345 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15346
15347         * config/m32r/m32r-protos.h: Remove the prototype for
15348         m32r_setup_incoming_varargs.
15349         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15350         (TARGET_STRUCT_VALUE_RTX): Likewise.
15351         (TARGET_RETURN_IN_MEMORY): Likewise.
15352         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15353         (m32r_return_in_memory): New.
15354         (m32r_setup_incoming_varargs): Make it static.
15355         * config/m32r/m32r.h: Remove #undef of
15356         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15357         definitions of PROMOTE_FUNCTION_ARGS and
15358         PROMOTE_FUNCTION_RETURN.
15359         (PROMOTE_PROTOTYPES): Remove.
15360         (RETURN_IN_MEMORY): Likewise.
15361         (STRUCT_VALUE): Likewise.
15362
15363 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15364
15365         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15366         (TARGET_STRUCT_VALUE_RTX): Likewise.
15367         (m68k_struct_value_rtx): Likewise.
15368         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15369         STRUCT_VALUE_REGNUM.
15370         (PROMOTE_PROTOTYPES): Remove.
15371         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15372         STRUCT_VALUE_REGNUM.
15373         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15374         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15375
15376 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15377
15378         * config/stormy16/stormy16.c
15379         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15380         TARGET_BUILD_BUILTIN_VA_LIST.
15381
15382 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15383
15384         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15385         (TARGET_STRUCT_VALUE_RTX): Likewise.
15386         (TARGET_RETURN_IN_MEMORY): Likewise.
15387         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15388         (v850_return_in_memory): Likewise.
15389         (v850_setup_incoming_varargs): Likewise.
15390         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15391         (SETUP_INCOMING_VARARGS): Likewise.
15392         (RETURN_IN_MEMORY): Likewise.
15393         (STRUCT_VALUE): Likewise.
15394
15395 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15396
15397         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15398         (fr30_setup_incoming_varargs): Don't use
15399         STRICT_ARGUMENT_NAMING.
15400         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15401         (STRICT_ARGUMENT_NAMING): Likewise.
15402
15403 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15404
15405         * config/frv/frv-protos.h: Remove the prototype for
15406         frv_expand_builtin_saveregs.
15407         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15408         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15409         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15410         STRUCT_VALUE_REGNUM.
15411         (frv_expand_builtin_saveregs): Make it static.
15412         (frv_struct_value_rtx): New.
15413         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15414
15415 2004-01-29  Jan Hubicka  <jh@suse.cz>
15416
15417         PR c++/12850
15418         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15419         initial pointers.
15420         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15421         for functions that will be only inlined.
15422         (cgraph_mark_function_to_output): Likewise.
15423         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15424         do not clear function body.
15425         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15426         (tree_rest_of_compilation): Reorganize the logic releasing function
15427         body to use callgraph datastructure.
15428
15429 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15430
15431         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15432         to register_operand.
15433
15434 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15435
15436         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15437         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15438         match_operand expressions so that all match_dups appear
15439         lexically after their corresponding match_operands.
15440
15441 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15442
15443         * config/h8300/h8300.c (WORD_REG_USED): Use
15444         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15445         (compute_saved_regs): Likewise.
15446         (h8300_expand_prologue): Likewise.  Allocate locals after
15447         saving registers.
15448         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15449         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15450         registers.
15451         (h8300_initial_elimination_offset): Adjust for the new frame
15452         layout, which swaps flips the order of locals and saved
15453         registers.
15454         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15455         (HARD_FRAME_POINTER_REGNUM): New.
15456         (ELIMINABLE_REGS): Add an elimination rule from
15457         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15458         (REGISTER_NAMES): Add fp.
15459         * config/h8300/h8300.md (FP_REG): Change to 11.
15460         (HFP_REG): New.
15461
15462 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15463
15464         * genrecog.c (write_node): Remove a useless local variable.
15465
15466 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15467
15468         * Makefile.in (options.c options.h): Use stamp file s-options to
15469         avoid unnecessary rebuilds.
15470         (options.o): New target listing dependencies.
15471         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15472         (STAGESTUFF): Add s-gtyp-gen.
15473
15474 2004-01-28  Richard Henderson  <rth@redhat.com>
15475
15476         * ggc.h (ggc_free): Declare.
15477         * ggc-common.c (ggc_realloc): Use it.
15478         * ggc-page.c: Remove lots of inline markers.
15479         (globals): Add free_object_list.
15480         (ggc_alloc): Tidy.
15481         (ggc_free, validate_free_objects): New.
15482         (poison_pages): Provide default.
15483         (ggc_collect): Call validate_free_objects; emit markers to
15484         the debug file.
15485
15486 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15487             Jim Wilson  <wilson@specifixinc.com>
15488
15489         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15490         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15491         scratch pointer.
15492         (ia64_secondary_reload_class): Delete case GR_REGS.
15493         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15494         Do not allocate a scratch register.
15495         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15496
15497 2004-01-28  Jan Hubicka  <jh@suse.cz>
15498
15499         * gcse.c (bypass_block): Prevent edges to be unified when we are
15500         about to emit compenstation code.
15501
15502 2004-01-28  Nick Clifton  <nickc@redhat.com>
15503
15504         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15505         the setcwx insn into a register.
15506
15507 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15508
15509         * config/fp-bit.c (pack_d): When using paired doubles to implement
15510         a long double, round the high part separately.
15511         (unpack_d): Fix the case in which the high part is a power of two
15512         and the low part is a nonzero value of the opposite sign.
15513
15514 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15515
15516         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15517         (TARGET_STRUCT_VALUE_RTX): Likewise.
15518         (c4x_external_libcall): Likewise.
15519         (c4x_struct_value_rtx): Likewise.
15520         * config/c4x/c4x.h: Remove.
15521         (STRUCT_VALUE_REGNUM): Likewise.
15522         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15523
15524 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15525
15526         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15527         (TARGET_STRUCT_VALUE_RTX): Likewise.
15528         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15529         (STRUCT_VALUE): Likewise.
15530         (PROMOTE_PROTOTYPES): Likewise.
15531
15532 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15533
15534         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15535         CONST_INT before using INTVAL.
15536
15537 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15538
15539         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15540         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15541         frame if !TARGET_BACKCHAIN.
15542         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15543         TARGET_BACKCHAIN.
15544         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15545
15546 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15547
15548         * ia64.c (ia64_function_arg): When placing HFAs in integer
15549         registers, do not special case the mode used for complex
15550         types.  Do not advance int_regs until the current register
15551         is full.
15552
15553 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15554
15555         PR target/7297
15556         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15557
15558 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15559
15560         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15561         slow, unaligned loads and stores while debugging.  Fix formatting.
15562
15563 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15564
15565         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15566         of computing wmode.
15567         (restore_stack_nonlocal): Same.
15568
15569 2004-01-27  Devang Patel <dpatel@apple.com>
15570
15571         * Makefile.in (dwarf2out.o): Depend on input.h
15572         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15573         imported_module_or_decl.
15574         (xcoff_debug_hooks): Same.
15575         * sdbout.c (sdb_debug_hooks): Same.
15576         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15577         * debug.c (do_nothing_debug_hooks): Same.
15578         (debug_nothing_tree_tree): New function.
15579         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15580         * dwarf2out.c: Include input.h.
15581         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15582         (remove_child_TAG): New function.
15583         (dwarf_tag_name): Handle DW_TAG_imported_module.
15584         (gen_subprogram_die): Equate decl number to declaration die. Do not
15585         remove all children dies while reusing declaration die for definition.
15586         Instead, selectively remove only formal parameters.
15587         (gen_variable_die): Equate variable decl to declaration die.
15588         (gen_field_die): Equate field decl to line number.
15589         (force_namespace_die): Replace it with ...
15590         (force_decl_die): ... this.
15591         (force_type_die): New function.
15592         (setup_namespace_context): Replace use of force_namespace_die() with
15593         force_decl_die().
15594         (gen_namespace_die): Same.
15595         (dwarf2out_imported_module_or_decl): New function.
15596
15597 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15598
15599         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15600         on CQImode and CHImode incoming arguments in register a7.
15601         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15602         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15603         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15604         xtensa_copy_incoming_a7 before reload.
15605
15606 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15607
15608         * coverage.c (get_coverage_counts): Give a different message
15609         if flag_guess_branch_prob is set.
15610         * predict.c (counts_to_freqs): Return an int.
15611         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15612         calculate estimates.
15613
15614 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15615
15616         * config/iq2000/iq2000-protos.h: Remove the prototype for
15617         iq2000_setup_incoming_varargs.
15618         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15619         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15620         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15621         (TARGET_STRUCT_VALUE_RTX): Likewise.
15622         (TARGET_RETURN_IN_MEMORY): Likewise.
15623         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15624         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15625         (iq2000_return_in_memory): Likewise.
15626         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15627         first argument by reference.
15628         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15629         (PROMOTE_FUNCTION_RETURN): Likewise.
15630         (PROMOTE_PROTOTYPES): Likewise.
15631         (RETURN_IN_MEMORY): Likewise.
15632         (STRUCT_VALUE): Likewise.
15633         (SETUP_INCOMING_VARARGS): Likewise.
15634         (STRICT_ARGUMENT_NAMING): Likewise.
15635
15636 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15637
15638         * fixinc/fixinc.c (test_test): Initialize res.
15639         (start_flexer): Initialize pz_cmd_save.
15640
15641 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15642
15643         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15644         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15645
15646 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15647
15648         PR 7198
15649         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15650         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15651         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15652         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15653         Possibly rename pattern for consistency.
15654         Remove ??? comments suggesting that this be done.
15655         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15656         New patterns.
15657         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15658         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15659         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15660         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15661         Update to match.
15662
15663 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15664
15665         * config/arm/arm.c (output_return_instruction): Only restore IP
15666         into SP if frame_pointer_needed.
15667
15668 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15669
15670         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15671         for SCmode and DCmode if ARCH32.
15672         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15673         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15674         if ARCH32.
15675         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15676         if ARCH32.
15677         (BASE_OUTGOING_VALUE_REG): Likewise.
15678
15679 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15680
15681         PR target/10904
15682         PR target/13058
15683         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15684         Forbid mode changes from SImode for lower FP regs if ARCH64.
15685
15686 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15687
15688         * Makefile.in (bt-load.o): Depend on except.h.
15689         * bt-load.c (except.h): #include.
15690         (compute_defs_uses_and_gen): If insn at end of BB can throw
15691         within this function, consider registers used by it unavailable for
15692         btr migration.
15693         (move_btr_def): If insn at end of BB can throw, insert before rather
15694         than after.
15695
15696         * flags.h (flag_btr_bb_exclusive): Declare.
15697         * toplev.c (flag_btr_bb_exclusive): New variable.
15698         (f_options): Add btr-bb-exclusive.
15699         * bt-load.c (augment_live_range): Restore old behaviour if
15700         flag_btr_bb_exclusive is set.
15701         * common.opt: Add entry for -fbtr-bb-exclusive.
15702         * opts.c (common_handle_options): Same.
15703         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15704
15705         * bt-load.c (btrs_live_at_end): New variable.
15706         (compute_defs_uses_and_gen): Compute its pointed-to array.
15707         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15708         (augment_live_range): When augmenting with a new dominator,
15709         use only its btrs_live_at_end set, but also add in the full set
15710         of the old dominator.
15711         (btr_def_live_range): Use btrs_live_at_end.
15712         (move_btr_def): Set other_btr_uses_before_def, and move new set
15713         to the end of the basic block, if appropriate.
15714         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15715
15716         * bt-load.c (basic_block_freq): Remove outdated comment.
15717
15718 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15719
15720         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15721         (PREDICATE_CODES): Remove duplicate.
15722         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15723         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15724         (MASK_PROFILE_KERNEL): Adjust define.
15725
15726 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15727
15728         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15729         of long string literals from 32 bytes to sizeof (void *) when !-Os
15730         and to 1 with -Os.
15731
15732 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15733
15734         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15735         constant addresses in the normal mode.
15736
15737 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15738
15739         * system.h (CHAR_BITFIELD): Delete.
15740         (BOOL_BITFIELD): New.
15741         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15742         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15743
15744 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15745
15746         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15747         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15748         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15749         (TARGET_STRUCT_VALUE_RTX): Likewise.
15750         (TARGET_RETURN_IN_MEMORY): Likewise.
15751         (arc_return_in_memory): Likewise.
15752         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15753         (PROMOTE_FUNCTION_RETURN): Likewise.
15754         (RETURN_IN_MEMORY): Likewise.
15755         (STRUCT_VALUE): Likewise.
15756
15757 2004-01-26  Richard Henderson  <rth@redhat.com>
15758
15759         * c-parse.in (extension): Use itype.
15760         (SAVE_EXT_FLAGS): Don't allocate a tree.
15761         (RESTORE_EXT_FLAGS): Don't read a tree.
15762
15763 2004-01-26  Jan Hubicka  <jh@suse.cz>
15764
15765         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15766         to datastructure to be recycled.
15767
15768 2004-01-25  Jan Hubicka  <jh@suse.cz>
15769
15770         * genextract.c (main): Do not output the memset when not checking.
15771
15772 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15773
15774         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15775         switch statement instead of a chain of if statements.
15776
15777 2004-01-26  Jeff Law  <law@redhat.com>
15778
15779         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15780         acute accents for Petur Runolfsson's entry.
15781
15782 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15783
15784         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15785         (TARGET_RETURN_IN_MEMORY): Likewise.
15786         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15787         (RETURN_IN_MEMORY): Likewise.
15788
15789 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15790
15791          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15792          unaligned load/store into smaller loads and stores.
15793
15794 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15795
15796         * function.c (assign_parms): Do not assign
15797         long long argument to memory in prologue if
15798         is it loaded into register.
15799
15800 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15801
15802          PR middle-end/13779
15803          * expr.c (emit_group_load): split constant
15804          correctly into register components of PARALLEL insn.
15805
15806 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15807
15808         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15809         Use adjust_address_nv directly with appropriate mode.
15810         (restore_stack_nonlocal): Ditto.
15811
15812 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15813
15814         * config/xtensa/xtensa-protos.h: Remove the prototype for
15815         xtensa_builtin_saveregs.
15816         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15817         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15818         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15819         (TARGET_STRUCT_VALUE_RTX): Likewise.
15820         (TARGET_RETURN_IN_MEMORY): Likewise.
15821         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15822         (xtensa_builtin_saveregs): Make it static.
15823         (xtensa_return_in_memory): New.
15824         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15825         (PROMOTE_FUNCTION_RETURN): Likewise.
15826         (PROMOTE_PROTOTYPES): Likewise.
15827         (STRUCT_VALUE): Likewise.
15828         (RETURN_IN_MEMORY): Likewise.
15829         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15830
15831 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15832
15833         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15834         (arm_setup_incoming_varargs): Likewise.
15835         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15836
15837 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15838
15839         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15840         (cris_setup_incoming_varargs): Likewise.
15841         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15842
15843 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15844
15845         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15846         (ns32k_struct_value_rtx): Likewise.
15847         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15848         NS32K_STRUCT_VALUE_REGNUM.
15849
15850 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15851
15852         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15853         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15854         (TARGET_STRUCT_VALUE_RTX): Likewise.
15855         (arm_struct_value_rtx): Likewise.
15856         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15857         (STRUCT_VALUE): Likewise.
15858         (STRUCT_VALUE_REGNUM): Likewise.
15859         (PROMOTE_PROTOTYPES): Likewise.
15860
15861 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15862
15863         * config/ia64/ia64-protos.h: Remove the prototype for
15864         ia64_setup_incoming_varargs and ia64_return_in_memory.
15865         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15866         (TARGET_RETURN_IN_MEMORY): Likewise.
15867         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15868         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15869         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15870         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15871         (ia64_return_in_memory): Make it static.  Change the return
15872         type to bool from int.  Add an argument.
15873         (ia64_struct_value_rtx): New.
15874         * config/ia64/ia64.h: Remove commented-out definitions of
15875         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15876         PROMOTE_PROTOTYPES.
15877         (RETURN_IN_MEMORY): Remove.
15878         (STRUCT_VALUE_REGNUM): Likewise.
15879         (STRICT_ARGUMENT_NAMING): Likewise.
15880
15881 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15882
15883         PR target/13666
15884         * config/sparc/sparc.c (function_arg_union_value): New function.
15885         (function_arg): Use it to deal with unions.
15886         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15887         Replace a conditional statement by a simpler one.
15888
15889 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15890
15891         * config/mips/mips.c (mips16_optimize_gp): Delete.
15892         (mips_reorg): Don't call it.
15893
15894 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15895
15896         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15897         (floatunsqihf2): Remove operand 6.
15898         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15899         fix patterns.
15900         (ldi_conditional, ldf_conditional): Validate operands.
15901
15902 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15903
15904         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15905         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15906
15907 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15908
15909         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15910         memory references if TARGET_EXPOSE_LDP nonzero.
15911
15912 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15913
15914         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15915
15916 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15917
15918         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15919         invalid operand combinations.
15920
15921 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15922
15923         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15924         c4x_legitimate_address_p.  Fix post_modify check.
15925
15926         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15927         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15928
15929 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15930
15931         * config/pa/pa-protos.h: Remove the prototype for
15932         hppa_builtin_saveregs.  Add a prototype for
15933         pa_return_in_memory.
15934         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15935         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15936         (TARGET_STRUCT_VALUE_RTX): Likewise.
15937         (TARGET_RETURN_IN_MEMORY): Likewise.
15938         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15939         (pa_struct_value_rtx): Likewise.
15940         (pa_return_in_memory): Likewise.
15941         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15942         PA_STRUCT_VALUE_REGNUM.
15943         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15944         (EXPAND_BUILTIN_SAVEREGS): Remove.
15945         (PROMOTE_PROTOTYPES): Likewise.
15946         (PROMOTE_FUNCTION_RETURN): Likewise.
15947
15948 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15949
15950         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15951         (TARGET_STRUCT_VALUE_RTX): Likewise.
15952         (vax_struct_value_rtx): Likewise.
15953         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15954         VAX_STRUCT_VALUE_REGNUM.
15955         (PROMOTE_PROTOTYPES): Remove.
15956
15957 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15958
15959         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15960
15961 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15962
15963         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15964         and MIPS64 have HI/LO interlocks.  Update comment.
15965
15966 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15967
15968         * config/stormy16/stormy16-protos.h: Remove the prototype for
15969         xstormy16_setup_incoming_varargs.
15970         * config/stormy16/stormy16.c
15971         (xstormy16_setup_incoming_varargs): Remove.
15972         (xstormy16_return_in_memory): New.
15973         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15974         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15975         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15976         (TARGET_STRUCT_VALUE_RTX): Likewise.
15977         (TARGET_RETURN_IN_MEMORY): Likewise.
15978         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15979         (PROMOTE_FUNCTION_RETURN): Likewise
15980         (PROMOTE_PROTOTYPES): Likewise
15981         (RETURN_IN_MEMORY): Likewise
15982         (STRUCT_VALUE): Likewise
15983         (SETUP_INCOMING_VARARGS): Likewise
15984
15985 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15986
15987         * config/mips/mips.c (mips_offset_within_object_p): New function.
15988         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15989         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15990         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15991
15992 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15993
15994         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15995         (PROMOTE_FUNCTION_RETURN): Likewise.
15996
15997 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15998
15999         * config/mn10300/mn10300-protos.h: Remove the prototype for
16000         mn10300_builtin_saveregs.
16001         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16002         (TARGET_STRUCT_VALUE_RTX): Likewise.
16003         (TARGET_RETURN_IN_MEMORY): Likewise.
16004         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16005         (mn10300_return_in_memory): Likewise.
16006         (mn10300_builtin_saveregs): Make it static.
16007         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16008         (RETURN_IN_MEMORY): Likewise.
16009         (STRUCT_VALUE): Likewise.
16010         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16011
16012 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16013
16014         PR bootstrap/13853
16015         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16016
16017 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16018
16019         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16020         using ccr.
16021
16022 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16023
16024         * config/i860/i860-protos.h: Remove the prototype for
16025         i860_saveregs.
16026         * config/i860/i860.c (i860_saveregs): Make it static.
16027         (i860_struct_value_rtx): New.
16028         (TARGET_STRUCT_VALUE_RTX): Likewise.
16029         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16030         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16031         I860_STRUCT_VALUE_REGNUM.
16032         (EXPAND_BUILTIN_SAVEREGS): Remove.
16033
16034 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16035
16036         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16037         (TARGET_RETURN_IN_MEMORY): Likewise.
16038         (m68hc11_struct_value_rtx): Likewise.
16039         (m68hc11_return_in_memory): Likewise.
16040         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16041         of PROMOTE_PROTOTYPES.
16042         (RETURN_IN_MEMORY): Remove.
16043         (STRUCT_VALUE_REGNUM): Likewise.
16044
16045 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16046
16047         * config/mmix/mmix-protos.h: Remove the prototype for
16048         mmix_setup_incoming_varargs.
16049         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16050         (TARGET_STRUCT_VALUE_RTX): Likewise.
16051         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16052         (mmix_setup_incoming_varargs): Make it static.
16053         (mmix_struct_value_rtx): New.
16054         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16055         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16056         (STRUCT_VALUE_REGNUM): Remove.
16057         (SETUP_INCOMING_VARARGS): Likewise.
16058
16059 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16060
16061         * config/mips/mips-protos.h: Remove the prototypes for
16062         mips_setup_incoming_varargs and mips_return_in_memory.
16063         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16064         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16065         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16066         (TARGET_STRUCT_VALUE_RTX): Likewise.
16067         (TARGET_RETURN_IN_MEMORY): Likewise.
16068         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16069         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16070         (mips_setup_incoming_varargs): Match the prototype for
16071         TARGET_SETUP_INCOMING_VARARGS.
16072         (mips_return_in_memory): Make it static.  Add argument fntype.
16073         (mips_strict_argument_naming): New.
16074         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16075         (PROMOTE_FUNCTION_ARGS): Likewise.
16076         (PROMOTE_FUNCTION_RETURN): Likewise.
16077         (STRUCT_VALUE): Likewise.
16078         (RETURN_IN_MEMORY): Likewise.
16079         (SETUP_INCOMING_VARARGS): Likewise.
16080         (STRICT_ARGUMENT_NAMING): Likewise.
16081
16082 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16083
16084         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16085         (TARGET_RETURN_IN_MEMORY): Likewise.
16086         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16087         (ip2k_return_in_memory): Likewise.
16088         (ip2k_setup_incoming_varargs): Likewise.
16089         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16090         (STRUCT_VALUE): Likewise.
16091         (STRUCT_VALUE_INCOMING): Likewise.
16092         (SETUP_INCOMING_VARARGS): Likewise.
16093
16094 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16095
16096         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16097         (TARGET_RETURN_IN_MEMORY): Likewise.
16098         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16099         (avr_return_in_memory): Remove.
16100         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16101         (STRUCT_VALUE): Likewise.
16102         (STRUCT_VALUE_INCOMING): Likewise.
16103         (STRICT_ARGUMENT_NAMING): Likewise.
16104
16105 2004-01-25  Jan Hubicka  <jh@suse.cz>
16106
16107         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16108
16109 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16110
16111         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16112         (mips_regno_mode_ok_for_base_p): Declare.
16113         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16114         (FRAME_POINTER_REGNUM): Renumber to 78.
16115         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16116         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16117         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16118         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16119         (REG_MODE_OK_FOR_BASE_P): Likewise.
16120         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16121         entry for 77 to "$arg" and entry for 78 to "$frame".
16122         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16123         (mips_reg_mode_ok_for_base_p): Remove.
16124         (mips_regno_mode_ok_for_base_p): New function, derived from old
16125         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16126         restrictions unless we're being strict.
16127         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16128
16129 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16130
16131         * c-common.h: Fix comment typos.
16132         * c-decl.c: Likewise.
16133         * cgraphunit.c: Likewise.
16134         * combine.c: Likewise.
16135         * et-forest.c: Likewise.
16136         * flow.c: Likewise.
16137         * function.c: Likewise.
16138         * ifcvt.c: Likewise.
16139         * integrate.c: Likewise.
16140         * jump.c: Likewise.
16141         * postreload.c: Likewise.
16142         * varray.c: Likewise.
16143
16144 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16145
16146         * doc/frontends.texi: Update copyright.
16147         * doc/gcov.texi: Likewise.
16148         * doc/gty.texi: Likewise.
16149         * doc/sourcebuild.texi: Likewise.
16150         * doc/standards.texi: Likewise.
16151
16152 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16153
16154         PR target/12978
16155         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16156         Remove movstrqi_small because it conflicts with movstrqi_large.
16157
16158 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16159
16160         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16161         (TARGET_STRUCT_VALUE_RTX): Likewise.
16162         (cris_struct_value_rtx): Likewise.
16163         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16164         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16165         STRUCT_VALUE_REGNUM.
16166         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16167
16168 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16169
16170         PR bootstrap/13848
16171         * cse.c (cse_cc_succs): Change the mode of the source expression
16172         as soon as decide we need a new mode.  Don't permit changing modes
16173         if we found a match in a successor block.
16174         (cse_condition_code_reg): Save original mode of source expression
16175         so that we know whether we have to change the mode in other
16176         insns.
16177
16178 2004-01-24  Jan Hubicka  <jh@suse.cz>
16179
16180         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16181         widen_memory_access):  Return early when there is nothing to change.
16182
16183 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16184
16185         * simplify-rtx.c (simplify_relational_operation): Don't
16186         simplify address == constant into address + -constant == 0.
16187
16188 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16189
16190         * gcc.c (process_command): Don't internationalize the
16191         Copyright message.
16192         * mips-tfile.c (main): Likewise.
16193
16194 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16195
16196         * cse.c: (cse_cc_succs) Fix comparison warning.
16197
16198 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16199
16200         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16201
16202 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16203
16204         * config/h8300/h8300-protos.h: Provide prototypes for
16205         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16206         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16207         (h8300_rtx_ok_for_base_p): Likewise.
16208         (h8300_legitimate_address_p): Likewise.
16209         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16210         h8300_legitimate_constant_p.
16211         (RTX_OK_FOR_BASE_P): Remove.
16212         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16213
16214 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16215
16216         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16217         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16218         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16219         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16220         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16221         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16222         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16223         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16224
16225 2004-01-24  Jan Hubicka  <jh@suse.cz>
16226
16227         * cselib.c (remove_useless_values):  Do not access discarded values.
16228
16229 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16230
16231         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16232         arrays.
16233
16234 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16235
16236         * recog.c: Fix a typo in copyright.
16237
16238 2004-01-23  Andrew Pinski  <apinski@apple.com>
16239
16240         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16241         (call_value): Likewise.
16242
16243 2004-01-23  Richard Henderson  <rth@redhat.com>
16244
16245         PR opt/12941
16246         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16247         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16248         if SHIFT_COUNT_TRUNCATED is set.
16249
16250 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16251
16252         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16253         separate real and imaginary parts.
16254         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16255
16256 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16257
16258         PR target/13674
16259         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16260         loading into GPR.
16261
16262 2004-01-23  Jan Hubicka  <jh@suse.cz>
16263
16264         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16265         change.
16266
16267         * alloc-pool.c (align_four): Kill.
16268         (create_alloc_pool): Align size to eight.
16269         (free_alloc_pool, free_pool): Invalidate deallocated data.
16270
16271 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16272
16273         PR gcc/1532
16274         * cse.c (cse_change_cc_mode): New static function.
16275         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16276         (cse_condition_code_reg): New function.
16277         * rtl.h (cse_condition_code_reg): Declare.
16278         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16279         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16280         cc_modes_compatible.
16281         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16282         (TARGET_CC_MODES_COMPATIBLE): Define.
16283         (TARGET_INITIALIZER): Add new initializers.
16284         * targhooks.c (default_cc_modes_compatible): New function.
16285         * targhooks.c (default_cc_modes_compatible): Declare.
16286         * hooks.c (hook_bool_intp_intp_false): New function.
16287         * hooks.h (hook_bool_intp_intp_false): Declare.
16288         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16289         (TARGET_CC_MODES_COMPATIBLE): Define.
16290         (ix86_fixed_condition_code_regs): New static function.
16291         (ix86_cc_modes_compatible): Likewise.
16292         * doc/tm.texi (Condition Code): Document new hooks.
16293
16294 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16295
16296         * fixinc/inclhack.def (bad_lval): Renamed to ...
16297         (alpha_bad_lval): ... this.
16298         Removed file list.
16299         Restrict to alpha*-dec-osf*.
16300         * fixinc/fixincl.x: Regenerate.
16301         * fixinc/tests/base/dirent.h: Remove, moving test ...
16302         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16303
16304 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16305
16306         PR c/13814
16307         * c-decl.c (diagnose_mismatched_decls): Also discard a
16308         built-in if we encounter an old-style definition with the
16309         same name.
16310
16311 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16312
16313         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16314         set to default{32,64}.
16315
16316 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16317
16318         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16319         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16320
16321 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16322             Olivier Hainque  <hainque@act-europe.fr>
16323
16324         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16325         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16326
16327 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16328
16329         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16330         size for minipool references.
16331
16332 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16333
16334         * real.c (real_floor, real_ceil): Tweak to allow input and output
16335         arguments to overlap.
16336         (real_round): New function to implement round(3m) semantics.
16337         * real.h (real_round): Prototype here.
16338         * builtins.c (fold_builtin_round): New function to constant fold
16339         round, roundf and roundl.
16340         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16341
16342 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16343
16344         PR optimization/13819
16345         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16346         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16347         (sh_handle_sp_switch_attribute): Remove warning.
16348
16349 2003-11-30  Jan Hubicka  <jh@suse.cz>
16350
16351         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16352
16353 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16354
16355         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16356         may or may not return non-NIL.
16357         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16358         check CANNOT_CHANGE_MODE_CLASS
16359
16360 2004-01-23  Jan Hubicka  <jh@suse.cz>
16361
16362         * basic-block.h (PROP_POSTRELOAD): New macro.
16363         (CLEANUP_LOG_LINKS): New.
16364         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16365         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16366
16367         * cselib.c (value_pool): New.
16368         (new_cselib_val): Use pool.
16369         (cselib_init): Initialize value_pool
16370         (cselib_finish): Free pool.
16371
16372 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16373
16374         * config/sparc/sparc.c (scan_record_type): New function.
16375         (function_arg_slotno): Use it to determine which kinds of
16376         registers the record can be passed in.
16377
16378 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16379
16380         * config/pa/fptr.c: Fix old-style definition.
16381
16382 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16383
16384         PR optimization/13724
16385         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16386         represents the zero bits produced by a ZERO_EXTEND operation.
16387
16388 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16389
16390         PR optimization/13821
16391         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16392         correctly calculate the lowpart offset of the contracted subreg.
16393
16394 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16395
16396         * doc/invoke.texi (Optimize Options): Note that --param arguments
16397         are subject to change without notice.
16398
16399 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16400
16401         * config.gcc (mips-sgi-irix6*o32): Removed.
16402         * config/mips/iris6-o32-as.h: Likewise.
16403         * config/mips/iris6-o32-gas.h: Likewise.
16404         * config/mips/iris6-o32.h: Likewise.
16405
16406 2004-01-22  Jan Hubicka  <jh@suse.cz>
16407
16408         * cfgcleanup.c (first_pass): New static variable.
16409         (try_forward_edges):  Add work limiting check for threading.
16410         (try_crossjump_bb):  Add work limiting check for crossjumping.
16411         (try_optimize_cfg):  Maintain first pass variable.
16412
16413 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16414
16415         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16416         handles complex and vector modes.
16417
16418 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16419
16420         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16421         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16422         (STRICT): Likewise.
16423
16424 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16425
16426         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16427         (genrtl_for_stmt): Remove emit_nop calls.
16428
16429 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16430
16431         PR target/13713
16432         PR target/13324
16433         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16434         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16435         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16436
16437 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16438
16439         * config/arm/arm.c: Include "debug.h".
16440         (thumb_pushpop): Take two new arguments.  Add some commentary.
16441         Output frame information when pushing.
16442         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16443         thumb_pushpop.
16444         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16445         offset, and pass it to thumb_pushpop.  Output CFI information.
16446         (thumb_expand_prologue): Add some frame-related markers and notes.
16447
16448 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16449
16450         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16451         for TARGET_64BIT.
16452         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16453         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16454
16455 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16456             Paolo Bonzini  <bonzini@gnu.org>
16457
16458         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16459         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16460         * rtl.h (subreg_lsb_1): Prototype here.
16461         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16462         sign extensions.
16463
16464 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16465
16466         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16467         macro need not be defined if jump-tables should contain
16468         relative addresses only when -fPIC or -fPIC is in effect.
16469
16470 2004-01-22  Jan Hubicka  <jh@suse.cz>
16471
16472         * alias.c (reg_base_value): Turn into varray.
16473         (reg_base_value_size): Kill.
16474         (old_reg_base_value): New deletable varray.
16475         (alias_invariant_size): New variable.
16476         (REG_BASE_VALUE): Update to use varray.
16477         (find_base_value): Likewise.
16478         (record_set): Likewise.
16479         (record_base_value): Likewise.
16480         (memrefs_conflict_p): Likewise.
16481         (record_set): Likewise
16482         (record_base_value): Likewise.
16483         (memrefs_conflict_p): Use alias_invariant_size.
16484         (init_alias_analysis): Use varray; set alias_invariant_size;
16485         rescale other arrays to be sized by maxreg.
16486         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16487
16488 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16489
16490         * config/sparc/sparc.c (function_arg_slotno): Use
16491         FLOAT_TYPE_P to detect FP fields in structures.
16492         (function_arg_record_value_1): Likewise.
16493         (function_arg_record_value_2): Likewise.
16494
16495 2004-01-22  Jan Hubicka  <jh@suse.cz>
16496
16497         * function.c (allocate_struct_function): Do not initialize expr, emit
16498         and varasm.
16499         (prepare_function_start): Do it here.
16500         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16501
16502 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16503
16504         PR target/13559
16505         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16506         to 'word_mode' once the first slot has been filled.
16507
16508 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16509
16510         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16511         computation of the number of integer registers required.
16512
16513 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16514
16515         * config/i386/i386.md: Simplify certain comparisons of
16516         const_int.
16517
16518 2004-01-21  Andrew Pinski  <apinski@apple.com>
16519
16520         PR target/13785
16521         * config/rs6000/rs6000.md (call_value): Force operand
16522         1 not operand 0 into a register.
16523
16524 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16525
16526         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16527         unwind-dw2-fde.h: Update copyright.
16528
16529 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16530
16531         * pa-protos.h: Update copyright.
16532         * pa.h: Likewise.
16533         * pa.md: Likewise.
16534
16535 2004-01-21  Caroline Tice  <ctice@apple.com>
16536
16537         PR target/12308
16538         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16539         flags register.
16540         (fix_truncdfdi2): Likewise.
16541         (fix_truncsfdi2): Likewise.
16542         (*fix_truncdi_1): Likewise.
16543         (fix_truncxfsi2): Likewise.
16544         (fix_truncdfsi2): Likewise.
16545         (fix_truncsfsi2): Likewise.
16546         (*fix_truncsi_1): Likewise.
16547         (fix_truncxfhi2): Likewise.
16548         (fix_truncdfhi2): Likewise.
16549         (fix_truncsfhi2): Likewise.
16550         (*fix_trunchi_1): Likewise.
16551
16552 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16553
16554         * alias.c, basic-block.h, c-common.c, c-common.h,
16555         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16556         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16557         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16558         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16559         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16560         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16561         genautomata.c, genconditions.c, genemit.c, genflags.c,
16562         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16563         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16564         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16565         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16566         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16567         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16568         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16569         unwind.h, varray.c, varray.h: Update copyright.
16570
16571 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16572
16573         * config/h8300/coff.h: Update copyright.
16574         * config/h8300/elf.h: Likewise.
16575         * config/h8300/h8300-protos.h: Likewise.
16576         * config/h8300/h8300.c: Likewise.
16577         * config/h8300/h8300.h: Likewise.
16578         * config/h8300/h8300.md: Likewise.
16579
16580 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16581
16582         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16583         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16584         ultrix_unistd): New hacks.
16585         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16586         ULTRIX_CONST2_CHECK): Add checks.
16587         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16588         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16589         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16590         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16591         * fixinc/tests/base/locale.h: New file.
16592         * fixinc/fixincl.x: Rebuilt.
16593
16594 2004-01-21  Andreas Jaeger  <aj@suse.de>
16595             Michael Matz  <matz@suse.de>
16596
16597         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16598
16599 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16600
16601         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16602         _Jv_RegisterClasses through a function pointer.
16603
16604 2004-01-21  Falk Hueffner  <falk@debian.org>
16605
16606         PR target/12898
16607         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16608         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16609         which need multiple instructions to emit.
16610
16611 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16612
16613         * config/m32r/m32r.h (CPP_SPEC): Define.
16614
16615 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16616
16617         * c-decl.c (merge_decls): Kill different_binding_level and
16618         different_tu arguments; simplify throughout.
16619         (duplicate_decls): Likewise.
16620         (pushdecl, merge_translation_unit_decls): Update calls to
16621         duplicate_decls.
16622
16623 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16624
16625         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16626         $(SYSTEM_H).
16627         (print-rtl1.o): Depend on $(SYSTEM_H).
16628
16629 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16630
16631         PR bootstrap/12730
16632         * configure.ac: Delete definition and subsitution of docdir.
16633         Add info, man, srcman and srcinfo to target hooks. Create doc/
16634         directory.
16635         * configure: Regenerate.
16636         * Makefile.in: Don't substitute docdir and delete all references
16637         throughout.
16638         (MAKEINFOFLAGS): Define.
16639         (stmp-docobjdir): Delete.
16640         (INFOFILES, MANFILES): Define.
16641         (info): Call lang.info, srcinfo and lang.srcinfo.
16642         (generated-manpages): Call lang.man, srcman and lang.srcman.
16643         (srcinfo, srcman): New rules to copy back files to source directory.
16644         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16645         (install-man): Revamp rule.
16646         (clean): Update dvi directory.
16647         (distclean): Delete TAGS from front end directorys.
16648         (maintainer-clean): Delete all document files in source directory.
16649
16650         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16651         (objc.srcman, objc.srcinfo): Likewise.
16652
16653 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16654
16655         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16656         (matherr_decl): rename & relocate as exception_structure.
16657         This fix must precede the math_exception fix.
16658
16659 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16660
16661         * fold-const.c (fold_convert): Rename to fold_convert_const.
16662         (fold_convert_const): Change arguments to take a tree_code,
16663         a type and the operand/expression to be converted.  Return
16664         NULL_TREE if no simplification is possible.  Add support for
16665         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16666         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16667         Adjust call to fold_convert to match new fold_convert_const.
16668         Avoid modifying the tree passed to fold in-place.
16669
16670 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16671
16672         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16673         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16674         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16675
16676 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16677
16678         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16679         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16680         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16681         (emit_move_sequence): Check scratch_reg first in various if statements.
16682         Extend source simplification to handle all 64-bit CONST_INTs.
16683         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16684         frame size.
16685         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16686         frame offset calculations.
16687         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16688         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16689         LEGITIMATE_64BIT_CONST_INT_P): Define.
16690         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16691         any CONST_INT as legitimate during and after reload.
16692         (VAL_32_BITS_P, INT_32_BITS): Define.
16693         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16694
16695 2004-01-20  Jan Hubicka  <jh@suse.cz>
16696
16697         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16698         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16699         containing hard regs are shared.
16700         (gen_hard_reg_clobber): New function.
16701         (hard_reg_clobbers): New array.
16702         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16703         (copy_rtx): Do not copy clobbers containing hard regs.
16704         * rtl.h (gen_hard_reg_clobber): Declare.
16705
16706 2004-01-20  Jan Hubicka  <jh@suse.cz>
16707
16708         * varray.c:  Include hashtab.h
16709         (varray_descriptor): New structure.
16710         (hash_descriptor, eq_descriptor, varray_descriptor,
16711         print_statistics): New static functions
16712         (varray_init, varray_grow): Update statistics
16713         (dump_varray_statistics): New function.
16714         * varray.h (dump_varray_statistics): Declare.
16715         * toplev.c (finalize): Call it.
16716         * Makefile.in (varray.o): Add dependency.
16717
16718 2004-01-20  Jan Hubicka  <jh@suse.cz>
16719
16720         * cselib.c: Include alloc-pool.h
16721         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16722         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16723         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16724         unchain_one_elt_loc_list_pool, unchain_one_value,
16725         new_cselib_val): Simplify using allocpool.
16726         (cselib_init): Initialize allocpools.
16727         (cselib_finish): Finish allocpools.
16728         * Makefile.in (cselib.o): Depend on alloc-pool.h
16729
16730 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16731
16732         * config/mips/mips.c (mips_load_call_address): Make the call insn
16733         use $gp if it could be calling a lazy binding stub.
16734
16735 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16736
16737         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16738         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16739         (TARGET_STRUCT_VALUE_RTX): Likewise.
16740         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16741         (PROMOTE_FUNCTION_RETURN): Remove.
16742         (STRUCT_VALUE): Remove.
16743
16744 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16745
16746         PR bootstrap/13735
16747         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16748         register as pointer after reload.
16749
16750 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16751
16752         PR optimization/12440
16753         * loop.c: Include ggc.h.
16754         (loop_optimize): Run garbage collector between optimization of loops.
16755         * Makefile.in (loop.o): Add GGC_H dependency.
16756
16757 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16758
16759         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16760         vector register special in function without prototype.
16761         (function_arg_advance): Vector parameters get always
16762         GPRs allocated for the linux64 target.
16763
16764 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16765
16766         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16767         not TARGET_M32RX_MASK.
16768
16769 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16770
16771         PR target/13557
16772         * config/sparc/sparc.c (function_arg): Reorder the cases.
16773
16774 2004-01-19  Per Bothner  <per@bothner.com>
16775
16776         Move cpp_reader's line_maps field to a shared global.
16777         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16778         and change the type to a pointer rather than a struct.
16779         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16780         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16781         Likewise.
16782         * cppfiles.c (validate_pch):  Likewise.
16783         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16784         Likewise.
16785         * cpperror.c (print_location):  Likewise.
16786         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16787         * cppinit.c (cpp_create_reader):  Handle new parameter.
16788         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16789         * input.h (line_table):  New variable.
16790         * toplev.c (line_table):  Declare variable.
16791         (general_init):  Initialize line_table.
16792         * c-opts.c (c_common_init_options):  Pass line_table to
16793         cpp_create_reader.
16794         * fix-header.c (read_scan_file):  New local variable line_table.
16795         Initialize, and pass it to cpp_create_reader.
16796         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16797         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16798
16799 2004-01-19  Per Bothner  <per@bothner.com>
16800
16801         Implement a cache for linemap_lookup.
16802         * line-map.h (struct_line_maps):  Add cache field.
16803         * line-map.c (linemap_init):  Zero cache field.
16804         (linemap_add):  Set cache field to offset of newly allocated map.
16805         (linemap_lookup):  Use and set cache field.
16806
16807 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16808
16809         PR optimization/13567
16810         * cse.c (cse_basic_block): Call cse_insn with a non-null
16811         libcall_insn for the last SET insn of a no-confilict block.
16812
16813 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16814
16815         * Makefile.in (target_noncanonical, program_transform_name): Use
16816         immediate define instead of deferred.
16817         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16818         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16819         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16820         deferred backquote.
16821
16822 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16823
16824         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16825         true unconditionally.
16826         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16827         Remove.
16828         (build_unary_op, build_modify_expr): Don't handle extended
16829         lvalues.
16830         (build_component_ref, build_conditional_expr): Call non_lvalue
16831         instead of pedantic_non_lvalue.
16832         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16833         * fold-const.c (fold): Don't check pedantic directly for
16834         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16835         passed to pedantic_non_lvalue.
16836         * doc/extend.texi: Remove documentation of extended lvalues.
16837
16838 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16839
16840         PR optimization/5263
16841         * simplify-rtx.c (associative_constant_p): Delete.
16842         (simplify_associative_operation): Rewrite to linearize terms, and
16843         attempt to simplify new term against both left and right subterms.
16844         (simplify_binary_operation): Call swap_commutative_operands_p on
16845         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16846         trueop0 and trueop1 down to where first needed.
16847         (simplify_relational_operation): Likewise.
16848         * rtlanal.c (commutative_operand_precedence): Also order constant
16849         operands using avoid_constant_pool_reference.
16850
16851 2004-01-19  Richard Henderson  <rth@redhat.com>
16852
16853         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16854         don't check memory mode.
16855         (unaligned_memory_operand): Likewise.
16856         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16857         abort for op0 not MEM.
16858
16859         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16860         is not a reg, copy to a scratch first.
16861         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16862         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16863         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16864         (reload_inqi, reload_inhi): Fix mode of op0.
16865         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16866         reload_outhi_help): Likewise.  Use define_insn_and_split.
16867
16868         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16869         as well as $29 dead.
16870
16871 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16872
16873         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16874         "tls_object" for thread-local objects.
16875         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16876         "#tls" for thread-local sections.
16877         * configure.ac (thread-local checks): Specify --fatal-warnings in
16878         every binutils-specific checks.  For sparc*-*-*, test whether the
16879         OS is Solaris and the tools are native and act accordingly.
16880         * configure: Rebuild.
16881
16882 2004-01-19  Jeff Law  <law@redhat.com>
16883
16884         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16885         Jerry Quinn and Petur Runolfsson.
16886
16887 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16888
16889         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16890         size, don't use the larger zero-extending loads.
16891
16892 2004-01-19  Richard Henderson  <rth@redhat.com>
16893
16894         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16895         * alpha.md (UNSPEC_NT_LDA): Remove.
16896         (UNSPEC_CVTLQ, cvtlq): New.
16897         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16898         (extendsidi2_fix): Remove.
16899         (extendsidi2 splitter): Use cvtlq.
16900         (extendsidi2 fp peepholes): Remove.
16901         (cvtql): Use SFmode instead of SImode.
16902         (fix_trunc?fsi): Update to match.
16903         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16904         (movsi): Rename from movsi_nofix, remove f alternatives.
16905         (movsi_nt_vms): Similarly.
16906         (movsi_fix, movsi_nt_vms_fix): Remove.
16907         (nt_lda): Remove.
16908         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16909
16910 2004-01-19  Jan Hubicka  <jh@suse.cz>
16911
16912         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16913         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16914         list.
16915         (cgraph_remove_unreachable_nodes): New function
16916         (cgraph_decide_inlining_of_small_function): Fix pasto.
16917         (cgraph_decide_inlining_incrementally): Fix pasto.
16918         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16919
16920 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16921
16922         * gengtype.c (header_file): Make it static.
16923         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16924         * gengtype.h (header_file): No longer extern.
16925
16926 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16927
16928         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16929         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16930         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16931
16932 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16933
16934         * stmt.c (HAVE_casesi): Define it not already defined.
16935         (HAVE_tablejump): Likewise.
16936         (expand_end_case_type): Resort to the binary tree method if
16937         neither casesi or tablejump is available.
16938
16939 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16940
16941         * final.c (final_scan_insn): Make non-static again.
16942         * output.h (final_scan_insn): Re-add prototype.
16943         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16944         to final_scan_insn call.
16945         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16946         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16947         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16948         * config/sh/sh.c (print_slot): Likewise.
16949         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16950         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16951
16952 2004-01-18  Jan Hubicka  <jh@suse.cz>
16953
16954         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16955         * cfgcleanup.c (try_optimize_cfg): Use it.
16956         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16957         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16958         Kill hack.
16959         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16960
16961         Revert:
16962         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16963
16964                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16965                 even after reload, just don't remove the actual jump tables.
16966
16967 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16968
16969         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16970
16971 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16972
16973         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16974         the size of a pointer in bytes.
16975
16976 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16977
16978         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16979         live "next" variable, which could lead to an infinite loop.
16980
16981 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16982
16983         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16984         block.
16985
16986         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16987         Check for NULL in the chain and remove repeated code.
16988
16989 2004-01-18  Jan Hubicka  <jh@suse.cz>
16990
16991         * coverage.c (checksum_string): Rename to ...
16992         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16993         names containing random number and zero the number out in order to get
16994         match.
16995
16996 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16997
16998         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16999
17000 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17001
17002         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17003         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17004         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17005         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17006         doc/trouble.texi: Remove trailing whitespace.
17007
17008 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17009
17010         PR target/7618
17011         * config/mips/mips.c: Include cfglayout.h.
17012         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17013         (mips_unspec_offset_high): Add temporary register argument.
17014         (mips_load_call_address): New function, split out from...
17015         (mips_expand_call): ...here.
17016         (mips_output_cplocal): New function.
17017         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17018         (mips_emit_loadgp): New function, split out from...
17019         (mips_expand_prologue): ...here.
17020         (mips_output_mi_thunk): New function.
17021
17022 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17023
17024         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17025         mcpu32): Remove redundant checks for implied target predefines.
17026
17027 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17028
17029         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17030         Return type is unsigned int not int.
17031         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17032         Likewise.
17033
17034 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17035
17036         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17037         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17038         "GNU/Linux" and "Microsoft Windows" terminology.
17039
17040 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17041
17042         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17043         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17044         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17045         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17046         @smallexample instead of @example.
17047
17048 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17049
17050         * objc/objc-act.c (build_objc_method_call): Use target
17051         hooks instead of macros to determine if ..._stret
17052         dispatchers should be used (NeXT runtime only).
17053
17054 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17055
17056         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17057         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17058
17059 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17060
17061         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17062         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17063         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17064         macros.
17065         * reload1.c (emit_reload_insns): Use them.
17066         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17067         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17068         for NULL PATTERN.
17069
17070 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17071
17072         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17073         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17074         a line note after the prologue.  Make static.
17075         (line_note_exists): Remove.
17076         (final): Don't initialize line_note_exists.  Update call to
17077         final_scan_insn.
17078         * output.h (final_scan_insn): Remove prologue.
17079         * function.c (set_insn_locators): Update comment.
17080         (thread_prologue_and_epilogue_insns): Add a comment.
17081
17082 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17083
17084         PR target/10781
17085         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17086         Prototype.
17087         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17088         New function.
17089         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17090         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17091         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17092
17093 2004-01-17  Jan Hubicka  <jh@suse.cz>
17094
17095         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17096         commit.
17097
17098         * toplev.c (HAVE_conditional_execution): Provide default.
17099         (rest_of_handle_reorder_blocks): For conditional_execution target
17100         update liveness once after all transformations
17101         (rest_of_compilation): Do crossjumping before ce3.
17102
17103 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17104
17105         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17106         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17107         for PCH.
17108         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17109         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17110         (get_TOC_alias_set): Mark 'set' for PCH.
17111
17112 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17113
17114         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17115         even after reload, just don't remove the actual jump tables.
17116
17117 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17118
17119         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17120         Remove checks for is_ada() and TREE_UNSIGNED.
17121         (subrange_type_die): Emit a byte_size attribute if the subrange
17122         type size is different from the base type size.
17123         (modified_type_die): Replace call to is_ada_subrange_type() by
17124         call to is_subrange_type().
17125
17126 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17127
17128         * config/sh/sh.c: Include ggc.h.
17129
17130 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17131
17132         * Makefile.in (MD5_H): New.
17133         (fold-const.o): Depend on md5.h.
17134         (dwarf2out.o): Likewise.
17135         (cppfiles.o): Likewise.
17136         * cppfiles.c: Include md5.h.
17137         (should_stack_file): Check against list read from PCH file.
17138         (struct pchf_data): New.
17139         (pchf): New variable.
17140         (struct pchf_adder_info): New.
17141         (pchf_adder): New.
17142         (pchf_save_compare): New.
17143         (_cpp_save_file_entries): New.
17144         (_cpp_read_file_entries): New.
17145         (struct pchf_compare_data): New.
17146         (pchf_compare): New.
17147         (check_file_against_entries): New.
17148         * cpphash.h (_cpp_save_file_entries): Prototype.
17149         (_cpp_read_file_entries): Prototype.
17150         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17151         (cpp_read_state): Read the list of headers.
17152
17153 2004-01-17  Jan Hubicka  <jh@suse.cz>
17154
17155         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17156         builtin_expect specially.
17157         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17158         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17159         * invoke.texi (max-inline-insns-single): Set to 100.
17160         (large-function-insns): Set to 3000.
17161
17162 2004-01-16  Eric Christopher  <echristo@redhat.com>
17163             Chandrakala Chavva <cchavva@redhat.com>
17164
17165         * cppcharset.c (one_iso88591_to_utf8): New function.
17166         (convert_iso88591_utf8): Ditto. Use.
17167         (conversion_tab): Use.
17168         (_cpp_input_to_utf8): New function.
17169         (_cpp_init_iconv_buffer): Ditto.
17170         (_cpp_close_iconv_buffer): Ditto.
17171         * cpphash.h: Prototype new functions.
17172         (cpp_buffer): Add input_cset_desc.
17173         * cppinit.c: Add input_charset default.
17174         * cpplib.c (cpp_push_buffer): Support init and
17175         close of iconv.
17176         * cpplib.h (cpp_options): Add input_charset.
17177
17178 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17179
17180         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17181         * config/alpha/unicosmk.h: Remove a commented-out definition
17182         of ASM_OUTPUT_SECTION_NAME.
17183         * config/stormy16/stormy16.h: Likewise.
17184
17185 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17186
17187         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17188         (alpha___extern_prefix_sys_stat): ... this.
17189         Apply to <sys/mount.h>, too.
17190         Tweak to match more variations.
17191         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17192
17193         * fixinc/inclhack.def (alpha___extern_prefix,
17194         alpha___extern_prefix_standards): New hacks to obey
17195         __PRAGMA_EXTERN_PREFIX.
17196         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17197         test.
17198         * fixinc/tests/base/standards.h: Likewise.
17199
17200         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17201         variations.
17202         New testcase.
17203         * fixinc/tests/base/pthread.h: Handle it.
17204
17205         * fixincl/inclhack.def (bad_lval): Sort file list.
17206         Add many missing files up to Tru64 UNIX V5.1B.
17207         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17208         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17209         order.
17210
17211         * fixinc/fixincl.x: Regenerate.
17212
17213 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17214
17215         * version.c (version_string): Change to 3.5.0.
17216         * doc/include/gcc-common.texi (version-GCC): Likewise.
17217
17218 2004-01-16  Jan Hubicka  <jh@suse.cz>
17219
17220         * i386.md (load_tp_di): Fix pasto.
17221
17222         PR opt/13608
17223         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17224
17225         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17226         pp_c_character_constant, pp_c_floating_constant,
17227         pp_c_additive_expression, pp_c_shift_expression,
17228         pp_c_equality_expression, pp_c_and_expression,
17229         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17230         pp_c_logical_and_expression): Remove inline modifier.
17231         * dwarf2out.c (get_AT): Likewise.
17232         * et-forest.c (et_splay): Likewise.
17233         * ra.h (ra_alloc, ra_calloc): Likewise
17234
17235 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17236
17237         * config/frv/frv-protos.h: Fix comment formatting.
17238         * config/frv/frv.c: Likewise.
17239         * config/frv/frv.h: Likewise.
17240         * config/frv/frv.md: Likewise.
17241         * config/frv/frvbegin.c: Likewise.
17242         * config/frv/frvend.c: Likewise.
17243
17244 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17245
17246         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17247         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17248         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17249         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17250
17251 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17252
17253         PR 11864
17254         * postreload.c (reload_cse_simplify_operands): Don't remove
17255         implicit extension from LOAD_EXTEND_OP.
17256
17257 2004-01-16  Jan Hubicka  <jh@suse.cz>
17258
17259         PR opt/11350
17260         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17261         after reload.
17262         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17263         rtl_try_redirect_by_replacing_branch): Likewise.
17264
17265 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17266
17267         PR pch/13689
17268         * alias.c (struct alias_set_entry): Mark for GC.
17269         (alias_sets): Make static, mark for GC.
17270         (record_alias_subset): Use GC to allocate alias structures.
17271         * varray.c (element): Make generic varrays GCed.
17272
17273         PR pch/13361
17274         * c-typeck.c (constructor_asmspec): Delete.
17275         (struct initializer_stack): Delete field 'asmspec'.
17276         (start_init): Delete saving of asmspec.
17277         (finish_init): Don't update constructor_asmspec.
17278         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17279         * stmt.c (expand_asm): Duplicate strings from tree.
17280         (expand_asm_operands): Likewise.
17281         * tree.c (tree_size): Update computation of size of STRING_CST.
17282         (make_node): Don't make STRING_CST nodes.
17283         (build_string): Allocate string with tree node.
17284         * tree.def (STRING_CST): Update comment.
17285         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17286         (tree_string): Place contents of string in tree node.
17287         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17288         from tree.
17289
17290         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17291         altivec operands.
17292
17293 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17294
17295         * c-common.h: Fix comment formatting.
17296         * c-cppbuiltin.c: Likewise.
17297         * c-pragma.c: Likewise.
17298         * calls.c: Likewise.
17299         * collect2.c: Likewise.
17300         * cppcharset.c: Likewise.
17301         * cpptrad.c: Likewise.
17302         * dbxout.c: Likewise.
17303         * defaults.h: Likewise.
17304         * dwarf2out.c: Likewise.
17305         * fold-const.c: Likewise.
17306         * genautomata.c: Likewise.
17307         * genconditions.c: Likewise.
17308         * genflags.c: Likewise.
17309         * gengtype.c: Likewise.
17310         * integrate.c: Likewise.
17311         * loop.c: Likewise.
17312         * predict.c: Likewise.
17313         * sdbout.c: Likewise.
17314
17315 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17316
17317         * config/ia64/ia64.md (*movti_internal): C output template
17318         extracted to ia64.c.
17319         (*movti_internal_reg): Delete.
17320         (reload_inti, reload_outti): Use the correct mode on operand 2
17321         in the first place, don't fix it up in the output template.
17322         (movtf, reload_ointf, reload_outtf): New expanders.
17323         (*movtf_internal): New define_insn_and_split.
17324         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17325         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17326         (ia64_split_tmode_move): New function, body mostly pulled
17327         from ia64.md:*movti_internal.
17328         (ia64_function_arg_words): New function, extracted common
17329         logic from ia64_function_arg et seq.
17330         (ia64_function_arg_offset): Likewise.  Handle correctly the
17331         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17332         (ia64_function_arg, ia64_function_arg_partial_nregs)
17333         (ia64_function_arg_advance): Use ia64_function_arg_words and
17334         ia64_function_arg_offset.
17335         (ia64_function_value): TCmode does not go in float regs.
17336         (ia64_secondary_reload_class): Also handle TFmode.
17337         * config/ia64/ia64-protos.h: Remove prototype for
17338         ia64_split_timode; add prototype for ia64_split_tmode_move.
17339
17340 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17341
17342         * Makefile.in (MAINT): Make it an immediate assignment.
17343
17344 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17345
17346         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17347
17348 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17349
17350         * config/h8300/coff.h: Replace Hitachi with Renesas.
17351         * config/h8300/elf.h: Likewise.
17352         * config/h8300/h8300-protos.h: Likewise.
17353         * config/h8300/h8300.c: Likewise.
17354         * config/h8300/h8300.h: Likewise.
17355         * config/h8300/h8300.md: Likewise.
17356         * config/h8300/lib1funcs.asm: Likewise.
17357
17358 2004-01-15  Andrew Pinski  <apinski@apple.com>
17359
17360         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17361         around it.
17362
17363 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17364
17365         * config/h8300/h8300.c (h8300_return_in_memory): New.
17366         (TARGET_STRUCT_VALUE_RTX): Likewise.
17367         (TARGET_RETURN_IN_MEMORY): Likewise.
17368         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17369         (RETURN_IN_MEMORY): Likewise.
17370
17371 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17372
17373         PR optimization/13375
17374         * gcse.c (handle_avail_expr): Just return if the source is not a
17375         single set.
17376
17377 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17378             Daniel Jacobowitz  <drow@mvista.com>
17379
17380         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17381         (EQUIV): Define.
17382         (ARM_FUNC_ALIAS): New macro.
17383         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17384         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17385
17386 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17387
17388         PR optimization/12372
17389         * calls.c (expand_call): Add call_fusage data for stack arguments in
17390         constant calls.
17391
17392 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17393
17394         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17395         (rs6000_elf_declare_function_name): Formatting.
17396         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17397
17398 2004-01-15  Jan Hubicka  <jh@suse.cz>
17399
17400         PR bootstrap/13692
17401         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17402         previous patch.
17403
17404 2004-01-15  Richard Henderson  <rth@redhat.com>
17405
17406         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17407         integer regs of the same call-savedness.
17408
17409 2004-01-15  Andreas Schwab  <schwab@suse.de>
17410
17411         PR bootstrap/13562
17412         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17413         status for NOTB/NOTW/NEGW methods.
17414
17415 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17416
17417         * doc/invoke.texi: Update dump file names.  Fix a typo.
17418
17419 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17420
17421         * builtins.c (expand_builtin_va_end): Don't use
17422         EXPAND_BUILTIN_VA_END.
17423         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17424         * config/d30v/d30v.h: Remove a commented-out definition of
17425         EXPAND_BUILTIN_VA_END.
17426         * config/stormy16/stormy16.h: Likewise.
17427
17428 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17429
17430         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17431         * targhooks.c (default_struct_value_rtx): Don't use
17432         STRUCT_VALUE_INCOMING_REGNUM.
17433
17434 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17435
17436         PR bootstrap/12744
17437         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17438         GENINSRC and not parsedir.  Define srcextra as a langhook.
17439         * configure: Regenerate.
17440         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17441         parsedir and delete all references throughout.  Conditionally define
17442         rule for srcextra dependent on GENINSRC.
17443         (stmp-docobjdir): Delete.
17444         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17445         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17446         and gengtype-yacc.h back to source directory.
17447         (maintainer-clean): Delete all parse files in source directory.
17448         (distclean): Delete generated files.
17449
17450         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17451         (objc-parse.c, objc-parse.y): Don't use parsedir.
17452         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17453         directory if requested.
17454         (po-generated): Don't use parsedir.
17455         (objc.maintainer-clean): Delete above files from source directory.
17456
17457 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17458
17459         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17460
17461 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17462
17463         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17464         TARGET_RETURN_IN_MEMORY.
17465
17466 2004-01-15  Jan Hubicka  <jh@suse.cz>
17467
17468         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17469         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17470         functions accepting SSE arguments
17471         (function_arg): Warn only when asked to warn.
17472         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17473
17474 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17475
17476         * c-parse.in (stmts_and_decls): Make label at end of compound
17477         statement a hard error.
17478
17479 2004-01-14  Jan Hubicka  <jh@suse.cz>
17480
17481         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17482         * cgraph.h (cgraph_local_info): Sort fields by size; add
17483         redefined_extern_inline
17484         (cgraph_global_info): Sort fields by size.
17485         (cgraph_node): Likewise.
17486         * cgraphunit.c (cgraph_finalize_function): Se
17487         local.redefined_extern_inline on redefinition.
17488         (cgraph_analyze_function): Use it; fix formating.
17489
17490 2004-01-14  Jan Hubicka  <jh@suse.cz>
17491
17492         PR c++/10776
17493         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17494         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17495         bitmaps
17496         (cache_size): New variable
17497         (add_dependence): Update use; canonize early memory locations
17498         (sched_analyze_1): Likewise.
17499         (sched_analyze_2): Likewise.
17500         (init_dependency_caches): Initialize bitmaps.
17501         (free_dependency_caches): Free bitmaps
17502
17503 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17504
17505         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17506         targetm.calls.strict_argument_naming().
17507         * target.h: Likewise.
17508
17509 2004-01-14  Richard Henderson  <rth@redhat.com>
17510
17511         PR debug/13231
17512         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17513         instructions.
17514
17515 2004-01-14  Richard Henderson  <rth@redhat.com>
17516
17517         PR c++/12491
17518         * except.c (struct eh_region): Add u.fixup.resolved.
17519         (resolve_one_fixup_region): Split out from ...
17520         (resolve_fixup_regions): ... here.
17521
17522 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17523
17524         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17525
17526 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17527
17528         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17529         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17530         (STRUCT_VALUE): Remove.
17531
17532 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17533
17534         * system.h: Poison PROMOTED_MODE
17535         * integrate.c (expand_inline_function): Don't mention the
17536         PROMOTED_MODE.
17537         * loop.c (update_giv_derive): Same.
17538         * tree.h (DECL_RTL): Same.
17539
17540 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17541
17542         PR target/9365
17543         * sh.c (gen_block_redirect): Add special handling of RETURN.
17544         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17545         far branch target (i.e. it's a return).
17546
17547 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17548
17549         * regrename.c (find_oldest_value_reg): Fix a warning.
17550
17551 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17552
17553         PR bootstrap/12527
17554         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17555         Move linux-gas.h and linux-elf.h before aout.h.
17556         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17557         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17558
17559 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17560
17561         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17562         (CONST_INT, VOIDmode, ...).
17563
17564 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17565
17566         * regrename.c (find_oldest_value_reg): If the replacement uses
17567         multiple hard registers, check that all of them are in CLASS.
17568
17569 2004-01-14  Jan Hubicka  <jh@suse.cz>
17570
17571         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17572         impossible.
17573
17574 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17575
17576         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17577
17578 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17579
17580         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17581         Calculate always vrsave_mask if TARGET_ALTIVEC.
17582         (rs6000_emit_prologue): Emit code for vrsave
17583         only if TARGET_ALTIVEC_VRSAVE.
17584         (rs6000_emit_epilogue): Likewise.
17585
17586 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17587
17588         * config/sparc/sparc.md (tie_add32): Fix pasto.
17589         (tie_add64): Likewise.
17590
17591 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17592
17593         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17594
17595 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17596
17597         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17598         * config/iq2000/iq2000.c: Likewise.
17599         * config/iq2000/iq2000.md: Likewise.
17600
17601 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17602
17603         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17604         (subrange_type_die): Add handle for nameless subrange types.
17605
17606 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17607
17608         * config/h8300/h8300-protos.h: Replace do_movsi with
17609         h8300_expand_movsi.
17610         * config/h8300/h8300.c (do_movsi): Change to
17611         h8300_expand_movsi.
17612         * config/h8300/h8300.md (movsi): Replace do_movsi with
17613         h8300_expand_movsi.
17614         (movsf): Likewise.
17615
17616 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17617
17618         * config/h8300/h8300.c (dosize): Change to
17619         h8300_emit_stack_adjustment.  Update callers.
17620
17621 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17622
17623         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17624         the source being post_inc.  Tighten the predicate for the
17625         destination to register_operand.
17626         (movstricthi): Likewise.
17627
17628 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17629
17630         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17631         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17632         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17633
17634 2004-01-14  Jan Hubicka  <jh@suse.cz>
17635
17636         Partial fix PR c++/12850
17637         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17638         at zero nest level.
17639
17640 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17641
17642         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17643         pseudo-register.
17644
17645 2004-01-13  Devang Patel <dpatel@apple.com
17646
17647         PR debug/7078
17648         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17649         NAMESPACE_DECL memebers.
17650
17651 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17652
17653         PR c++/12709
17654         * c-common.c (finish_fname_decls): Use the chain only if the
17655         tree is an expr_stmt.
17656
17657 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17658
17659         * rtl.def: Add comment about new option in automata_option.
17660
17661         * genautomata.c (PROGRESS_OPTION): New macro.
17662         (progress_flag): New global variable.
17663         (gen_automata_option): Process `progress'.
17664         (transform_insn_regexps, check_unit_distributions_to_automata,
17665         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17666         expand_automata, write_automata): Print about the progress only if
17667         progress_flag.  Remove fflush.
17668         (initiate_automaton_gen): Process command line flag `-progress'.
17669
17670         * doc/md.texi: Describe the new option.
17671
17672 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17673
17674         * cfg.c (dump_bb): Dump entry edges.
17675
17676 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17677
17678         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17679         references from SImode.
17680         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17681
17682 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17683
17684         * system.h (TEXT_SECTION): Poison.
17685         * varasm.c (text_section): Don't use TEXT_SECTION.
17686         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17687         * doc/tm.texi (TEXT_SECTION): Remove.
17688
17689 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17690
17691         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17692
17693 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17694
17695         * unwind-libunwind.c: Delete.
17696
17697 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17698
17699         PR 13656
17700         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17701         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17702         them at the very end.
17703         (validate_proto_after_old_defn): Restructure for comprehensibility;
17704         make error messages clearer.
17705
17706 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17707
17708         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17709         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17710         * varray.c: No need to prototype error.
17711         (varray_check_failed): Wrap long string onto two lines.
17712         (varray_underflow): New function.
17713
17714 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17715
17716         PR c++/13376
17717         * function.h (struct function): Kill `name' field.
17718         (current_function_name): Make it an extern function.
17719         * function.c (current_function_name): New function.
17720         * graph.c: Update all uses of current_function_name.
17721         * gcse.c: Likewise.
17722         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17723         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17724         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17725         instead of a strcmp with "main".
17726
17727 2004-01-13  Jan Hubicka  <jh@suse.cz>
17728
17729         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17730
17731         * cgraphunit.c (cgraph_optimize_function):  Always do
17732         optimize_inline_calls when there is always_inline callee.
17733         (cgraph_decide_inlining): Fix formating.
17734         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17735         functions.
17736         (expand_call_inline): Likewise.
17737         * toplev.h (sorry): Fix prototype.
17738
17739 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17740
17741         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17742         conditional jumps that drop through to unconditional jumps or the
17743         end of the sequence.
17744
17745 2004-01-13  Jan Hubicka  <jh@suse.cz>
17746
17747         * alias.c (new_alias_set): Construct the alias_set varray.
17748         (init_alias_once): Don't do it here.
17749
17750 2004-01-12  Marc Espie <espie@openbsd.org>
17751
17752         * system.h: handle YYBYACC like YYBISON.
17753
17754 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17755
17756         PR target/10847
17757         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17758         building on sparc64-*-openbsd*.
17759
17760 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17761
17762         PR debug/13539
17763         * dbxout.c (dbxout_type): Protected inheritance is not
17764         private but protected.
17765
17766 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17767
17768         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17769
17770 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17771
17772         PR optimization/12508.
17773         * combine.c (try_combine): Remove a dead set in a parallel
17774         even if its destination is a subreg.
17775
17776         Revert:
17777         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17778         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17779         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17780
17781 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17782
17783         * real.c: Update copyright date.
17784         * emit-rtl.c: Likewise.
17785         * rtl.h: Likewise.
17786         * dwarf2out.c: Likewise.
17787         * config/rs6000/darwin-ldouble.c: Likewise.
17788         * config/rs6000/rs6000.md: Likewise.
17789
17790 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17791
17792         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17793         TFmode to SImode libfuncs.
17794
17795 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17796
17797         PR middle-end/11397
17798         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17799
17800 2004-01-12  Jan Hubicka  <jh@suse.cz>
17801
17802         PR opt/12826
17803         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17804         stored.
17805
17806         PR opt/12863
17807         * cfgcleanup.c (label_is_jump_target_p): Move to...
17808         * rtlanal.c (label_is_jump_target_p): ... here.
17809         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17810         edges unified with branch edges.
17811
17812 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17813
17814         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17815         high word of an integral CONST_DOUBLE.
17816
17817 2004-01-12  Paul Brook  <paul@codesourcery.com>
17818
17819         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17820
17821 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17822
17823         PR target/13585
17824         * sh-protos.h (check_use_sfunc_addr): Declare.
17825         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17826         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17827
17828 2004-01-12  Jan Hubicka  <jh@suse.cz>
17829
17830         * alias.c:  Invlude varray.h
17831         (alias_sets): Turn into varray.
17832         (get_alias_set_entry): Use VARRAY; mark inline.
17833         (mems_in_disjoint_alias_sets_p): Mark inline.
17834         (record_alias_subset): Use varray.
17835         (init_alias_once): Initialize varray.
17836         (new_alias_set): Grow array.
17837         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17838
17839 2004-01-12  Jan Hubicka  <jh@suse.cz>
17840
17841         Partial fix for PR opt/10776 II
17842         * cselib.c: Include params.h
17843         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17844         locations.
17845         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17846         * Makefile.in (cselib.o): Depend on params.h
17847
17848 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17849
17850         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17851         simplify_unary_operation if the operand has a known mode.
17852
17853 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17854
17855         PR target/13534
17856         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17857         predicate to handle 'ld' conform addresses.
17858         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17859         contraint.
17860         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17861         are memory contraints.
17862         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17863         New prototype.
17864         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17865         Change 'o' to 'Y' constraint.
17866         (*movdf_softfloat64): Ditto.
17867
17868 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17869
17870         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17871         brace-enclosed syntax in all C output statements.
17872
17873 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17874
17875         PR target/13401
17876         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17877         Objective-C language type value is 14.
17878
17879 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17880
17881         PR c/12148
17882         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17883         `int' in a number of places to make sure we always have a SImode
17884         and not a HImode.  Add a 'L' suffix to a number of constants.
17885
17886 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17887
17888         * pa.c: Don't include obstack.h.
17889
17890         * pa.md: Correct constraint in pattern for loading PIC label address.
17891
17892 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17893
17894         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17895          before defining.
17896
17897 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17898
17899         PR fortran/9972
17900         * toplev.c (rest_of_handle_inline): Also consider functions
17901         for deferral if the language is GNU F77.
17902
17903 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17904
17905         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17906         diagnostic messages.
17907
17908 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17909
17910         PR middle-end/13392
17911         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17912         to drop through label.  Don't fall back to SCC even when conditional
17913         jump has not been found.
17914
17915 2004-01-11  Jan Hubicka  <jh@suse.cz>
17916
17917         * invoke.texi: Fix syntax error in previous patch.
17918
17919         Partial fix for PR opt/10776
17920         * Makefile.in (reload.o): Include param.h
17921         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17922         * reload.c: Include params.h.
17923         (find_equiv_reg): Work limiting check.
17924         * invoke.texi: Document.
17925
17926 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17927
17928         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17929         out-of-bounds accesses to string constants.  Simplify mips16
17930         case accordingly.
17931
17932 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17933
17934         PR optimization/13469
17935         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17936         reload_cse_regs (-fnon-call-exceptions only).
17937
17938 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17939
17940         * config/mcore/lib1.asm: Fix comment formatting.
17941         * config/mcore/mcore-elf.h: Likewise.
17942         * config/mcore/mcore.c: Likewise.
17943         * config/mcore/mcore.h: Likewise.
17944         * config/mcore/mcore.md: Likewise.
17945
17946 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17947
17948         * c-decl.c (duplicate_decls): Break apart into...
17949         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17950         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17951         ... these new functions.  Restructure for comprehensibility.
17952         Remove various archaic special cases.  Always report the
17953         location of the previous declaration when a diagnostic is issued.
17954         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17955         (match_builtin_function_types): Delete unnecessary forward declaration.
17956
17957 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17958
17959         * genautomata.c (make_automaton, NDFA_to_DFA):
17960         Print progress bars with '.' characters instead of '*'.
17961         (build_automaton): Change notes to match.
17962
17963 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17964
17965         * config/m32r/m32r.md: Use define_constants for unspec and
17966         unspec_volatile.
17967
17968 2004-01-10  Jan Hubicka  <jh@suse.cz>
17969
17970         PR opt/11635
17971         * expr.c (expand_expr_real):  More curefully expand union casts.
17972
17973 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17974
17975         * config/m32r/m32r.md (flush_icache): Use 1 for
17976         unspec_volatile.
17977
17978 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17979             James E Wilson  <wilson@specifixinc.com>
17980
17981         PR debug/12860
17982         * dbxout.c (dbxout_symbol): Remove initialization of
17983         current_sym_code, current_sym_value, and current_sym_addr.
17984         (dbxout_symbol_location): Same.
17985         (dbxout_prepare_symbol): Zero current_sym_code,
17986         current_sym_value, and current_sym_addr.
17987
17988 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17989
17990         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17991         check is done first.
17992
17993 2004-01-09  Eric Christopher  <echristo@redhat.com>
17994
17995         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17996         if we're running mark_constant_function.
17997
17998 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17999
18000         PR target/12561
18001         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18002
18003 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18004
18005         PR debug/11231
18006         * dbxout.c (dbxout_type_fields): Return if any item is
18007         error_mark_node or the type is error_mark_node.
18008
18009 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18010
18011         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18012         exactly what is expected as a 'long double'.
18013         (_xlqadd): When a value to be returned is representable as a
18014         'double', just return it directly, do not construct it using a union.
18015         Also, correct final fixup.
18016         (_xlqmul): Likewise.
18017         (_xlqdiv): Likewise.
18018         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18019
18020         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18021
18022 2004-01-09  Richard Henderson  <rth@redhat.com>
18023
18024         * recog.c (constrain_operands): Validate mem operands.
18025
18026 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18027
18028         * gcc.c (init_spec): Remove -lunwind from shared case.
18029         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18030
18031 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18032
18033         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18034         * configure: Regenerate
18035
18036 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18037
18038         PR c/11234
18039         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18040         between function and object pointers.
18041         (digest_init): When comparing a pointer to function type to the
18042         target type, only apply TREE_TYPE once to the pointer to function
18043         type.
18044         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18045         function pointer rather than casting it to a function pointer.
18046         (for_each_eh_label): Update caller.
18047         * recog.h (struct insn_data): Use a struct or union for output.
18048         * genoutput.c (output_insn_data): Update.
18049         * final.c (get_insn_template): Update.
18050
18051 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18052
18053         * expr.h (expand_expr): Make it a macro, not a function.
18054         (expand_expr_real): New function.
18055         * expr.c (store_expr): Adjust logic for deciding whether or not to
18056         copy the value returned by expand_expr.
18057         (expand_expr): Rename to ...
18058         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18059         calls to language hooks.
18060         * c-common.h (c_expand_expr): Adjust prototype.
18061         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18062         * langhooks-def.h (lhd_expand_expr): Change prototype.
18063         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18064         * langhooks.h (lang_hooks): Change type of expand_expr.
18065         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18066         (last_expr_alt_rtl): Likewise.
18067         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18068         (clear_last_expr): Clear it.
18069         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18070         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18071         * tree.def (RTL_EXPR): Give it an additional operand.
18072         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18073
18074 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18075
18076         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18077         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18078
18079 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18080
18081         PR target/13380.
18082         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18083         or (ne:SI (reg:CC 17) (const_int 0)).
18084         Be specific about modes wherever possible.
18085
18086 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18087
18088         * config/m32r/m32r.c (m32r_expand_block_move): Call
18089         gen_movestrsi_internal with two more arguments.
18090         (m32r_output_block_move): Adjust operand numbers.
18091         Properly update the source and destination pointers.
18092         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18093         'r+'.  Change the set detinations to match_operand.
18094
18095 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18096
18097         * final.c (FIRST_INSN_ADDRESS): Remove.
18098         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18099         * system.h (FIRST_INSN_ADDRESS): Poison.
18100         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18101         * config/m32r/m32r-protos.h: Remove the prototype for
18102         m32r_first_insn_address.
18103         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18104         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18105         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18106
18107 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18108
18109         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18110         we just created.
18111         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18112         emitted as subrange types too.
18113         (subrange_type_die): Add handling of enumeration subtypes.
18114
18115 2004-01-08  Richard Henderson  <rth@redhat.com>
18116
18117         PR opt/12441
18118         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18119         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18120         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18121         (ix86_address_cost): Be prepared for SUBREGed registers.
18122         (legitimate_address_p): Accept SUBREGed registers.
18123
18124 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18125
18126         * Makefile.in: Rename configure.in to configure.ac
18127         * doc/sourcebuild.texi: Likewise.
18128         * configure: Regenerate.
18129         * config.in: Regenerate.
18130
18131 2004-01-08  Stuart Hastings  <stuart@apple.com>
18132
18133         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18134
18135 2004-01-08  Jan Hubicka  <jh@suse.cz>
18136
18137         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18138
18139 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18140
18141         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18142         (UNSPEC_FIX_TRUNC_TF): New constant.
18143         (movtf_internal): Make splitter active only when insn is active.
18144         (extenddftf2): Rewrite to properly load zero into low part.
18145         (extenddftf2_internal): New.
18146         (extendsftf2): Rewrite.
18147         (truncdftf2): Correct length.
18148         (floatditf2): Delete.
18149         (fix_trunc_helper): New.
18150         (fix_trunctfdi2): Use fix_trunc_helper.
18151         (fix_trunctfsi2): Likewise.fix_trunc
18152         (fix_trunctfsi2_internal): New.
18153
18154         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18155         addresses are legitimate on Darwin even when flag_pic.
18156         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18157         non-offsettable addresses for loads of TFmode constants.
18158
18159 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18160
18161         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18162         variables in the appropriate bss section.
18163
18164 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18165
18166         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18167         target_flags has MASK_POWERPC64 when -m64.
18168         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18169         to 620, 630, power3, power4 and rs64a entries.
18170         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18171
18172 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18173
18174         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18175         floating-point constants.
18176
18177 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18178
18179         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18180         Create the subrange_type DIE using the given context DIE.
18181         (modified_type_die): Update call to subrange_type_die.
18182
18183 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18184
18185         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18186         Add multiple-include guard.
18187
18188 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18189
18190         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18191         all vector constant loadable by vsplt*.
18192         (output_vec_const_move): Likewise.
18193
18194 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18195
18196         PR c/6024
18197         * c-typeck.c (comptypes): Only treat enumerated types in the same
18198         translation unit as compatible with each other when they are the
18199         same type.
18200         * doc/extend.texi: Update.
18201
18202 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18203
18204         PR c/12165
18205         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18206         array type from the array element type.
18207
18208 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18209
18210         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18211         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18212         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18213         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18214         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18215
18216 2004-01-06  Eric Christopher  <echristo@redhat.com>
18217
18218         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18219         (DWARF2_DEBUGGING_INFO): Define.
18220         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18221         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18222         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18223         for irix as.
18224         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18225         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18226         * config/mips/iris5gas.h: Ditto.
18227         (DBX_DEBUGGING_INFO): Remove.
18228         (DWARF2_DEBUGGING_INFO): Ditto.
18229         (MIPS_DEBUGGING_INFO): Ditto.
18230         (PREFERRED_DEBUGGING_TYPE): Ditto.
18231         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18232         (PREFERRED_DEBUGGING_TYPE): Ditto.
18233         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18234         * config/mips/elf64.h: Ditto.
18235
18236 2004-01-06  Jan Hubicka  <jh@suse.cz>
18237
18238         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18239         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18240
18241 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18242
18243         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18244         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18245         * config/rs6000/darwin-ldouble.c: New.
18246
18247         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18248         for constants.
18249         (constant_subword): Delete.
18250         * rtl.h (constant_subword): Delete prototype.
18251         (immed_double_const): Is not in varasm.c.
18252         * simplify-rtx.c (simplify_immed_subreg): New.
18253         (simplify_subreg): Use simplify_immed_subreg.
18254
18255         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18256         than trying to generate RTL directly.
18257         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18258         RTL directly.
18259
18260         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18261
18262 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18263
18264         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18265         function into a separate macro.
18266         (read_only_data_section): Add void argument.
18267         (private_data_section): Same.
18268         (read_only_private_data_section): Same.
18269         (toc_section): Same.
18270
18271 2004-01-06  Jan Hubicka  <jh@suse.cz>
18272
18273         * invoke.texi:  Remove typo in last change.
18274
18275         PR target/10301
18276         * config.gcc: Accept opteron and athlon-64 as variants
18277         of k8.
18278         * i386.c (override_options): Likewise.
18279         * invoke.texi (i386 -mtune): Expand documentation.
18280
18281 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18282
18283         * alias.c: Fix comment typos.
18284         * builtins.c: Likewise.
18285         * cfg.c: Likewise.
18286         * df.c: Likewise.
18287         * dominance.c: Likewise.
18288         * dwarf2out.c: Likewise.
18289         * emit-rtl.c: Likewise.
18290         * expr.c: Likewise.
18291         * final.c: Likewise.
18292         * fold-const.c: Likewise.
18293         * gcse.c: Likewise.
18294         * genattrtab.c: Likewise.
18295         * genrecog.c: Likewise.
18296         * gensupport.c: Likewise.
18297         * ggc-zone.c: Likewise.
18298         * integrate.c: Likewise.
18299         * local-alloc.c: Likewise.
18300         * loop.c: Likewise.
18301         * recog.c: Likewise.
18302         * regmove.c: Likewise.
18303         * reg-stack.c: Likewise.
18304         * reorg.c: Likewise.
18305         * rtlanal.c: Likewise.
18306         * rtl.h: Likewise.
18307         * sched-ebb.c: Likewise.
18308         * simplify-rtx.c: Likewise.
18309         * toplev.c: Likewise.
18310         * varasm.c: Likewise.
18311
18312 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18313
18314         * doc/install.texi: Fix typos.
18315         * doc/invoke.texi: Likewise.
18316         * doc/md.texi: Likewise.
18317
18318 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18319
18320         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18321
18322 2004-01-06  Jan Hubicka  <jh@suse.cz>
18323
18324         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18325         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18326         of MMX_REGPARM.
18327         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18328         add MMX_REGPARM.
18329         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18330         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18331         (MMX_REGPARM_MAX): Similarly for -mmmx.
18332
18333 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18334
18335         * config/sh/linux.h: Fix comment formatting.
18336         * config/sh/netbsd-elf.h: Likewise.
18337         * config/sh/sh.c: Likewise.
18338         * config/sh/sh.h: Likewise.
18339         * config/sh/vxworks.h: Likewise.
18340
18341 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18342
18343         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18344         * toplev.c (output_file_directive): Don't use
18345         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18346
18347 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18348
18349         * toplev.c: Fix broken checkin of 2003-12-30.
18350
18351 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18352
18353         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18354         (USING_MMAP): We don't support non-mmap.
18355         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18356         large objects.
18357         (struct page_entry): Remove bytes_free.
18358         (struct page_table_chain): Remove.
18359         (struct globals): Remove page_table member.
18360         (loookup_page_table_entry): Function deleted.
18361         (set_page_table_entry): Ditto.
18362         (ggc_allocated_p): No longer need page table lookups.
18363         (ggc_marked_p): Ditto.
18364         (alloc_small_page): Don't care about bytes_free anymore.
18365         (alloc_large_page): Round up size.
18366         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18367         their size the new way.
18368         Remove page table lookups and setting.
18369         (ggc_get_size): Calculate large object size the new way.
18370         (sweep_pages): Redo to account for fact that we no longer have
18371         bytes_free.
18372         (ggc_collect): No longer need to reincrement bytes_free.
18373         (ggc_pch_alloc_object): Handle new large objects properly.
18374         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18375
18376 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18377
18378         * doc/invoke.texi: Remove a page break.
18379
18380 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18381
18382         * config/avr/avr.c (avr_output_function_prologue): Remove an
18383         extra pair of curly braces.
18384
18385 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18386
18387         * config/mn10300/mn10300.c: Fix comment formatting.
18388         * config/mn10300/mn10300.h: Likewise.
18389
18390 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18391
18392         * tree.h: Update documentation on nothrow_flag.
18393         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18394         types.
18395
18396 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18397
18398         * doc/invoke.texi: Remove traces of dead ports.
18399
18400 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18401
18402         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18403         option.
18404
18405 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18406
18407         PR target/12945
18408         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18409         counter labels.
18410         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18411         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18412         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18413         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18414         (mips_symbol_insns): Don't trust the local/global classification.
18415         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18416         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18417         -mno-explicit-relocs.
18418         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18419         between local and global symbols.
18420
18421 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18422
18423         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18424         (mips_preferred_reload_class): Declare.
18425         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18426         (EXTRA_CONSTRAINT): Update accordingly.
18427         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18428         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18429         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18430         mips_dangerous_for_la25_p.
18431         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18432         if mips_dangerous_for_la25_p.
18433
18434 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18435
18436         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18437         warning.
18438
18439 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18440
18441         * configure.ac: Use AC_PROG_CPP_WERROR.
18442         * configure: Regenerate.
18443
18444 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18445
18446         * .cvsignore: Add autom4te.cache.
18447
18448 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18449
18450         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18451         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18452         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18453         then architecture options, then ABI options.  General rewording.
18454
18455 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18456
18457         PR c/3414
18458         * doc/extend.texi: Clarify definition of malloc attribute.
18459
18460 2004-01-04  Jan Hubicka  <jh@suse.cz>
18461
18462         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18463         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18464         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18465         (cgraph_inline_p): Add extra argument reason.
18466         * cgraphunit.c: Minor formating fixes.
18467         cgraph_first_inlined_callee): New functions.
18468         (record_call_1): Record builtins too.
18469         (cgraph_analyze_function): Update inline_failed messages.
18470         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18471         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18472         (cgraph_check_inline_limits): Likewise; Add argument reason.
18473         (cgraph_set_inline_failed): New static function.
18474         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18475         reasons.
18476         (cgraph_inline_p): Add new argument reason.
18477         * tree-inline.c (expand_call_inline):  Update warning.
18478
18479 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18480
18481         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18482         with modern equivalents.
18483         * configure: Regenerate.
18484
18485         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18486         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18487         * configure: Regenerate.
18488
18489         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18490
18491         * configure.in: Rename to configure.ac.
18492         * configure.ac: Renamed from configure.in; make minimum necessary
18493         changes for autoconf 2.5x.
18494         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18495         * configure: Regenerate with autoconf 2.57.
18496
18497 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18498
18499         * config/mips/linux.h: Fix comment formatting.
18500         * config/mips/mips.c: Likewise.
18501         * config/mips/mips.h: Likewise.
18502         * config/mips/mips.md: Likewise.
18503         * config/mips/netbsd.h: Likewise.
18504         * config/mips/windiss.h: Likewise.
18505
18506 2004-01-02  Richard Henderson  <rth@redhat.com>
18507
18508         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18509         for sse and 387; add suppression for mmx.
18510
18511 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18512
18513         * loop.c (loop_optimize): Free all loops_info's mems.
18514
18515         * c-typeck.c (finish_init): Free spelling_base before
18516         setting it again.
18517
18518         * cfgloop.c (flow_loops_find): Always free the sbitmap
18519         headers.
18520
18521         * predict.c (estimate_probability): Free bbs after being
18522         done with it.
18523
18524 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18525
18526         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18527         const_8bit_operand and call_address_operand.
18528
18529 2004-01-02  Jan Hubicka  <jh@suse.cz>
18530
18531         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18532         when there is nothing to inline but warnings are requested.
18533         (cgraph_decide_inlining):  Fix memory leak.
18534
18535 2004-01-02  Jan Hubicka  <jh@suse.cz>
18536
18537         * expr.c (store_constructor):  Fix pasto in previous patch.
18538
18539 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18540
18541         * config/i386/cygming.h: Fix comment formatting.
18542         * config/i386/djgpp.h: Likewise.
18543         * config/i386/gthr-win32.c: Likewise.
18544         * config/i386/i386-interix.h: Likewise.
18545         * config/i386/i386.c: Likewise.
18546         * config/i386/i386.h: Likewise.
18547         * config/i386/openbsd.h: Likewise.
18548         * config/i386/winnt.c: Likewise.
18549         * config/i386/xm-mingw32.h: Likewise.
18550
18551 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18552
18553         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18554         copyright and last modification dates.
18555
18556 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18557
18558         * doc/install.texi (Specific): Mention x86_64.
18559
18560 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18561
18562         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18563         Call force_operand on plus_constant result.
18564
18565 2004-01-01  Jan Hubicka  <jh@suse.cz>
18566
18567         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18568         * expr.c (store_constructor): Use vec_init pattern.
18569         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18570         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18571         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18572         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18573         New patterns.
18574         (sse2_unpc?pd): Fix pattern.
18575         (sse2_movlpd): Kill.
18576         (sse2_movsd): Deal with movlpd too.
18577         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18578         (ix86_expand_vector_init): New.
18579         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18580         * md.texi (vec_set, vec_extract): Document
18581
18582 2003-12-31  Jan Hubicka  <jh@suse.cz>
18583
18584         PR opt/13473
18585         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18586         ASM input operands
18587
18588         PR opt/12617
18589         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18590         (dump_file): Likewise.
18591         (rest_of_compilation): Likewise.
18592
18593         PR debug/13367
18594         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18595         flag_really_no_inline we inline always_inline functions.
18596         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18597         for non-always_inline functions when there is flag_really_no_inline.
18598         (cgraph_decide_inlining): Limit work done when not inlining.
18599         (cgraph_decide_inlining_incrementally): Likewise.
18600         (cgraph_optimize_function): Check whether something got inlined.
18601         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18602         extern inline functions when not inlining.
18603
18604         * opts.c (decode_options):  Disable crossjumping at -O1
18605         * invoke.texi (-O1): Document change.
18606
18607 See ChangeLog.10 for earlier changes.