OSDN Git Service

PR tree-optimization/15991
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2
3         PR tree-optimization/15991
4         * tree-cfg.c (tree_block_label): Export.
5         * tree-flow-inline.h (bsi_after_labels): New function.
6         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
7         * tree-ssa.c (propagate_into_addr): New function.
8         (replace_immediate_uses): Handle propagation of pointer constants.
9         (raise_value): Do not restrict propagation of pointer constants.
10         * tree-ssanames.c (duplicate_ssa_name): New function.
11         * tree.h (duplicate_ssa_name): Declare.
12
13 2004-06-17  David Ayers  <d.ayers@inode.at>
14  
15         * c-parse.in: Unify Objective-C token names.
16
17 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
18
19         Bug 14610
20         * Makefile.in (min-insn-modes.o): Correct dependencies.
21         * real.c (encode_ieee_extended, decode_ieee_extended): Always
22         produce/consume 12-byte little-endian Intel format.
23         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
24         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
25         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
26         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
27         New functions which convert between 12-byte little-endian Intel
28         format and the desired format.
29         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
30         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
31         Update.
32
33 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
34
35         * expmed.c (expand_mult_const): In sanity check, compare only
36         the bits of val and val_so_far that are significant in the
37         result mode.
38
39 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
40
41         * tree-ssa-pre.c:  Update comments.
42         (val_expr_pair_eq): Factor code from here.
43         (expr_pred_trans_eq): and here.
44         (expressions_equal_p): To here.
45         (print_value_set): Print value for expression.
46         (phi_trans_lookup): Rename some variables.
47         (lookup): Ditto.
48         (value_exists_in_set_bitmap): Ditto.
49         (value_remove_from_set_bitmap): Ditto.
50         (value_insert_into_set_bitmap): Ditto.
51
52 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
53
54         * config/s390/s390-modes.def (CCL3mode): New machine mode.
55         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
56         (s390_alc_comparison, s390_slb_comparison): Likewise.
57         (s390_branch_condition_mask): Likewise.
58         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
59         ("*subsi3_cc2", "*subsi3_cconly2"): New.
60
61         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
62         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
63         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
64         Handle SIGN_EXTEND and ZERO_EXTEND.
65
66         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
67         * config/s390/s390.c (s390_expand_addcc): New function.
68         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
69         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
70         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
71
72 2004-06-17  Ben Elliston  <bje@au.ibm.com>
73
74         * tree-alias-common.c: Add whitespace.
75         * tree-inline.c: Correct comment about this file's purpose.
76         * tree-optimize.c: Likewise.
77         * tree-tailcall.c: Likewise.
78
79         * tree-alias-ander.h: Add standard top-of-file comment.
80         * tree-alias-common.h: Likewise.
81         * tree-alias-type.h: Likewise.
82
83 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
84
85         * tree-ssa-pre.c (compute_avail): Value number uses as well.
86         Strip useless type conversions.
87         Casts have to be treated slightly different than normal unaries.
88
89 2004-06-16  Richard Henderson  <rth@redhat.com>
90
91         * c-common.def (COMPOUND_STMT): Remove.
92         * c-common.c (finish_fname_decls): Don't look through it.
93         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
94         * c-common.h (COMPOUND_BODY): Remove.
95         (c_common_stmt_codes): Remove COMPOUND_STMT.
96         * c-dump.c (c_dump_tree): Likewise.
97         * c-gimplify.c (c_gimplify_stmt): Likewise.
98         * c-pretty-print.c (pp_c_statement): Likewise.
99         * tree.h (DECL_SAVED_TREE): Update commentary.
100         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
101         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
102         (GOTO_EXPR): Rename from GOTO_STMT.
103         (GOTO_FAKE_P): Remove.
104         (COMPOUND_STMT): Remove.
105         (HANDLER): Update wrt COMPOUND_STMT.
106         (STMT_EXPR): Likewise.
107         (LABEL_EXPR): Rename from LABEL_STMT.
108         (SCOPE_STMT): Remove.
109         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
110         through COMPOUND_STMT.
111
112 2004-06-16  Richard Henderson  <rth@redhat.com>
113
114         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
115         c_finish_while_stmt_cond): Remove decls.
116         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
117         * c-typeck.c (c_begin_if_stmt): Return void.
118         (c_begin_else): Tidy.  Save stmt_count.
119         * c-tree.h (c_begin_if_stmt): Update decl.
120
121         * objc/objc-act.c (objc_build_try_enter_fragment,
122         objc_build_extract_fragment, objc_build_try_epilogue,
123         objc_build_catch_stmt, objc_build_catch_epilogue,
124         objc_build_finally_prologue, objc_build_finally_epilogue): Update
125         for if builder function changes.
126
127 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
128
129         * config/s390/s390.c (struct machine_function):  New member
130         last_restore_gpr.
131         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
132         Do not modify machine->save_return_addr_p or regs_ever_live.
133         Fill in machine->last_restore_gpr.
134         (s390_optimize_prolog): Use s390_frame_info to compute registers
135         to save/restore, remove duplicated code.
136         (s390_arg_frame_offset): Use s390_frame_info to compute frame
137         size, remove duplicated code.
138         (s390_emit_prologue): Adapt s390_frame_info call.  Update
139         machine->save_return_addr_p and regs_ever_live.
140         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
141         machine->last_save_gpr.
142
143 2004-06-16  Richard Henderson  <rth@redhat.com>
144
145         * c-parse.in (if_stmt_locus): Remove.
146         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
147         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
148         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
149         empty_locus.  Add stmt_count, saw_else.
150         (c_begin_if_stmt): Push if_stack here.
151         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
152         (c_finish_then, c_finish_else): Record empty_locus.
153         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
154         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
155         if or else body.
156         * c-tree.h: Update prototypes.
157
158 2004-06-16  Steven Bosscher  <stevenb@suse.de>
159
160         * tree.h (PHI_CHAIN): New.
161         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
162         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
163         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
164         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
165         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
166         when traversing a list of PHI_NODEs.
167
168 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
169
170         PR target/13292
171         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
172         on -msoft-float.
173         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
174         68040 and soft-float.
175         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
176         in the TARGET_68040_ONLY case.
177
178 2004-06-16 Peter Barada  <peter@the-baradas.com>
179
180         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
181         (movsi_cf): Make named, don't match TARGET_CFV4.
182         (pushexthisi_const): Use mov3q if possible.
183         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
184         to special case mvz.w for ColdFire V4.
185         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
186         to special case mvz.b for ColdFire V4.
187         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
188         divide.
189         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
190         * config/m68k/m68k.c(valid_mov3q_const):  New function.
191         (const_method): SWAP is valid for ColdFire.
192         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
193         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
194
195 2004-06-16  Richard Henderson  <rth@redhat.com>
196
197         * c-common.def (CASE_LABEL): Remove.
198         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
199         (match_case_to_enum_1): Likewise.
200         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
201         * c-dump.c (c_dump_tree): Likewise.
202         * c-gimplify.c (c_gimplify_stmt): Likewise.
203         * c-pretty-print.c (pp_c_statement): Likewise.
204         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
205         * tree.h (CASE_LOW): Update commentary.
206
207 2004-06-16  Richard Henderson  <rth@redhat.com>
208
209         * c-common.def (ASM_STMT): Remove.
210         * c-common.h (c_common_stmt_codes): Remove ASM_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-typeck.c (build_asm_expr): Use ASM_EXPR.
215         * tree.h: Fix commentary.
216
217 2004-06-16  Richard Henderson  <rth@redhat.com>
218
219         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
220         * c-common.c (c_add_case_label): Use LABEL_EXPR.
221         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
222         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
223         * c-dump.c (c_dump_tree): Likewise.
224         * c-gimplify.c (c_gimplify_stmt): Likewise.
225         * c-pretty-print.c (pp_c_statement): Likewise.
226         * c-parse.in (stmt): Use GOTO_EXPR.
227         (label): Use LABEL_EXPR.
228         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
229         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
230
231 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
232
233         * cfgcleanup.c (try_simplify_condjump): Update test to make
234         sure we have a conditional branch around am unconditional branch.
235
236 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
237
238         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
239
240 2004-06-16  Dale Johannesen  <dalej@apple.com>
241
242         * loop.c (loop_givs_reduce): Avoid miscompilation of
243         loops entered at bottom.
244
245 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
246
247         * cfglayout.c (fixup_reorder_chain): Handle case where the
248         destination of E_FALL is EXIT_BLOCK_PTR.
249
250 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
251
252         PR target/15653
253         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
254         after shifts before asm.
255
256 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
257
258         PR tree-optimization/15993
259         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
260         destination is unchanged.
261
262 2004-06-16  Andreas Jaeger  <aj@suse.de>
263
264         * doc/install.texi (Configuration): Update description for
265         --enable-version-specific-runtime-libs.
266
267 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
268
269         * doc/install.texi: boehm-gc now uses automake 1.8.5.
270
271 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
272
273         * toplev.h (rest_of_compilation): Adjust prototype.
274
275 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
276
277         * coverage.c: Remove argument to rest_of_compilation.
278         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
279         * passes.c (rest_of_compilation): Remove argument.
280         (pass_rest_of_compilation): New.
281         (rest_of_handle_final, rest_of_handle_delay_slots,
282         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
283         rest_of_handle_machine_reorg, rest_of_handle_regrename
284         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
285         rest_of_handle_regmove, rest_of_handle_tracer
286         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
287         rest_of_handle_web, rest_of_handle_branch_prob
288         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
289         rest_of_handle_addressof, rest_of_handle_jump_bypass
290         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
291         Check that the two arguments are actually superfluous.
292         * tree-optimize.c (register_dump_files): Add properties argument.
293         Track validity of passes.  Only initialize dump files for
294         tree-based passes.  Store the full set of provided passes in
295         the pass.
296         (init_tree_optimization_passes): Register pass_expand and
297         pass_rest_of_compilation.
298         (execute_one_pass): Do not track the presence of required properties
299         here.  Set in_gimple_form.  Do not update current_properties.
300         (current_properties): Remove.
301         (set_save_expr_context): Remove.
302         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
303         expand to RTL here, and do not call rest_of_compilation.  Push
304         GGC context even before gimplification.
305         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
306         (pass_expand, pass_rest_of_compilation): Declare.
307
308 2004-06-15  Jeff Law  <law@redhat.com>
309
310         * fold-const.c (swap_tree_comparison): No longer static.
311         (tree_swap_operands_p): Similarly.  Return true if both operands
312         are SSA_NAMEs and the first operand has a higher version number than
313         the second operand.
314         * tree.h (swap_tree_comparison): Prototype.
315         (tree_swap_operands_p): Prototype.
316         * tree-ssa-operands.c (get_expr_operands): For commutative
317         operators and relational comparisons, canonicalize the
318         order of the operands.
319
320 2004-06-15  Richard Henderson  <rth@redhat.com>
321
322         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
323         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
324         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
325         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
326         (finish_fname_decls, fname_decl): Use statement_lists.
327         (c_expand_expr_stmt): Don't set last_expr_type.
328         (c_type_hash): Fix indentation.
329         (c_safe_from_p): Don't follow TREE_CHAIN.
330         (c_tree_chain_matters_p): Remove.
331         * c-common.def (SCOPE_STMT): Remove.
332         (CLEANUP_STMT): Redefine to contain its own body.
333         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
334         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
335         Add x_cur_stmt_list.
336         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
337         (cur_stmt_list): New.
338         (STATEMENT_LIST_STMT_EXPR): New.
339         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
340         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
341         (CLEANUP_BODY): New.
342         (CLEANUP_DECL): Move to operand 2.
343         (c_common_stmt_codes): Remove SCOPE_STMT.
344         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
345         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
346         (c_push_function_context, c_pop_function_context): Don't save it.
347         (finish_decl): Set TREE_USED on the decl for a cleanup.
348         Use push_cleanup.
349         (store_parm_decls): Use statement lists.
350         (finish_function): Remove compstmt rule workaround.  Use statement
351         lists.  Call finish_fname_decls after finalizing the body.
352         (c_begin_compound_stmt): Move to c-typeck.c.
353         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
354         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
355         (c_genericize): Invoke them.
356         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
357         (c_build_bind_expr): Export.
358         (gimplify_block, gimplify_cleanup): Remove.
359         (gimplify_condition): Use gimplify_stmt.
360         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
361         (gimplify_if_stmt): Remove recursion hack.
362         (c_gimplify_expr): Remove STMT_EXPR handling.
363         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
364         (is_last_stmt_of_scope): Remove.
365         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
366         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
367         c_end_compound_stmt.
368         * c-objc-common.c (build_cdtor): Likewise.
369         * c-parse.in (primary): Use c_finish_stmt_expr.
370         (push_scope, pop_scope): Remove.
371         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
372         (c99_block_end, compstmt): Use c_end_compound_stmt.
373         (c99_block_lineno_labeled_stmt): Likewise.
374         (compstmt_primary_start): Use c_begin_stmt_expr.
375         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
376         (do_stmt_start): Fill in body directly.
377         (lineno_stmt): Avoid setting lineno on constants.
378         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
379         Remove SCOPE_STMT.
380         * c-semantics.c (begin_stmt_tree): Remove.
381         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
382         (add_stmt): Use statement lists.
383         (add_scope_stmt, finish_stmt_tree): Remove.
384         (push_cleanup): New.
385         * c-tree.h: Move some decls from c-common.h.
386         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
387         (do_case, c_finish_case): Likewise.
388         (c_finish_then): Take body for then as argument.
389         (c_finish_else): Similarly.
390         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
391         c_finish_for_stmt_incr, c_finish_for_stmt): New.
392         (c_begin_stmt_expr, c_finish_stmt_expr): New.
393         (c_begin_compound_stmt): Do scope management.
394         (c_end_compound_stmt): New.
395         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
396         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
397         Look through exception handling constructs.
398         (gimplify_bind_expr): Accept temporary argument.
399         (gimplify_target_expr): Special case BIND_EXPR bodies.
400         (gimplify_expr): Handle fallback == fb_none like a statement.
401         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
402         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
403         * langhooks.h (tree_chain_matters_p): Remove.
404         * stub-objc.c (objc_clear_super_receiver): New.
405         * tree-gimple.h (voidify_wrapper_expr): Update decl.
406         (append_to_statement_list, append_to_statement_list_force): Move
407         to tree-iterator.h.
408         * tree-inline.c (expand_call_inline): Update call.
409         (clone_body): Use statement lists.
410         (walk_tree): Don't check tree_chain_matters_p.
411         (copy_tree_r): Likewise.
412         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
413         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
414         * tree-iterator.h (append_to_statement_list,
415         append_to_statement_list_force): Moved from tree-gimple.h.
416         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
417         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
418         (objc_enter_block): Likewise.
419         (objc_exit_block): Use c_end_compound_stmt.
420         (objc_build_try_enter_fragment): Add #error and comment for
421         rewriting for OBJCPLUS.
422         (objc_build_extract_fragment, objc_build_try_epilogue,
423         objc_build_catch_stmt, objc_build_finally_prologue,
424         objc_build_finally_epilogue): Update for C statement builders.
425         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
426         Remove.
427
428 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
429
430         * df.c (df_reg_clobber_gen): Removed.
431         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
432         Make more effective for hard regs.
433         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
434
435 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
436
437         * c-pragma.h (c_lex_string_translate): Change type to int.
438         * c-parse.in: Change all assignments of c_lex_string_translate
439         to true and false to 1 and 0.
440         * c-lex.c (c_lex_string_translate): Likewise.
441         (lex_string): Convert string without translation in the -1
442         case.
443
444 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
445
446         * convert.h: Add include guards
447
448 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
449
450         * tree-flow-inline.h: Document all functions.
451
452 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
453
454         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
455         * tree-dfa.c (create_stmt_ann): Ditto.
456         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
457         * tree-inline.c (estimate_num_insns_1): Ditto.
458         * tree.c (tree_size): Ditto.
459         (make_node_stat): Ditto.
460         (tree_node_structure): Ditto.
461         (ephi_node_elt_check_failed): Remove.
462         (is_essa_node): Ditto.
463         * tree.def (EPHI_NODE): Ditto.
464         (EEXIT_NODE): Ditto.
465         (EUSE_NODE): Ditto.
466         (EKILL_NODE): Ditto.
467         * tree.h (EREF_NODE_CHECK): Remove.
468         (EPHI_NODE_ELT_CHECK): Ditto.
469         (struct tree_eref_common): Ditto.
470         (struct tree_euse_node): Ditto.
471         (struct ephi_arg_d): Ditto.
472         (struct tree_ephi_node): Ditto.
473         (ephi_node_elt_check_failed): Remove prototype.
474         (is_essa_node): Ditto.
475         (enum tree_node_structure_enum): Remove TS_E*_NODE.
476         (union tree_node): Remove E*_NODE uses.
477
478 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
479
480         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
481         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
482         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
483         Likewise.
484         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
485         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
486         expand_builtin_strcmp, expand_builtin_strncmp,
487         expand_builtin_frame_address): Likewise.
488         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
489         insert_one_insn): Likewise.
490         * calls.c (prepare_call_address, precompute_register_parameters,
491         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
492         * cfganal.c (flow_active_insn_p): Likewise.
493         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
494         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
495         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
496         make_extraction, recog_for_combine, gen_lowpart_for_combine,
497         simplify_comparison, record_dead_and_set_regs_1,
498         record_dead_and_set_regs, record_promoted_value,
499         check_promoted_subreg, get_last_value_validate, get_last_value,
500         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
501         unmentioned_reg_p_1): Likewise.
502         * conflict.c (mark_reg): Likewise.
503         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
504         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
505         merge_equiv_classes, flush_hash_table, invalidate,
506         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
507         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
508         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
509         record_jump_cond, cse_insn, addr_affects_sp_p,
510         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
511         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
512         cse_cc_succs, cse_condition_code_reg): Likewise.
513         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
514         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
515         cselib_record_set, cselib_record_sets): Likewise.
516         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
517         dbxout_block): Likewise.
518         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
519         * dojump.c (do_jump): Likewise.
520         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
521         is_based_loc, rtl_for_decl_location): Likewise.
522         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
523         set_decl_incoming_rtl, mark_user_reg): Likewise.
524         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
525         copy_to_suggested_reg, allocate_dynamic_stack_space,
526         probe_stack_range, hard_function_value): Likewise.
527         * expmed.c (store_bit_field, store_fixed_bit_field,
528         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
529         extract_split_bit_field, expand_divmod, emit_store_flag_force):
530         Likewise.
531         * expr.c (convert_move, convert_modes,
532         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
533         use_group_regs, emit_move_insn, emit_move_insn_1,
534         compress_float_constant, push_block, emit_single_push_insn,
535         emit_push_insn, get_subtarget, expand_assignment, store_expr,
536         store_constructor, store_field, force_operand, safe_from_p,
537         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
538         Likewise.
539         * final.c (profile_function, final_scan_insn, alter_subreg,
540         get_mem_expr_from_op, output_asm_operand_names, output_operand,
541         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
542         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
543         find_regno_partial, propagate_one_insn, init_propagate_block_info,
544         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
545         attempt_auto_inc, find_auto_inc, mark_used_regs,
546         count_or_remove_death_notes_bb): Likewise.
547         * function.c (find_temp_slot_from_address, update_temp_slot_address,
548         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
549         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
550         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
551         purge_single_hard_subreg_set, instantiate_decl,
552         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
553         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
554         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
555         expand_function_start, diddle_return_value, clobber_return_register,
556         expand_function_end, keep_stack_depressed, handle_epilogue_set,
557         update_epilogue_consts): Likewise.
558         * genemit.c (gen_exp, gen_insn): Likewise.
559         * genrecog.c (make_insn_sequence): Likewise.
560         * global.c (global_conflicts, expand_preferences, mark_reg_store,
561         mark_reg_conflicts, set_preference, reg_becomes_live,
562         build_insn_chain, mark_reg_change): Likewise.
563         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
564         Likewise.
565         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
566         Likewise.
567         * integrate.c (copy_rtx_and_substitute, try_constants,
568         subst_constants, mark_stores, allocate_initial_values): Likewise.
569         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
570         delete_computation, rtx_renumbered_equal_p, true_regnum,
571         reg_or_subregno): Likewise.
572         * lcm.c (reg_dies, reg_becomes_live): Likewise.
573         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
574         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
575         wipe_dead_reg, no_conflict_p): Likewise.
576         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
577         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
578         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
579         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
580         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
581         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
582         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
583         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
584         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
585         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
586         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
587         try_swap_copy_prop): Likewise.
588         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
589         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
590         Likewise.
591         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
592         reload_cse_simplify_operands, reload_combine,
593         reload_combine_note_store, reload_combine_note_use,
594         reload_cse_move2add, move2add_note_store): Likewise.
595         * print-rtl.c (print_rtx): Likewise.
596         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
597         contains_pseudo, handle_asm_insn): Likewise.
598         * ra-debug.c (ra_print_rtx_object, dump_constraints,
599         dump_static_insn_cost): Likewise.
600         * ra-rewrite.c (slots_overlap_p, emit_colors,
601         remove_suspicious_death_notes): Likewise.
602         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
603         register_operand, scratch_operand, nonmemory_operand,
604         constrain_operands): Likewise.
605         * reg-stack (check_asm_stack_operands, remove_regno_note,
606         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
607         subst_asm_stack_regs): Likewise.
608         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
609         record_address_regs, reg_scan_mark_refs): Likewise.
610         * regmove.c (discover_flags_reg, replacement_quality,
611         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
612         fixup_match_1): Likewise.
613         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
614         kill_set_value, copyprop_hardreg_forward_1): Likewise.
615         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
616         reload_inner_reg_of_subreg, can_reload_into, push_reload,
617         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
618         operands_match_p, decompose, find_reloads, find_reloads_toplev,
619         find_reloads_address, subst_indexed_address, find_reloads_address_1,
620         find_reloads_subreg_address, find_replacement,
621         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
622         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
623         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
624         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
625         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
626         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
627         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
628         do_output_reload, emit_reload_insns, gen_reload,
629         delete_address_reloads_1, inc_for_reload): Likewise.
630         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
631         update_reg_unused_notes, fill_slots_from_thread): Likewise.
632         * resource.c (update_live_status, mark_referenced_resources,
633         mark_set_resources, mark_target_live_regs): Likewise.
634         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
635         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
636         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
637         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
638         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
639         parms_set, find_first_parameter_load, keep_with_call_p,
640         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
641         num_sign_bit_copies1): Likewise.
642         * rtlhooks.c (gen_lowpart_general): Likewise.
643         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
644         sched_analyze): Likewise.
645         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
646         Likewise.
647         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
648         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
649         simplify_binary_operation, simplify_const_relational_operation,
650         simplify_subreg): Likewise.
651         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
652         expand_end_stmt_expr, expand_return, expand_decl,
653         expand_anon_union_decl): Likewise.
654         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
655         find_splittable_regs, find_splittable_givs, find_common_reg_term,
656         loop_iterations): Likewise.
657         * var-tracking.c (variable_union, variable_part_different_p,
658         variable_different_p, count_uses, add_uses, add_stores,
659         compute_bb_dataflow, set_variable_part, delete_variable_part,
660         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
661         Likewise.
662         * varasm.c (assemble_variable): Likewise.
663
664 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
665
666         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
667         definition.
668         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
669         #undef and #if 0'd definition.
670
671 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
672
673         * combine.c (distribute_notes): Comment typo fix.
674
675 2004-06-15  Roger Sayle  <roger@eyesopen.com>
676
677         * expmed.c (synth_mult): Mask bits of the multiplier to the
678         machine mode of the multiplication.  Don't consider shifts
679         by more than (or equal to) the width of the operation's mode.
680
681 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
682
683         * doc/install.texi: Yet another update for autoconf
684         and automake versions.
685
686 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
687
688         * function.h (struct function): Remove cannot_inline field.
689         (current_function_cannot_inline): Remove.
690         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
691         Simplify conditionals to ignore warn_return_type.
692         * tree-optimize.c (tree_rest_of_compilation): Do not reset
693         DECL_DEFER_OUTPUT.
694         * objc/objc-act.c (build_module_descriptor, finish_method_def):
695         Do not set current_function_cannot_inline.
696
697 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
698
699         * cfglayout.c (fixup_reorder_chain): Handle case where the
700         destination of E_TAKEN is EXIT_BLOCK_PTR.
701
702 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
703
704         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
705
706 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
707
708         * fold-const.c (operand_equal_p): Update comment.
709
710 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
711
712         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
713         (INCOMING_RETURN_ADDR_RTX): Define.
714         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
715         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
716         __builtin_return_address(0).
717         (m32r_return_addr): Added for __builtin_return_address(0).
718         (m32r_reload_lr): Ditto.
719
720         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
721
722 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
723
724         * doc/install.texi (Prerequisites): Update libbanshee,
725         fastjar, libcpp, libjava/libltdl entries to
726         automake 1.8.5.
727
728 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
729             Olivier Hainque  <hainque@act-europe.fr>
730
731         * function.c (fixup_var_refs): Also adjust the start of sequence
732         after fixing up the insns.
733
734 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
735
736         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
737
738 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
739
740         * doc/install.texi (Prerequisites): Update libstdc++ entry to
741         automake 1.8.5.
742
743 2004-06-14  Eric Christopher  <echristo@redhat.com>
744
745         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
746         to -mtpf-trace (-mno-tpf-trace).
747         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
748         documentation.
749
750 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
751
752         * real.c: Fix bit count in head comment.
753
754 2004-06-14  Jeff Law  <law@redhat.com>
755
756         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
757         PHIs where the destination or an argument is marked with
758         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
759
760 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
761
762         PR middle-end/15945
763         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
764         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
765
766 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
767
768         * opts.sh (var_args): Fix regexp.
769
770 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
771
772         PR target/15178
773         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
774
775 2004-06-14  Paul Brook  <paul@codesourcery.com>
776
777         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
778
779 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
780
781         * Makefile.in (FLAGS_H): New.
782         (flags.h): Replace by FLAGS_H.
783         * c.opt: Document Var, VarExists, Init and Report attributes.
784         * common.opt: Fill the values of the attributes.
785         * diagnostic.c (flag_fatal_errors): Do not define.
786         * except.c (flag_non_call_exceptions): Do not define.
787         * flags.h: Include options.h.  Remove declarations conflicting with
788         the automatically defined ones.
789         * opts.c: Remove automatically defined variables.
790         (handle_option): Perform default initialization.
791         (common_handle_option): Do not handle options covered by the
792         default initialization.
793         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
794         fields.
795         (CL_REPORT): New.
796         * opts.sh: Generate variable declarations, handle CL_REPORT.
797         * toplev.c: Remove automatically defined variables.
798         (f_options): Removed.
799         (print_switch_values): Use cl_options instead of f_options.
800         * toplev.h (version_flag): Declaration removed.
801
802 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
803
804         * config/sparc/sparc.h: Correct comment about availability of
805         little endian option.
806
807         * config.gcc: Remove sparc64-*-aout*.
808         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
809         * config/sparc/sp64-aout.h: Remove.
810         * config/sparc/aout.h: Remove.
811
812 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
813
814         * config/s390/s390.c: Include "tree-gimple.h".
815         (s390_gimplify_va_arg): New function.
816         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
817         (s390_va_arg): Remove.
818         * config/s390/s390-protos.h (s390_va_arg): Remove.
819         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
820
821 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
822
823         * basic-block.h (could_fall_through): Declare.
824         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
825         Fail if the source already has a fallthrough edge to the exit
826         block pointer.
827         (could_fall_through): New function.
828         * cfgbuild.c (make_edges): Check if we already have a fallthrough
829         edge to the exit block pointer.
830         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
831         not called before reload has completed.
832         Handle special case of first block having a fall-through exit edge.
833         (cfg_layout_finalize): Don't call it before reload or if we have
834         rtl epilogues.
835         (fixup_reorder_chain): A fall through to the exit block does not
836         require the block to come last.  Add sanity checks.
837         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
838         edges to the exit block.
839         * function.c (cfglayout.h): #include.
840         (thread_prologue_and_epilogue_insns): If we have neither return nor
841         epilogue, but a fall through to the exit block from mid-function,
842         force a non-fall-through exit.
843         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
844
845 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
846
847         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
848         for power5 and rs64a.  Correct condition for default.  Correct power3,
849         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
850
851 2004-06-13  Steven Bosscher <stevenb@suse.de>
852
853         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
854         Revert previous change, don't use CALL_P.
855
856 2004-06-13  Jason Merrill  <jason@redhat.com>
857
858         * tree.h: Move std_gimplify_va_arg_expr protoype here.
859         * tree-gimple.h: From here.
860
861 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
862
863         Fix PR tree-optimization/15979
864         Fix PR tree-optimization/15981
865         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
866         try to insert values undefined along some path.
867
868 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
869
870         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
871         are available everywhere too.
872
873 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
874
875         * fold-const.c (fold_checksum_tree <case 't'>): Only
876         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
877         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
878         EXPR is an INTEGERAL_TYPE or a scalar float type.
879
880 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
881
882         * tree-sra.c (tree_sra): Update documentation.
883
884 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
885
886         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
887         function_types_compatible_p, type_lists_compatible_p): Remove
888         flags parameter.
889         * c-tree.h (comptypes): Likewise.
890         (COMPARE_STRICT): Remove.
891         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
892         callers changed.
893
894 2004-06-13  Eric Christopher  <echristo@redhat.com>
895
896         * c-decl.c (diagnose_mismatched_decls): Improve error message.
897         Remove unused code.
898         * c-typeck.c (comptypes): Add location in standard we're checking.
899
900 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
901
902         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
903         version 3.3.4.
904
905 2004-06-12  Roger Sayle  <roger@eyesopen.com>
906
907         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
908         index by machine mode.
909         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
910         tables inside the loop over machine modes.
911         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
912         expand_divmod): Index shift*_cost by the appropriate machine mode.
913
914 2004-06-12  Eric Christopher  <echristo@redhat.com>
915
916         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
917         * config/s390/s390.md: Ditto.
918         * config/s390/s390.c: Ditto.
919         (s390_frame_info): Conditionalize frame and setup info on
920         TARGET_TPF_PROFILING.
921         (s390_arg_frame_offset): Ditto.
922
923 2004-06-12  Roger Sayle  <roger@eyesopen.com>
924
925         * fold-const.c (omit_two_operands): New function.
926         * tree.h (omit_two_operands): Prototype here.
927         * builtins.c (fold_builtin_unordered_cmp): New function to lower
928         C99 unordered comparison builtins to the appropriate tree nodes.
929         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
930         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
931         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
932         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
933         (simplify_builtin_memcmp, simplify_builtin_strncmp,
934         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
935         omit_two_operands function to build the required COMPOUND_EXPRs.
936
937 2004-06-12  Steven Bosscher <stevenb@suse.de>,
938             Andreas Jaeger  <aj@suse.de>
939
940         * gcse.c (record_set_info): Use predicates like REG_P.
941         (mems_conflict_for_gcse_p): Likewise.
942         (load_killed_in_block_p): Likewise.
943         (hash_expr_1): Likewise.
944         (insert_set_in_table): Likewise.
945         (gcse_constant_p): Likewise.
946         (hash_scan_set): Likewise.
947         (hash_scan_insn): Likewise.
948         (canon_list_insert): Likewise.
949         (record_last_mem_set_info): Likewise.
950         (record_last_set_info): Likewise.
951         (compute_hash_table_work): Likewise.
952         (mark_set): Likewise.
953         (mark_clobber): Likewise.
954         (mark_oprs_set): Likewise.
955         (compute_transp): Likewise.
956         (find_avail_set): Likewise.
957         (cprop_insn): Likewise.
958         (do_local_cprop): Likewise.
959         (cprop): Likewise.
960         (find_implicit_sets): Likewise.
961         (find_bypass_set): Likewise.
962         (bypass_conditional_jumps): Likewise.
963         (insert_insn_end_bb): Likewise.
964         (pre_insert_copy_insn): Likewise.
965         (compute_transpout): Likewise.
966         (next_ls_expr): Likewise.
967         (invalidate_any_buried_refs): Likewise.
968         (compute_ld_motion_mems): Likewise.
969         (reg_set_info): Likewise.
970         (reg_clear_last_set): Likewise.
971         (find_moveable_store): Likewise.
972         (compute_store_table): Likewise.
973         (find_loads): Likewise.
974         (store_killed_in_insn): Likewise.
975         (insert_insn_start_bb): Likewise.
976         (reg_set_between_after_reload_p): Likewise.
977         (reg_used_between_after_reload_p): Likewise.
978         (is_jump_table_basic_block): Likewise.
979         (gcse_after_reload): Likewise.
980         (hash_scan_set_after_reload): Likewise.
981         (compute_hash_table_after_reload): Likewise.
982
983 2004-06-12  Steven Bosscher  <stevenb@suse.de>
984
985         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
986         (INSN_P): Don't look at the rtx code class, just explicitly
987         check for one of the tree RTX_INSN codes.
988
989 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
990
991         * c-typeck.c (default_function_array_conversion): Use
992         build_pointer_type not TYPE_POINTER_TO.
993
994 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
995
996         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
997         * configure, config.in: Regenerate.
998         * system.h: Unconditionally define bool as unsigned char,
999         BOOL_BITFIELD as unsigned int.
1000         * domwalk.h: Use BOOL_BITFIELD.
1001
1002 2004-06-12  Andreas Jaeger  <aj@suse.de>
1003
1004         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1005         * libgcc-darwin.ver: Likewise.
1006
1007 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1008
1009         * reload.c (find_reloads): Force reload for pseudo registers on big
1010         endian machines.
1011
1012 2004-06-11  Steven Bosscher <stevenb@suse.de>
1013
1014         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1015         Don't try to mark anything control dependent on the entry or
1016         exit blocks.
1017
1018 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1019
1020         Fix Bug 15899
1021         Fix Bug 15460
1022         * tree.h (SSA_NAME_VALUE): New macro.
1023         (struct tree_ssa_name): Add value_handle member.
1024         * tree-ssa-pre.c: Replaced.
1025         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1026         (struct cst_ann_d): New.
1027         (struct expr_ann_d): New.
1028         (union tree_ann_d): Add cst_ann, expr_ann.
1029         * tree-dfa.c (create_cst_ann): New function.
1030         (create_expr_ann): Ditto.
1031         * tree-flow-inline.h (cst_ann): New function.
1032         (expr_ann): Ditto.
1033         (get_cst_ann): Ditto.
1034         (get_expr_ann): Ditto..
1035
1036 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1037
1038         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1039         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1040         _U_Qfcmp library function.
1041         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1042         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1043
1044         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1045         unspec used for loading address from DLT.
1046         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1047         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1048         Don't use short code sequence when loading the address of a nonlocal
1049         label.
1050         (nonlocal_goto): New expander.
1051         (indirect_goto): New jump pattern for nonlocal gotos.
1052         (short_jump): Remove extra whitespace.
1053         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
1054         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1055         pattern.
1056
1057 2004-06-11  Roger Sayle  <roger@eyesopen.com>
1058
1059         * expmed.c (synth_mult): Add an additional MODE argument for the
1060         machine mode of the multiplication.  Update recursive calls.  Use
1061         mode instead of word_mode for determining operation costs.
1062         (choose_mult_variant): Update calls to synth_mult with "mode".
1063
1064 2004-06-11  Richard Henderson  <rth@redhat.com>
1065
1066         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1067         and makes_aliased_stores.
1068
1069 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1070
1071         * doc/install.text (--enable-shared): Fix typo.
1072
1073 2004-06-11  Richard Henderson  <rth@redhat.com>
1074
1075         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1076         argument.  Use internal post for call to gimplify_expr.  Tidy
1077         rounded type size computation.
1078         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1079         get_initialized_tmp_var.
1080
1081 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
1082
1083         * doc/install.texi (--enable-shared): Update libobjc's shared library
1084         status.  Remove reference to libf2c.
1085
1086 2004-06-11  Jason Merrill  <jason@redhat.com>
1087
1088         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1089         * config/i386/i386.c (ix86_va_arg): Remove.
1090         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1091         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1092         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1093         * config/alpha/alpha.c (alpha_va_arg): Remove.
1094         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1095         * config/sparc/sparc.c (sparc_va_arg): Remove.
1096
1097         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1098         assignment might throw.
1099         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1100         expressions.
1101
1102 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1103
1104         PR 15886:
1105         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1106
1107 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1108
1109         * doc/install.texi (Prerequisites): Update documentation of
1110         required versions of autoconf and automake.  Remove mention of
1111         libf2c.
1112
1113 2004-06-11  Jason Merrill  <jason@redhat.com>
1114
1115         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1116         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1117
1118 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
1119
1120         * typeclass.h: Add GPL plus exception license.  Add include
1121         guard.
1122
1123 2004-06-10  Jason Merrill  <jason@redhat.com>
1124
1125         * gimplify.c (gimplify_modify_expr): Don't force a temporary
1126         of an aggregate_value_p type.
1127
1128 2004-06-10  Jeff Law  <law@redhat.com>
1129
1130         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1131         code when we are in gimple form.
1132
1133 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
1134
1135         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1136         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1137         (highest_ssa_version): Remove.
1138         * tree-outof-ssa.c (new_temp_expr_table): Replace
1139         highest_ssa_version with num_ssa_names.
1140         (dump_replaceable_exprs): Likewise.
1141         (rewrite_vars_out_of_ssa): Likewise.
1142         * tree-ssa-ccp.c (initialize): Likewise
1143         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1144         * tree-ssa-dce.c (tree_dce_init): Likewise.
1145         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1146         * tree-ssa-live.c (create_ssa_var_map): Likewise.
1147         (dump_var_map): Likewise.
1148         * tree-ssa.c (verify_ssa): Likewise.
1149         (kill_redundant_phi_nodes): Likewise.
1150         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
1151         * tree-ssanames.c: Include tree-flow.h
1152         (ssa_names): New varray.
1153         (init_ssa_names): Initialize ssa_names.
1154         Reserve the first slot of the ssa_names table.
1155         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1156         Assign version numbers using num_ssa_names.
1157
1158 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1159
1160         * doc/sourcebuild.texi (Front End): Add details of more
1161         installation documentation required.
1162
1163 2004-06-10  Brian Booth  <bbooth@redhat.com>
1164
1165         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1166         of V_MAY_DEF and V_MUST_DEF.
1167         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1168         num_vdefs to num_v_may_defs.
1169         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1170         to v_may_def.
1171         (redirect_immediate_uses): Ditto.
1172         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1173         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1174         Also add code to sum up the number of v_must_defs.
1175         (vdefs_disappeared_p): Replace with...
1176         (v_may_defs_disappeared_p): This.
1177         (v_must_defs_disappeared_p): New function.
1178         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1179         Also add code to mark new variables found in V_MUST_DEFs for
1180         renameing.
1181         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1182         vdef_ops to v_may_def_ops.
1183         (get_vdef_ops): Replace with...
1184         (get_v_may_def_ops): This.
1185         * tree-flow-inline.h (get_vdef_ops): Replace with...
1186         (get_v_may_def_ops): This.
1187         (get_v_must_def_ops): New function.
1188         (get_vdef_result_ptr): Replace with...
1189         (get_v_may_def_result_ptr): This.
1190         (get_vdef_op_ptr): Ditto with...
1191         (get_v_may_def_op_ptr); This.
1192         (get_v_must_def_op_ptr): New function.
1193         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1194         to v_may_def. Also add code to mark statements with
1195         V_MUST_DEFs as definition sites.
1196         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1197         add code to register new V_MUST_DEFs made by the statement.
1198         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1199         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1200         add check for V_MUST_DEFs.
1201         (find_replaceable_in_bb): Ditto.
1202         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1203         to v_may_def. Also add code to dump V_MUST_DEFs.
1204         * tree-sra.c (mark_all_vdefs): Replace with...
1205         (mark_all_v_may_defs): This.
1206         (mark_all_v_must_defs): New function.
1207         (create_scalar_copies): Replace call to mark_all_vdefs with
1208         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1209         (scalarize_structures): Rename occurences of vdef to v_may_def.
1210         Also add a check for V_MUST_DEFs.
1211         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1212         * tree-ssa-alias.c (global_var): Update comment.
1213         (compute_may_aliases): Ditto.
1214         (compute_points_to_and_addr_escape): Rename occurences of vdef
1215         to v_may_def. Also add code to mark variables in V_MUST_DEF
1216         operands as being written to.
1217         (group_aliases): Update comment.
1218         (maybe_create_global_var): Ditto.
1219         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1220         Also add a check for V_MUST_DEFs on GIMPLE registers.
1221         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1222         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1223         to v_may_def. Also add code to mark all V_MUST_DEF operands
1224         VARYING.
1225         (initialize): Ditto.
1226         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1227         code to update SSA_NAMEs in V_MUST_DEFs.
1228         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1229         to v_may_def.
1230         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1231         occurences of vdef to v_may_def. Also add code to mark statements
1232         with V_MUST_DEFs as necessary.
1233         (propagate_necessity): Rename occurences of vdef to v_may_def.
1234         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1235         occurences of vdef to v_may_def. Also add code to mark operands
1236         in V_MUST_DEFs for renaming.
1237         (eliminate_redundant_computations): Rename occurences of vdef
1238         to v_may_def.
1239         (record_equivalences_from_stmt): Rename occurences of vdef
1240         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1241         (optimize_stmt): Remove unnesessary variable vdefs. Update
1242         comment.
1243         (register_definitions_for_stmt): Rename occurences of vdef
1244         to v_may_def. Also add code to register definitions made with
1245         V_MUST_DEFs.
1246         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1247         (fix_stmt_v_may_defs): This.
1248         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1249         (dse_optimize_stmt): Ditto.
1250         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1251         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1252         used in virtual operators.
1253         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1254         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1255         renaming.
1256         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1257         definitions.
1258         (build_vdefs): Renamed to...
1259         (build_v_may_defs): This.
1260         (build_v_must_defs): New variable.
1261         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1262         v_may_def_ops.
1263         (append_vdef): Replace with...
1264         (append_v_may_def): This.
1265         (append_v_must_def): New function.
1266         (NUM_FREE): Increment for V_MUST_DEF
1267         (optype_freelist): Increment its size for V_MUST_DEF
1268         (allocate_vdef_optype): Replace with...
1269         (allocate_v_may_def_optype): This.
1270         (allocate_v_must_def_optype): New function.
1271         (free_vdefs): Replace with...
1272         (free_v_may_defs): This.
1273         (free_v_must_defs): New function.
1274         (remove_vdefs): Replace with...
1275         (remove_v_may_defs): This.
1276         (remove_v_must_defs): New function.
1277         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1278         add code to initialize build_v_must_defs.
1279         (finalize_ssa_vdefs): Replace with...
1280         (finalize_ssa_v_may_defs): This.
1281         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1282         (finalize_ssa_v_must_defs): New function.
1283         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1284         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1285         (verify_start_operands): Rename occurences of vdef to v_may_def.
1286         Also add check for build_v_must_defs.
1287         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1288         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1289         killing definitions.
1290         (get_expr_operands): Update comment and use opf_kill_def for
1291         killing definitions.
1292         (add_stmt_operand): Replace code that appends VDEFs with code
1293         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1294         otherwise.
1295         (add_call_clobber_ops): Update comments.
1296         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1297         (v_may_def_optype_d): This.
1298         (v_must_def_optype_d): New structure.
1299         (VDEF_OPS): Replace with...
1300         (V_MAY_DEF_OPS): This.
1301         (STMT_VDEF_OPS): Same with...
1302         (STMT_V_MAY_DEF_OPS): This.
1303         (NUM_VDEFS): And...
1304         (NUM_V_MAY_DEFS): This.
1305         (VDEF_RESULT_PTR): As well as...
1306         (V_MAY_DEF_RESULT_PTR): This.
1307         (VDEF_RESULT): Same goes for...
1308         (V_MAY_DEF_RESULT): This.
1309         (VDEF_OP_PTR): And...
1310         (V_MAY_DEF_OP_PTR): This.
1311         (VDEF_OP): And...
1312         (V_MAY_DEF_OP): This.
1313         (V_MUST_DEF_OPS): New macro.
1314         (STMT_V_MUST_DEF_OPS): Ditto.
1315         (NUM_V_MUST_DEFS): Ditto.
1316         (V_MUST_DEF_OP_PTR): Ditto.
1317         (V_MUST_DEF_OP): Ditto.
1318         (remove_vdefs): Replace signature with...
1319         (remove_v_may_defs): This.
1320         (remove_v_must_defs): New function signature.
1321         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1322         with calls to remove_v_may_defs and remove_v_must_defs.
1323         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1324         Also add code that marks left occurences of operands in V_MUST_DEFs.
1325         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1326         to v_may_def. Also add check for V_MUST_DEFs.
1327         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1328
1329 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1330
1331         PR target/15653
1332         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1333         insn.
1334
1335 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1336
1337         PR web/15263
1338         * doc/install.texi: Remove superfluous linebreak.
1339
1340 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1341
1342         * builtins.c (expand_builtin): Fall back to library function call for
1343         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1344         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1345         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1346         IMAGPART_EXPR respectively.
1347
1348 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1349
1350         * sh.c (dump_table): New argument start.  Changed caller.
1351         (fixup_mova): New function.
1352         (find_barrier): Use it.
1353         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1354         If the label a mova refers to is above the mova itself, change
1355         the mova into a load.
1356         * sh.md (*casesi_worker): Rename to:
1357         (casesi_worker_1).
1358         (casesi_worker_2): New insn.
1359
1360 2004-06-10  Jason Merrill  <jason@redhat.com>
1361
1362         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1363         hook signature.
1364         * tree-gimple.h: Adjust.
1365         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1366         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1367         Use fold_convert.
1368         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1369         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1370         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1371         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1372         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1373         Gimplify valist rather than calling stabilize_va_list.
1374
1375 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1376
1377         * Makefile.in (df.o): Remove fibheap dependency.
1378         * df.h: Do not include sbitmap.h.
1379         (struct ref): New field "data".
1380         (DF_REF_DATA): New accessor macro.
1381         (struct df): Field "dom" removed.
1382         (df_analyze_subcfg): New function.
1383         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1384         (transfer_function): ... new type.
1385         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1386         (iterative_dataflow): ... new function.
1387         (enum set_representation, struct dataflow): New.
1388         * df.c: Do not include fibheap.h.
1389
1390         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1391         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1392         prune_to_subcfg, df_bb_modify): New functions.
1393         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1394         df_refs_update, df_reg_table_realloc, df_ref_create,
1395         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1396         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1397         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1398
1399         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1400         (df_rd_transfer_function, df_ru_transfer_function,
1401         df_lr_transfer_function): Type of bitmaps changed to void *.
1402         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1403         (hybrid_search): ... new function.
1404         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1405         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1406         a worklist.  Do not process basic blocks unnecessarily.
1407
1408 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1409
1410         * fold-const.c (fold_abs_const): Make extern.
1411         * tree.h (fold_abs_const): Prototype here.
1412         * builtins.c (fold_builtin_fabs): New function to transform
1413         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1414         (fold_builtin_abs): New function to transform abs, labs, llabs
1415         and imaxabs builtins into ABS_EXPR tree nodes.
1416         (expand_builtin): Fall back to a function call for abs, labs,
1417         llabs and imaxabs builtins that survive constant folding.
1418         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1419         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1420
1421 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1422
1423         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1424         leaf function without unwind info at RP 0.
1425
1426 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1427
1428         PR c++/14791
1429         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1430         (fileptr_type_node): Define.
1431         * tree.c (build_common_tree_nodes_2): Initialize
1432         fileptr_type_node to ptr_type_node.
1433         * c-common.c (c_common_nodes_and_builtins): For C++, make
1434         fileptr_type_node a distinct type copy.
1435         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1436         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1437         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1438         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1439         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1440         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1441         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1442         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1443         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1444         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1445         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1446         the above *FILEPTR* types instead of *PTR*.
1447
1448 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1449
1450         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1451         match.
1452
1453 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1454
1455         * fold-const.c (fold_not_const): New function.
1456         (fold) <ABS_EXPR>: Don't bother testing wins.
1457         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1458         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1459
1460 2004-06-09  Richard Henderson  <rth@redhat.com>
1461
1462         PR middle-end/15228
1463         * function.c (assign_parms): Always set_mem_align with the computed
1464         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1465
1466 2004-06-09  Richard Henderson  <rth@redhat.com>
1467
1468         PR opt/15108
1469         * tree-tailcall.c (find_tail_calls): Don't check early for
1470         tail_recursion failure.
1471
1472 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1473
1474         Move SSA_NAME annotations into tree_ssa_name.
1475
1476         * tree-dfa.c (create_ssa_name_ann): Remove.
1477         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1478         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1479         (struct ssa_name_ann_d): Remove.
1480         (union tree_ann_d): Update.
1481         (ssa_name_ann_t): Remove.
1482         * tree-ssa-alias.c: (get_ptr_info): New local function.
1483         Replace references to ssa_name_ann_t with struct ptr_info_def.
1484         * tree-ssa-operands.c (get_expr_operands): Likewise.
1485         * tree.h (SSA_NAME_PTR_INFO): Define.
1486         (struct ptr_info_def): Declare.
1487         (struct tree_ssa_name): Add field 'ptr_info'.
1488
1489 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1490
1491         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1492         misplaced ')'.
1493
1494 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1495
1496         * config/i386/k6.md: Rewrite using the DFA model.
1497         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1498         cost of load-operation insns for the K6.
1499         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1500         (ia32_multipass_dfa_lookahead): Likewise.
1501
1502 2004-06-09  Richard Henderson  <rth@redhat.com>
1503
1504         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1505         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1506
1507 2004-06-09  Richard Henderson  <rth@redhat.com>
1508
1509         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1510
1511 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1512
1513         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1514         (CPP_ID_DATA_H): New.
1515         (gtype-desc.o): Update dependencies.
1516         (GTFILES): Use CPP_ID_DATA_H.
1517
1518 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1519
1520         Revert:
1521         PR c++/15815
1522         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1523         * doc/extend.texi: Deprecate #pragma interface and #pragma
1524         implementation.
1525
1526 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1527
1528         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1529
1530 2004-06-09  Richard Henderson  <rth@redhat.com>
1531
1532         * basic-block.h (struct edge_def): Add goto_locus.
1533         * tree-cfg.c (make_goto_expr_edges): Set it.
1534         (disband_implicit_edges): Use it.
1535         * tree-pretty-print.c (dump_implicit_edges): Print it.
1536
1537 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1538
1539         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1540
1541 2004-06-08  Jason Merrill  <jason@redhat.com>
1542
1543         Gimplify VA_ARG_EXPR into simpler forms.
1544         * target.h: Add gimplify_va_arg_expr hook.
1545         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1546         * fold-const.c (build_fold_addr_expr)
1547         (build_fold_addr_expr_with_type): Move from gimplify.c.
1548         * tree.h: Declare them.
1549         * gimplify.c (gimplify_and_add): New fn.
1550         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1551         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1552         (gimplify_expr): Use build_fold_*.
1553         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1554         don't know how to gimplify it.
1555         * builtins.c (std_gimplify_va_arg_expr): New fn.
1556         (dummy_object): New static fn.
1557         (gimplify_va_arg_expr): New fn.
1558         (stabilize_va_list): Use build_fold_*.
1559         * tree-gimple.h: Declare new fns.
1560         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1561         (ix86_gimplify_va_arg): New fn.
1562         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1563         (ia64_gimplify_va_arg): New fn.
1564         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1565         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1566         * alias.c (get_varargs_alias_set): Just return 0 for now.
1567
1568         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1569
1570 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1571
1572         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1573         of convert.
1574         * tree-inline.c (setup_one_parameter): Likewise.
1575         * tree-sra.c (csc_build_component_ref): Likewise.
1576         * tree-ssa-ccp.c (ccp_fold): Likewise.
1577         * tree-ssa-copy.c (cprop_operand): Likewise.
1578         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1579         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1580
1581 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1582
1583         PR rtl-optimization/15521:
1584         * sched-int.h (in_post_call_group_p): Change type to enum.
1585         * sched-deps.c (sched_analyze_insn):
1586         (sched_analyze): When in_post_call_group_p is post_call_initial,
1587         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1588         and also reset in_post_call_group_p to post_call.
1589         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1590         initialize in_post_call_group_p as post_call_initial.
1591         (init_deps): initialize in_post_call_group_p to not_post_call.
1592
1593 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1594
1595         PR ada/6637
1596         * doc/install.texi: List ada, libada as options to --enable-shared
1597
1598 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1599
1600         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1601         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1602         config.in entries.
1603         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1604         if hard links are not available.
1605         * configure: Regenerate.
1606         * config.in: Regenerate.
1607
1608 2004-06-08  Per Bothner  <per@bothner.com>
1609
1610         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1611
1612 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1613
1614         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1615         Correct formatting.
1616
1617 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1618
1619         PR target/15790
1620         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1621
1622 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1623
1624         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1625         POINTER_TYPE and INTEGER_TYPE.
1626
1627 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1628
1629         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1630         defined.
1631
1632 2004-06-08  Jeff Law  <law@redhat.com>
1633
1634         * doc/contrib.texi: Add entries for Stefan Olsson and
1635         Ola Ronnerup.
1636
1637 2004-06-08  DJ Delorie  <dj@redhat.com>
1638
1639         * toplev.c (floor_log2_wide): Replace loop with faster bit
1640         operations.
1641         (exact_log2_wide): Define in terms of the above.
1642         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1643         available.
1644
1645 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1646
1647         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1648         Make sure that we are in INDIRECT mode when getting the
1649         stub name.
1650
1651 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1652
1653         * h8300.md (extendqisi2_h8300): Add constraints.
1654         (ldm_h8300s_4_normal): Fix typo.
1655
1656 2004-06-08  Richard Henderson  <rth@redhat.com>
1657
1658         * gimple-low.c (struct lower_data): Replace the_return_label and
1659         one_return_stmt with return_statements.
1660         (lower_function_body): Process the entire list of return_statements.
1661         (lower_return_expr): Check source value before unifying return_exprs.
1662         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1663         for !aggregate_value_p.
1664         * tree-gimple.c: Update RETURN_EXPR grammer.
1665
1666 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1667
1668         PR target/15598
1669         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1670
1671 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1672
1673         PR rtl-optimization/15717
1674         * config/i386/i386.c (legitimate_constant_p): Do not allow
1675         x - symbol_ref.
1676
1677 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1678
1679         * gimplify.c (copy_if_shared_r): Revert:
1680         2004-05-21  Richard Henderson  <rth@redhat.com>
1681         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1682
1683 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1684
1685         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1686         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1687         (init_expmed): Initialize these cost arrays as appropriate.
1688         (store_bit_field, extract_bit_field): Correct whitespace.
1689         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1690         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1691         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1692         word_mode or compute_mode as appropriate.
1693
1694 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1695
1696         PR target/15783
1697         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1698         parameter.  Enumerate the registers inside the PARALLEL.
1699         (function_arg): Adjust call to function_arg_union_value.
1700         (function_value): Likewise.
1701
1702         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1703
1704 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1705
1706         * real.c (real_copysign): New function to implement libm's copysign.
1707         * real.h (real_copysign): Prototype here.
1708         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1709         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1710         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1711         fold_builtin_isdigit): Add function prototypes.
1712         (fold_builtin_copysign): New function to fold copysign, copysignf
1713         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1714         constant arguments at compile-time using real_copysign.  Fold
1715         copysign(X,Y) as fabs(X) if Y is always non-negative.
1716         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1717         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1718
1719 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1720
1721         * tree.c (iterative_hash_expr): Use real_hash.
1722
1723 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1724
1725         PR c/14765
1726         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1727         NULL_TREE.
1728
1729 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1730
1731         PR c++/15815
1732         * doc/extend.texi: Deprecate #pragma interface and #pragma
1733         implementation.
1734
1735 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1736
1737         PR middle-end/15666
1738         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1739         builtin decl as well.
1740
1741 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1742
1743         PR c/14649
1744         * c-typeck.c (require_constant_value, require_constant_elements):
1745         Move declarations to the top of the file.
1746         (build_function_call): If we require a constant value, fold with
1747         fold_initializer.  If the result is a constant, and the function
1748         wasn't called using __builtin_foo, issue a pedantic warning.
1749         (build_unary_op): If we require a constant value, fold tree with
1750         fold_initializer.
1751         (build_binary_op): Use require_constant_value to determine whether
1752         to call fold or fold_initializer.
1753
1754 2004-06-07  Richard Henderson  <rth@redhat.com>
1755
1756         * gimple-low.c (struct lower_data): Add the_return_label and
1757         one_return_stmt.
1758         (lower_function_body): Initialize and use them.
1759         (lower_return_expr): New.
1760         (lower_stmt): Call it.
1761         * gimplify.c (gimplify_return_expr): Force the argument to be either
1762         null or a result_decl.
1763         * tree-gimple.c: Update gimple grammer to match.
1764         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1765         coalescing of result_decls.
1766
1767 2004-06-07  Richard Henderson  <rth@redhat.com>
1768
1769         PR rtl-opt/15193
1770         * expmed.c (extract_bit_field): Fix vector_extract return.
1771
1772         * config/i386/i386.md (negv4sf2): New pattern.
1773
1774 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1775
1776         PR c++/15337
1777         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1778         message.
1779
1780 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1781
1782         * config.in: Regenerate.
1783
1784 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1785
1786         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1787         SWITCH_LABELS are always sorted.
1788
1789 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1790
1791         * hooks.c (hook_int_void_1): New generic hook.
1792         * hooks.h (hook_int_void_1): Add prototype.
1793         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1794         Define to hook_int_void_1.
1795         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1796         with dummies for the new one.
1797
1798 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1799
1800         * tree.h (lvalue_or_else): Delete function prototype.
1801         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1802
1803 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1804
1805         PR target/14542
1806         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1807         a live change of a register after peephole replacement.
1808
1809 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1810
1811         PR c/13519
1812         * c-typeck.c (composite_type, common_pointer_type): New functions.
1813         (common_type): Split parts into composite_type and
1814         common_pointer_type.  Ensure that arithmetic operations return
1815         unqualified types without attributes.  Don't make composite type
1816         of signed enum and compatible integer be unsigned.
1817         (build_conditional_expr, build_binary_op): Use
1818         common_pointer_type.
1819         * c-decl.c (merge_decls): Use composite_type.
1820         * c-tree.h (composite_type): Declare.
1821
1822 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1823
1824         PR target/14457
1825         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1826         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1827         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1828         (inhibit_libc): Must define.
1829         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1830         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1831         ("xorhi3"): Likewise.
1832
1833 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1834
1835         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1836         always_inline pass.
1837
1838 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1839
1840         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1841         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1842
1843 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1844
1845         * regclass.c (init_reg_sets): Check for missing registers in target
1846         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1847
1848 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1849
1850         * Makefile.in (MKDEPS_H): New shorthand.
1851         (c-opts.o): Update dependencies.
1852         * c-opts.c: Include mkdeps.h.
1853         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1854         not cpp_add_dependency_target.
1855
1856 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1857
1858         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1859         * config/v850/v850.md: Convert to DFA scheduler description.
1860
1861 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1862
1863         PR fortran/15478
1864         * doc/install.texi: Document GMP as prerequisite. Document
1865         --with-gmp and --with-gmp-dir configure options.
1866         * fortran/gfortran.texi: Remove section "Compiling and testing",
1867         remove TOC reference to it.
1868
1869 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1870
1871         * combine.c(simplify_shift_const): Check shift amount is a
1872         CONST_INT.
1873
1874 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1875
1876         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1877         opening asm_out_file.
1878         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1879         reading asm_out_file. Replace fflush after reading asm_out_file
1880         with fseek.
1881         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1882         default and add to HOST_HOOKS_INITIALIZER.
1883         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1884         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1885         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1886         to set mmi.offset padding.
1887          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1888         $(srcdir)/config/i386/winnt.c.
1889         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1890         (i[34567]86-*-uwin*): Likewise.
1891         *i[34567]86-*-interix3*): Likewise.
1892         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1893         * config/i386/host-mingw32.c: New file.
1894         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1895         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1896         (extern_head): Likewise.
1897         (struct export_list) Likewise.
1898         (export_head): Likewise.
1899         (i386_pe_record_external_function): Use ggc_alloc.
1900         (i386_pe_record_exported_symbol): Likewise.
1901         Include "gt-winnt.h" at end.
1902         * doc/hostconfig.texi: Document
1903         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1904
1905 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1906
1907         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1908         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1909         trailing whitespace before EOLs and before TABs.
1910         (MAX_CODE_ALIGN): Remove unused macro.
1911         (CALL_USED_REGISTERS): Reformat and add comments.
1912
1913 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1914
1915         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1916         to enumerate -lmudflap* and dependencies when linking.
1917
1918 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1919
1920         PR target/15822
1921         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1922
1923 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1924
1925         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1926         * genconditions.c (write_header): Back out removal of reload.h.
1927
1928 2004-06-04  Jan Hubicka  <jh@suse.cz>
1929
1930         Re-apply hopefully fixed patch:
1931         * i386.md (UNSPECV_EH_RETURN): Kill.
1932         (eh_return): Use jump_insn.
1933         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1934
1935 2004-06-04  Jeff Law  <law@redhat.com>
1936
1937         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1938
1939 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1940
1941         * except.c (for_each_eh_region): New function.
1942         * except.h (for_each_eh_region): Add a prototype for it.
1943         * tree-cfg.c (update_eh_labels): New function, callback for
1944         for_each_eh_region.
1945         (label_for_bb): Make global static, unfortunately.
1946         (cleanup_dead_labels): Also update label references for
1947         exception regions.
1948
1949 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1950
1951         * config/mips/mips.c (struct irix_section_align_entry): Fix
1952         GTY marker.
1953
1954 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1955
1956         * toplev.c (check_global_declarations): Don't ask for
1957         DECL_ASSEMBLER_NAME unless the function really is declared
1958         static and not defined.
1959
1960 2004-06-03  Matt Austern  <austern@apple.com>
1961
1962         PR c++/15428
1963         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1964         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1965         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1966         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1967         documentation to reflect the new macro name and to clarify its
1968         meaning.
1969
1970 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1971
1972         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1973
1974 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1975
1976         * config/darwin.c (machopic_indirect_data_reference): Copy
1977         the SYMBOL_REF_DECL from the original RTX for the new
1978         non-lazy pointer RTX.
1979
1980 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1981
1982         * tree.h: Remove include of version.h
1983         * c-cppbuiltin.c: Include version.h
1984         * diagnostic.c: Include version.h
1985         * dwarf2out.c: Include version.h
1986         * toplev.c: Include version.h
1987         * vmsdbgout.c: Include version.h
1988         * Makefile.in: Remove dependency on version.h from TREE_H, and
1989         add dependencies to required .o targets
1990
1991 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1992
1993         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1994         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1995         (TARGET_H): Add insn-modes.h.
1996         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1997         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1998         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1999         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2000         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2001         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2002         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2003         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2004         CFGLAYOUT_H.
2005         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2006         Replace ra.h with RA_H.
2007         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2008         insn-recog.o): Replace resource.h with RESOURCE_H.
2009         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2010         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2011         with SCHED_INT_H.
2012         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2013         ra-rewrite.o): Replace df.h with DF_H.
2014         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2015         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2016         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2017         (insn-conditions.o): Remove unused reload.h.
2018         * cfglayout.h: Add include guard.  Include basic-block.h.
2019         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2020         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2021         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2022         basic-block.h.
2023         * genconditions.c:  Remove reload.h.
2024         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2025         hard-reg-set.h, insn-modes.h.
2026         * resource.h: Add include guard.  Include hard-reg-set.h.
2027         * sched-int.h:  Add include guard.  Include insn-attr.h,
2028         basic-block.h, rtl.h.
2029         * target.h: Add include guard.  Include insn-modes.h.
2030         * tree-ssa-live.h: Include partition.h.
2031
2032 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
2033                 Kenneth Zadeck <zadeck@naturalbridge.com>
2034
2035         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2036         (add_var_to_ssa_edges_worklist): Add value argument.
2037         Update callers.
2038         Use new worklist.
2039         (process_ssa_edge_worklist): New function.
2040         (tree_ssa_ccp): Move worklist processing core to
2041         process_ssa_edge_worklist, and just call that for the two worklists.
2042
2043 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2044
2045         * basic-block.c (tail_recursion_label_list): Don't declare.
2046         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
2047         accordingly.
2048         * cfgbuild.c (find_label_refs): Remove.
2049         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2050         * cfgcleanup.c (tail_recursion_label_p): Remove.
2051         (merge_blocks_move): Do not check for tail recursion.
2052         (try_optimize_cfg): Likewise.
2053         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2054         * cfgrtl.c (tail_recursion_label_list): Remove.
2055         * except.c (remove_unreachable_regions): Don't handle
2056         CALL_PLACEHOLDER insns.
2057         (convert_from_eh_region_ranges_1, can_throw_internal,
2058         can_throw_external): Likewise.
2059         * function.c (free_after_compilation): Don't clear
2060         x_tail_recursion_label.
2061         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2062         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2063         (reorder_blocks_1): Likewise.
2064         * function.h (struct function): Remove x_tail_recursion_label
2065         member.  Don't define tail_recursion_label.
2066         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2067         * print-rtl.c (print_rtx): Likewise.
2068         * rtl.def (CALL_PLACEHOLDER): Remove.
2069         * rtl.h (sibcall_use_t): Remove enum.
2070         (optimize_sibling_and_tail_recursive_calls,
2071         replace_call_placeholder): Remove function prototypes.
2072         * stmt.c (tail_recursion_args): Remove.
2073         (optimize_tail_recursion): Remove.
2074         (expand_return): Don't check for possible tail recursion.
2075         * tree.h (optimize_tail_recursion): Remove prototype.
2076
2077 2004-06-02  Jan Hubicka  <jh@suse.cz>
2078
2079         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
2080         return_stmt.
2081
2082 2004-06-02  Jason Merrill  <jason@redhat.com>
2083
2084         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2085         Do include c-parse.in.
2086
2087 2004-06-02  Eric Christopher  <echristo@redhat.com>
2088
2089         * c-typeck.c (common_type): Don't lose type qualifiers
2090         when creating new variants.
2091
2092 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2093
2094         PR tree-optimization/14042
2095         PR tree-optimization/14729
2096         PR tree-optimization/14736
2097         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2098         Check the type which the pointer points to
2099         instead of the pointer types.
2100
2101 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2102
2103         PR tree-optimization/15738.
2104         * builtins.c (fold_builtin_strchr): Transform
2105         strrchr (s, '\0') to strchr (s, '\0').
2106
2107 2004-06-02  Steven Bosscher  <stevenb@suse.de>
2108
2109         * i386.c (ix86_adjust_cost): Don't increase the cost for
2110         load+operation for PROCESSOR_PENTIUMPRO, it is already
2111         modelled in the DFA description
2112
2113 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
2114
2115         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2116         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2117         (ALIAS_H, EMIT_RTL_H): New.
2118         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2119         (cfgcleanup.o): Add EMIT_RTL_H.
2120         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2121         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2122         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2123         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2124         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
2125         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2126         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2127         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2128         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2129         set_mem_size): Move to emit-rtl.h.
2130         * emit-rtl.h: New.
2131         * alias.h: New.
2132
2133 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
2134
2135         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2136         Call fixup_memory_subreg only if the MEM is equal to 'var'.
2137         Adjust recursive calls to self.
2138         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2139
2140 2004-06-01  Richard Henderson  <rth@redhat.com>
2141             Andrew Pinski  <pinskia@physics.uc.edu>
2142
2143         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2144         (primary): Handle offsetof.  Add error productions for faux functions.
2145         Move component_ref objc checking to build_component_ref.
2146         (reswords): Add offsetof.
2147         (rid_to_yy): Add offsetof.
2148         * c-tree.h (build_offsetof): Declare.
2149         * c-common.h (objc_is_public): Declare.
2150         * c-typeck.c (build_component_ref): Check objc_is_public.
2151         (build_offsetof): New.
2152         * stub-objc.c (objc_is_public): New.
2153         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2154         from is_public.
2155         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2156         * doc/extend.texi (Offsetof): Move from C++ section to C section
2157         and rewrite for __builtin_offsetof.
2158
2159 2004-06-01  Peter Barada  <peter@the-baradas.com>
2160             Peter Jakubek  <peter@laseranimation.com>
2161
2162         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2163         a scratch to perform an add to memory.
2164
2165 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2166
2167         PR target/14018
2168         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2169         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2170         m68k_align_funcs): Remove.
2171         (override_options): Remove code to handle -malign-* options.
2172         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2173         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2174         (m68k_align_loops_string, m68k_align_jumps_string,
2175         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2176         m68k_align_funcs): Remove definitions.
2177
2178 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2179
2180         PR target/15626
2181         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2182         by the Sun linker in conjunction with the Sun assembler.
2183         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2184
2185 2004-06-01  Jeff Law  <law@redhat.com>
2186
2187         * stmt.c (expand_decl): Be more selective about calling
2188         mark_reg_pointer.
2189
2190 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2191
2192         PR objc/7993
2193         * objc-act.c (is_private): Do not emit the 'instance variable %s
2194         is declared private' error.
2195         (is_public): Emit the error after calling is_private.
2196         (lookup_objc_ivar): If the instance variable is private, return 0
2197         - the instance variable is invisible here.
2198
2199 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2200
2201         * doc/invoke.texi (-static-libgcc): Explicitly mention
2202         non-GNU linkers.
2203
2204 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2205
2206         PR target/12968
2207         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2208
2209 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2210
2211         PR c/15749
2212         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2213         misuses of structures with flexible array members if
2214         in_system_header.
2215
2216 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2217
2218         PR target/15693
2219         * config/sparc/sparc.c (compare_operand): New predicate.
2220         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2221         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2222         operand is a ZERO_EXTRACT and the second operand is not zero,
2223         force the former to a register.
2224         (cmpdi expander): Likewise.
2225
2226 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2227
2228         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2229         looks at.
2230         * alias.c (alias_invariant_size): Make alias_invariant_size
2231         static, fix GTY marker.
2232
2233 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2234
2235         PR tree-optimization/15743.
2236         * builtins.c (fold_builtin_1): Fold index() and rindex().
2237
2238 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2239
2240         PR middle-end/15069
2241         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2242         into "X < 0" (where C is the signbit) if X's type is a full mode.
2243
2244 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2245
2246         * pa.md: Disable the peephole2 patterns that generate indexed
2247         floating-point stores when indexing is disabled.
2248
2249 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2250
2251         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2252         (pp_c_right_bracket): Likewise.
2253         (pp_c_star): Likewise.
2254         (pp_c_ampersand): Define.
2255         * c-pretty-print.h (pp_c_left_bracket): Declare.
2256         (pp_c_right_bracket): Likewise.
2257         (pp_c_star): Likewise.
2258         (pp_c_ampersand): Likewise.
2259
2260 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2261
2262         * config/sol2.h (__enable_execute_stack): ANSIfy function
2263         definition.
2264
2265 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2266
2267         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2268         HAVE_DOS_BASED_FILESYSTEM.
2269
2270 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2271
2272         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2273         Only look at case labels if the immediate dominator is also
2274         the only predecessor.  Don't look for more case labels if the
2275         first seen is a case range.
2276
2277 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2278
2279         * builtins.c: Add a prototype for fold_builtin_strchr().
2280
2281 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2282
2283         Revert this patch:
2284         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2285
2286         * combine.c (gen_binary): Remove.
2287         (known_cond, simplify_shift_const
2288         find_split_point, combine_simplify_rtx,
2289         simplify_if_then_else, simplify_set,
2290         simplify_logical, expand_field_assignment,
2291         extract_left_shift, force_to_mode,
2292         if_then_else_cond, apply_distributive_law,
2293         simplify_and_const_int, simplify_shift_const,
2294         gen_lowpart_for_combine, simplify_comparison,
2295         reversed_comparison): Replace with
2296         simplify_gen_binary, simplify_gen_relational or
2297         distribute_and_simplify_rtx.
2298         (distribute_and_simplify_rtx): New function.
2299
2300 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2301
2302         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2303         when generating PIC code.
2304
2305 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2306
2307         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2308         (c_expand_body): here.
2309         (c_expand_decl): Move to ...
2310         * c-common.c (c_expand_decl): Here and remove check for nested
2311         functions.
2312         * c-common.h (c_expand_decl): Add prototype.
2313         * c-tree.h (c_expand_decl): Remove.
2314
2315 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2316
2317         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2318         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2319         fold_mathfn_compare, fold_inf_compare, fold,
2320         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2321         Use constant_boolean_node where appropriate.  Don't bother using
2322         fold_convert on the second argument to omit_one_operand.
2323
2324 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2325
2326         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2327         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2328         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2329         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2330         Add missing (but documented) tree nodes to the index.
2331
2332 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2333
2334         PR tree-optimization/14819
2335         * builtins.c (fold_builtin_strchr): New.
2336         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2337         with fold_builtin_strchr().
2338
2339 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2340
2341         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2342         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2343         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2344         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2345         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2346         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2347         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2348         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2349         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2350         formatting.
2351
2352 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2353
2354         * gimplify.c (sort_case_labels): New.  Split out from...
2355         (gimplify_switch_expr): ...here.  Use it.
2356         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2357         the SWITCH_EXPR created here before leaving the function.
2358         * tree.c (sort_case_labels): Add prototype.
2359
2360 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2361
2362         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2363         of BOOLEAN_TYPE.
2364
2365 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2366
2367         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2368         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2369         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2370         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2371         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2372         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2373         comment typos.  Follow spelling conventions.
2374
2375 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2376
2377         * gengtype-yacc.y: Add NESTED_PTR token.
2378         (option): Record `nested_ptr' option.
2379         * gengtype-lex.l: Handle `nested_ptr' keyword.
2380         * gengtype.c (walk_type): Process `nested_ptr' option.
2381         * gengtype.h (struct nested_ptr_data): New.
2382         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2383         * stringpool.c (struct string_pool_data): Make 'entries' point to
2384         ht_identifier instead of tree.
2385         (gt_pch_save_stringpool): Don't adjust pointers.
2386         (gt_pch_restore_stringpool): Call ht_load.
2387
2388 2004-05-29  Jason Merrill  <jason@redhat.com>
2389
2390         * gimplify.c (gimplify_expr): Don't build a statement list
2391         if no gimplification was necessary.
2392
2393 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2394
2395         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2396         and %> as well as %'.
2397         * c-format.c: Use %< and %>.
2398         (gcc_diag_char_table, gcc_cdiag_char_table,
2399         gcc_cxxdiag_char_table): Update.
2400
2401 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2402
2403         * c-typeck.c (common_type): Correct comment.
2404
2405 2004-05-29  Peter Barada  <peter@the-baradas.com>
2406
2407         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2408         * config/m68k/m68k.c (const_method): Likewise.
2409         * config/m68k/m68k.c (const_int_cost): Likewise.
2410         * config/m68k/m68k.c (const_int_cost): Likewise.
2411         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2412
2413 2004-05-29  Peter Barada  <peter@the-baradas.com>
2414
2415         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2416         addressing.
2417         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2418         movsi,movhi,movqi insn patterns.
2419
2420 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2421
2422         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2423
2424         PR target/15720
2425         * config/darwin.c (machopic_indirect_call_target): Copy
2426         the SYMBOL_REF_DECL from the original RTX for the new
2427         stub RTX.
2428
2429 2004-05-28  DJ Delorie  <dj@redhat.com>
2430
2431         * stor-layout.c (place_field): Revert erroneous commit.
2432
2433 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2434
2435         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2436         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2437         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2438         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2439         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2440         vec_ste): Remove type checks for integral parameters and literals
2441         from '..._args_eq' macros.
2442
2443 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2444
2445         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2446
2447 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2448
2449         * testsuite/g++.dg/charset/function.cc: New.
2450
2451         * testsuite/gcc.dg/charset/function.c: New.
2452
2453         * c-decl.c (c_make_fname_decl): Free return value from
2454         fname_as_string.
2455
2456         * cp/decl.c (cp_make_fname_decl): Free return value from
2457         fname_as_string.
2458
2459         * c-common.c (fname_as_string): Translate if necessary.
2460
2461 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2462
2463         * stringpool.c: Add comments to PCH saving/restoring routines.
2464
2465 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2466
2467         * c-common.c (c_estimate_num_insns_1): Kill.
2468         (c_estimate_num_insns): Kill.
2469         * c-common.h (c_estimate_num_insns): Kill.
2470
2471         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2472         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2473         Remove comment about not checking for
2474         _POSIX_PRIORITY_SCHEDULING.
2475         * gthr-posix.c: Likewise.
2476
2477 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2478             Roger Sayle  <roger@eyesopen.com>
2479
2480         PR rtl-optimization/15649
2481         Add LTGT_EXPR and improve pretty-printing of unordered
2482         comparisons.
2483         * c-common.c (c_common_truthvalue_conversion):
2484         Handle LTGT_EXPR.
2485         * c-typeck.c (build_binary_op): Likewise.
2486         * dojump.c (do_jump): Likewise.
2487         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2488         * predict.c (tree_predict_by_opcode): Likewise.
2489         * real.c (real_compare): Likewise.
2490         * tree-cfg.c (verify_expr): Likewise.
2491         * tree-inline.c (estimate_num_insns_1): Likewise.
2492         * tree-pretty-print.c (dump_generic_node): Likewise.
2493         Handle ORDERED_EXPR, UNORDERED_EXPR.
2494         (op_symbol): Print unordered comparisons differently
2495         than ordered ones.
2496         * tree.def (LTGT_EXPR): New '<' tree code.
2497         * doc/c-tree.texi (Expressions): Document floating-point
2498         comparison nodes.
2499
2500         Fold comparisons between floating point values.
2501         * fold-const.c (enum comparison_code): New, from
2502         #define'd constants.  Define compcodes for unordered
2503         comparisons and for invalid transformations.
2504         (invert_tree_comparison): Add "honor_nans" parameter.
2505         (fold_truthop): Revamp to work on floating-point types too.
2506         (comparison_to_compcode): Support unordered comparisons.
2507         Use new enum comparison_code.
2508         (compcode_to_comparison): Likewise.
2509         (combine_compcodes): New function.
2510         (invert_truthvalue): Let invert_tree_comparison decide
2511         whether it is valid to fold the comparison.  Fold ORDERED
2512         and UNORDERED even if flag_unsafe_math_optimizations is off,
2513         and the remaining even if flag_unsafe_math_optimizations
2514         is off but we are under -fno-trapping-math.
2515         (fold_relational_const): Integer modes do not honor NaNs.
2516
2517 2004-05-28  Paul Brook  <paul@codesourcery.com>
2518
2519         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2520
2521 2004-05-28  Paul Brook  <paul@codesourcery.com>
2522
2523         * config/arm/arm.c (thumb_force_lr_save): New function.
2524         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2525         thumb_output_function_prologue): Use it.
2526         (thumb_expand_prologue): Set lr_save_eliminated.
2527
2528 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2529
2530         * config/mips/mips.md (extendsidi2): Tie the source and destination
2531         of the register alternative.  Split it into nothing.
2532
2533 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2534
2535         * rtl.h (skip_consecutive_labels): Declare.
2536         * emit-rtl.c (skip_consecutive_labels): New function.
2537         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2538         * jump.c (follow_jumps): Say what null return values mean.
2539
2540 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2541
2542         PR target/13250
2543         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2544
2545 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2546
2547         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2548         libgcc-std.ver.
2549         * config/sh/libgcc-std.ver: New file.
2550
2551 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2552
2553         * except.c: Revert change of 2004-05-26.
2554         * config/i386/i386.md: Revert change of 2004-05-27.
2555
2556 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2557
2558         * configure.ac: Remove --enable-tree-browser option.
2559         Define TREEBROWSER when ac_tree_checking is defined.
2560         * configure: Rebuilt.
2561
2562 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2563
2564         * expr.c (store_constructor): Restore sanity check on
2565         the size of the type before clearing.
2566
2567 2004-05-27  Jan Hubicka  <jh@suse.cz>
2568
2569         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2570
2571 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2572
2573         * combine.c (gen_binary): Remove.
2574         (known_cond, simplify_shift_const
2575         find_split_point, combine_simplify_rtx,
2576         simplify_if_then_else, simplify_set,
2577         simplify_logical, expand_field_assignment,
2578         extract_left_shift, force_to_mode,
2579         if_then_else_cond, apply_distributive_law,
2580         simplify_and_const_int, simplify_shift_const,
2581         gen_lowpart_for_combine, simplify_comparison,
2582         reversed_comparison): Replace with
2583         simplify_gen_binary, simplify_gen_relational or
2584         distribute_and_simplify_rtx.
2585         (distribute_and_simplify_rtx): New function.
2586         * simplify-rtx.c (simplify_binary_operation):
2587         Use nonzero_bits to simplify ANDs where we are
2588         turning off bits already known to be off in OP0.
2589
2590 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2591
2592         PR target/14478
2593         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2594
2595 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2596
2597         PR middle-end/14084
2598         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2599         to size of decl.
2600
2601 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2602
2603         PR/14924
2604         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2605
2606 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2607
2608         * tree.h: Fix comment typo.
2609
2610 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2611
2612         * gimplify.c (compare_case_labels): New function.
2613         (gimplify_switch_expr): Sort case labels, and make sure the
2614         last label in the label vector is the default case.
2615         * tree-cfg.c (group_case_labels): New function.
2616         (build_tree_cfg): Cleanup redundant labels and group case labels
2617         before creating edges.
2618         (cleanup_dead_labels): Handle GOTO_EXPRs.
2619         (find_case_label_for_value): Use a binary search to find the
2620         case label for the given value.
2621         * tree-gimple.c: Mention that labels are sorted, and that the
2622         last label must be the default.
2623
2624 2004-05-27  Jan Hubicka  <jh@suse.cz>
2625
2626         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2627
2628 2004-05-27  Jan Hubicka  <jh@suse.cz>
2629
2630         * i386.md (UNSPECV_EH_RETURN): Kill.
2631         (eh_return): Use jump_insn.
2632         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2633
2634 2004-05-26  Jan Hubicka  <jh@suse.cz>
2635
2636         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2637         not loop optimizing.
2638
2639 2004-05-26  Jan Hubicka  <jh@suse.cz>
2640
2641         * except.c (can_throw_internal):  Notice RESX instructions.
2642
2643 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2644
2645         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2646         of the two sizes to assemble_integer.
2647
2648 2004-05-25  Paul Brook  <paul@codesourcery.com>
2649
2650         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2651         pointless #ifdef.
2652
2653 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2654
2655         * Makefile.in (top_builddir): Define to .
2656
2657 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2658
2659         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2660         top-level detects, except when in-tree ld is being cross-built.
2661         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2662         then AS only if target is host.
2663         * configure: Rebuilt.
2664
2665 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2666
2667         * global.c (global_alloc): Call make_accurate_live_analysis.
2668         (record_one_conflict): Remove dead code.
2669         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2670         (bb_info): New structure.
2671         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2672         (allocate_bb_info, free_bb_info, mark_reg_change,
2673         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2674         modify_bb_reg_pav, calculate_reg_pav,
2675         make_accurate_live_analysis): New functions.
2676
2677 2004-05-25  Devang Patel  <dpatel@apple.com>
2678
2679         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2680         xrealloc.
2681         (end_alias_analysis): Use ggc_free instead fo free.
2682
2683 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2684
2685         PR target/15546
2686         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2687         as needed to be outputted.
2688
2689 2004-05-25  Jan Hubicka  <jh@suse.cz>
2690
2691         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2692
2693 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2694         Mostafa Hagog  <mustafa@il.ibm.com>
2695
2696         * Makefile.in (modulo-sched.o, ddg.o): New.
2697         * ddg.h, ddg.c, modulo-sched.c: New files.
2698         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2699         internals to "dupicate_insn".
2700         (duplicate_insn): New function.
2701         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2702         declarations.
2703         * common.opt (fmodulo-sched): New flag.
2704         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2705         Remove static and forward declaration.
2706         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2707         functions.
2708         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2709         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2710         declarations.
2711         * flags.h (flag_modulo_sched): New flag.
2712         * opts.c (common_handle_option): Handle modulo-sched flag.
2713         * params.def (max-sms-loop-number, sms-max-ii-factor,
2714         sms-dfa-history, sms-loop-average-count-threshold): New
2715         parameters.
2716         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2717         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2718         parameters.
2719         * passes.c ("sms", "sms-vcg"): New dumps.
2720         (rest_of_handle_sched): Call sms_schedule.
2721         * rtl.h (sms_schedule): New declaration.
2722         * timevar.def (TV_SMS): New.
2723         * toplev.c (flag_modulo_sched): Initialize.
2724         (f_options): Handle -fmodulo-sched option.
2725         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2726         * docs/passes.texi: Document new SMS pass.
2727
2728 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2729
2730         * Makefile.in (OBJS): Add rtlhooks.o.
2731         (rtlanal.o): Depend on function.h.
2732         (cse.o): Depend on rtlhooks-def.h.
2733         (combine.o): Depend on rtlhooks-def.h.
2734         (rtlhooks.o): New rule.
2735         * combine.c: Include rtlhooks-def.h.
2736         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2737         num_sign_bit_copies, cached_num_sign_bit_copies,
2738         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2739         (reg_nonzero_bits_for_combine,
2740         reg_num_sign_bit_copies_for_combine): New functions holding
2741         the remnants of the above.
2742         (combine_rtl_hooks): New.
2743         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2744         * cse.c: Include rtlhooks-def.h.
2745         (cse_rtl_hooks): New.
2746         (cse_main): Set rtl_hooks instead of gen_lowpart.
2747         * emit-rtl.c (gen_lowpart): Remove.
2748         (gen_lowpart_general): Move to rtlhooks.c.
2749         * rtl.h (nonzero_bits, num_sign_bit_copies,
2750         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2751         (gen_lowpart_general): Remove.
2752         (gen_lowpart): Temporarily redefine as a macro.
2753         * rtlanal.c: Include function.h.
2754         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2755         num_sign_bit_copies, cached_num_sign_bit_copies,
2756         num_sign_bit_copies1): New, from combine.c.
2757         * rtlhooks.c: New file.
2758         * rtlhooks-def.h: New file.
2759
2760 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2761
2762         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2763         to support 32-bit -mint8 mode.
2764
2765         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2766         option in the AVR architecture.
2767
2768 2004-05-24  Mike Stump  <mrs@apple.com>
2769
2770         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2771
2772 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2773
2774         * intl.h (open_quote, close_quote): New.
2775         * intl.c (open_quote, close_quote): New.
2776         (gcc_init_libintl): Set them.
2777         * pretty-print.c: Include "intl.h".
2778         (pp_base_format_text): Support 'q' format flag and %` and %'
2779         formats.  Use ' instead of ` in comments.
2780         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2781         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2782         foramt_types_orig): Describe these new formats.
2783         (decode_format_attr, check_function_format,
2784         check_format_info_main): Use these new formats.
2785         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2786         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2787         check these formats to 3.5.
2788
2789 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2790
2791         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2792         (BACKEND): Reflect this.
2793         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2794         (LIBS): Likewise.
2795
2796 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2797
2798         PR tree-optimization/14197
2799         * builtins.c: Include "tree-gimple.h"
2800         (readonly_data_expr): Use get_base_address.  Make sure to call
2801         decl_readonly_section only on trees it can handle.
2802         * tree-gimple.c (get_base_address): Accept STRING_CST and
2803         CONSTRUCTOR expressions.
2804         * Makefile.in: Update dependencies.
2805
2806 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2807
2808         Move libcpp to the toplevel.
2809         * Makefile.in: Remove references to libcpp files,
2810         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2811         and change hashtable.h to that.
2812         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2813         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2814         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2815         * configure: Regenerate.
2816         * config.in: Regenerate.
2817         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2818         * cppcharset.c: Removed.
2819         * cpperror.c: Removed.
2820         * cppexp.c: Removed.
2821         * cppfiles.c: Removed.
2822         * cpphash.c: Removed.
2823         * cpphash.h: Removed.
2824         * cppinit.c: Removed.
2825         * cpplex.c: Removed.
2826         * cpplib.c: Removed.
2827         * cpplib.h: Removed.
2828         * cppmacro.c: Removed.
2829         * cpppch.c: Removed.
2830         * cpptrad.c: Removed.
2831         * cppucnid.h: Removed.
2832         * cppucnid.pl: Removed.
2833         * cppucnid.tab: Removed.
2834         * hashtable.c: Removed.
2835         * hashtable.h: Removed.
2836         * line-map.c: Removed.
2837         * line-map.h: Removed.
2838         * mkdeps.c: Removed.
2839         * mkdeps.h: Removed.
2840         * stringpool.h: Include symtab.h instead of hashtable.h.
2841         * tree.h: Include symtab.h instead of hashtable.h.
2842         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2843
2844 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2845
2846         * gcc.c (struct prefix_list): Add forward declaration.
2847         (do_spec_path): New function, extracted from...
2848         (do_spec_1) <'D'>: ... here.  Drop support for
2849         SPACE_AFTER_L_OPTION.
2850         (do_spec_1) <'I'>: Use do_spec_path.
2851         (process_command): Do not store the 'include' suffix
2852         in include_prefixes.
2853         * system.h: Poison SPACE_AFTER_L_OPTION.
2854
2855 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2856
2857         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2858         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2859
2860 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2861
2862         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2863         Update based on printed manual.  Enable setting of offsets for
2864         FSFPRINT and move it to gcc-common.texi.
2865         * doc/gcc.texi: Update FSF printing details.
2866         * doc/gccint.texi: Remove FSF printing details.
2867
2868 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2869
2870         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2871
2872 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2873
2874         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2875         expand_builtin_strrchr, expand_builtin_strpbrk,
2876         expand_builtin_mempcpy, expand_builtin_memcmp,
2877         expand_builtin_strcmp, expand_builtin_strncmp,
2878         expand_builtin_strcat, std_expand_builtin_va_start,
2879         std_expand_builtin_va_arg, expand_builtin_va_copy,
2880         expand_builtin_signbit, fold_builtin_cabs,
2881         fold_builtin_logarithm, fold_builtin_mempcpy,
2882         fold_builtin_signbit, fold_builtin_isascii,
2883         fold_builtin_toascii, fold_builtin_isdigit,
2884         fold_builtin_1, build_function_call_expr,
2885         simplify_builtin_strchr, simplify_builtin_strrchr,
2886         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2887         simplify_builtin_memcmp, simplify_builtin_strcmp,
2888         simplify_builtin_strncmp, simplify_builtin_strncat,
2889         simplify_builtin_strspn, simplify_builtin_strcspn,
2890         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2891         to build with calls to build2, build3 or omit_one_operand.
2892
2893 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2894
2895         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2896         section when generating EABI code.
2897
2898 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2899
2900         PR 15546
2901         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2902         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2903
2904 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2905
2906         * c-common.c (c_common_truthvalue_conversion): Handle
2907         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2908         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2909         i.e. set the type to truthvalue_type_node and return.
2910
2911 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2912
2913        * tree.h (struct tree_decl): Add possibly_inlined bit.
2914         (DECL_POSSIBLY_INLINED): New accessor macro.
2915         * cgraph.h: Remove declaration of cgraph_inline_hash.
2916         * cgraph.c: Remove definition of cgraph_inline_hash.
2917         (hash_node): Revert to hashing DECL_UID.
2918         (eq_node): Take two pointers to cgraph_node structures.
2919         Compare DECL_UIDs.
2920         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2921         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2922         hash on DECL_UID.
2923         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2924         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2925         (cgraph_node): Allocate a temporary node on the stack, fill in
2926         its DECL field, and pass that to htab_find_slot.
2927         (cgraph_varpool_node): Likewise.
2928         (cgraph_function_possibly_inlined_p): If global info is ready,
2929         return the DECL_POSSIBLY_INLINED bit.
2930         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2931         instead of mucking with cgraph_inline_hash.
2932
2933 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2934
2935         * doc/contrib.texi: Add g77 contributors.
2936
2937 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2938
2939         * calls.c (initialize_argument_information): Forbid sibcalls if a
2940         callee-copied argument is stored in the current function's frame.
2941
2942 2004-05-22  Eric Christopher  <echristo@redhat.com>
2943
2944         * fix-header.c (read_scan_file): Update for add_path change.
2945
2946 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2947
2948         * c.opt (Wmissing-include-dirs): New.
2949         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2950         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2951         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2952         * c-incpath.h (add_path): Add fourth (bool) argument.
2953         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2954         (add_standard_paths): Likewise.
2955         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2956         is used and the directory was user-supplied via -I.
2957         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2958         using add_cpp_dir_path ().
2959         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2960         (struct cpp_dir): Add user_supplied_p.
2961         * doc/invoke.texi (Warning Options): Document new option.
2962
2963 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2964
2965         * fold-const.c (fold_read_from_constant_string): Convert result to
2966         requested type.
2967
2968 2004-05-21  Richard Henderson  <rth@redhat.com>
2969
2970         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2971         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2972         Don't mark VA_ARG_EXPRs volatile here.
2973         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2974
2975 2004-05-21  Richard Henderson  <rth@redhat.com>
2976
2977         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2978         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2979
2980 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2981
2982         * fold-const.c (fold, fold_relational_hi_lo,
2983         nondestructive_fold_binary_to_constant,
2984         fold_read_from_constant_string): Use fold_convert instead of convert.
2985         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2986         simplify_builtin_strchr, simplify_builtin_strrchr,
2987         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2988
2989 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2990
2991         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2992         is NULL.
2993
2994 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2995
2996         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2997         override sparc.h definition.
2998
2999 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3000
3001         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3002         get_unwidened, get_narrower): Replace build with build2.
3003         * fold-const.c (negate_expr, associate_trees, size_binop,
3004         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3005         pedantic_omit_one_operand, distribute_bit_expr,
3006         make_bit_field_ref, optimize_bit_field_compare,
3007         decode_field_reference, range_binop, make_range,
3008         build_range_check, fold_range_test, fold_truthop,
3009         optimize_minmax_comparison, extract_muldiv_1,
3010         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3011         fold_inf_compare, fold_single_bit_test, fold,
3012         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3013         Likewise replace build with either build2 or build3.
3014
3015 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
3016
3017         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3018         * calls.c (prepare_call_address): Don't test
3019         NO_RECURSIVE_FUNCTION_CSE.
3020         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3021         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3022         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3023         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3024         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3025         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3026         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3027         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3028         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3029         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3030         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3031         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3032         Likewise.
3033         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3034         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3035         * doc/tm.texi (Costs): Remove documentation for
3036         NO_RECURSIVE_FUNCTION_CSE.
3037
3038 2004-05-20  Paul Brook  <paul@codesourcery.com>
3039
3040         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3041         * unwind-dw2.c (extract_cie_info): Ditto.
3042         (_Unwind_FrameState): Change retaddr_column to word type.
3043
3044 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3045
3046         PR middle-end/3074
3047         * fold-const.c (strip_compound_expr): Delete function.
3048         (count_cond): Delete function.
3049         (fold_binary_op_with_conditional_arg): Only perform transformations
3050         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3051         when a is constant.  This greatly simplifies this routine.
3052
3053         * tree.c (saved_expr_p): Delete function.
3054         * tree.h (saved_expr_p): Delete function prototype.
3055
3056 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3057
3058         * common.opt (ftree-loop-optimize): Remove.
3059
3060 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
3061
3062         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3063         (NM_FOR_TARGET): Use := and $(shell).
3064         (mainversion): Remove unused variable.
3065
3066 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3067
3068         * reorg.c (delete_from_delay_slot): If we have a barrier after the
3069         sequence containing the insn to be deleted, always reemit it.
3070
3071 2004-05-20  Richard Henderson  <rth@redhat.com>
3072
3073         PR 15454
3074         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3075         * function.c (expand_function_start): Expand static_chain_decl by hand.
3076         * gimplify.c (create_tmp_var_name): Export.
3077         * tree-gimple.h (create_tmp_var_name): Declare.
3078
3079 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3080
3081         * rs6000.c (print_operand) <case 'z'>: Call
3082         mark_decl_referenced before assemble_name.
3083
3084 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
3085
3086         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3087         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3088         (cgraph_varpool_node): Hash on the pointer to the decl, not
3089         the DECL_UID.  Fixes 64-bit bootstrap failure.
3090
3091 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
3092
3093         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3094         we don't earlyclobber operands used in the second insn.
3095
3096 2004-05-20  Steven Bosscher  <stevenb@suse.de>
3097
3098         * tree-mudflap.c: Formatting fixes.
3099
3100 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3101
3102         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3103         * gengtype.c (open_base_files): Include reload.h in ifiles.
3104         * reload.h (reg_equiv_memory_loc_varray): Declare.
3105         * reload1.c (reg_equiv_memory_loc_varray): New variable.
3106         (init_reload): Initialize it.
3107         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3108         reg_equiv_memory_loc_varray to size 0.
3109         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3110         growing reg_equiv_memory_loc_varray to the desired size.
3111         * passes.c (rest_of_handle_old_regalloc): Likewise.
3112         * reload.c: Amend comment on calling init_reload.
3113
3114 2004-05-20  Nick Clifton  <nickc@redhat.com>
3115
3116         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3117         with 'TRAMP' in the body of the macro definition.
3118
3119 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3120
3121         PR target/15383
3122         * config/ia64/ia64.c (ia64_expand_compare): Don't check
3123         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3124         cmptf_libfunc isn't set.
3125         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3126         conventions.
3127         (ia64_sysv4_init_libfuncs): New.
3128
3129         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3130         ia64_sysv4_init_libfuncs.
3131
3132 2004-05-20  Falk Hueffner  <falk@debian.org>
3133
3134         PR other/15526
3135         * libgcc2.c (__mulvsi3): Fix overflow test.
3136
3137 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
3138
3139         PR c/14171
3140         * reg-stack.c (nan): Rename to ...
3141         (not_a_num): Here.
3142         (reg_to_stack): Rename nan to not_a_num.
3143         (subst_stack_regs_pat): Likewise.
3144         (convert_regs_entry): Likewise.
3145         (convert_regs_1): Likewise.
3146
3147         * tree-cfg.c (find_case_label_for_value): Replace call to
3148         simple_cst_equal with tree_int_cst_equal.
3149
3150 2004-05-19  Jeff Law <law@redhat.com>
3151
3152         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3153         If the operand is for a use, then strip away the SSA_NAME, do not
3154         strip away the SSA_NAME for a set.  Never call release_ssa_name.
3155         (mark_def_sites): Appropriately pass additional argument to
3156         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3157         then set the VDEF_RESULT to the VDEF_OP.
3158         (set_def_block): Strip away any SSA_NAME to get to the real
3159         underlying variable.
3160
3161         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3162         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3163         BB directly.
3164
3165 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3166
3167         PR c++/15463
3168         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3169         result of inverse.
3170
3171         PR rtl-optimization/15274
3172         * loop-iv.c (determine_max_iter, shorten_into_mode,
3173         iv_number_of_iterations): Handle constants correctly.
3174         * rtl.h (get_mode_bounds): Declaration changed.
3175         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3176         the target mode.
3177
3178         PR rtl-optimization/14692
3179         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3180         (unswitch_single_loop): Work correctly when may_unswitch_on
3181         returns a folded constant.
3182
3183         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3184         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3185         comparisons with mode bounds.
3186
3187         * function.c (struct temp_slot): Add new field prev.
3188         (free_after_compilation, init_temp_slots): Free new fields.
3189         (cut_slot_from_list, insert_slot_to_list,
3190         temp_slots_at_level, max_slot_level, move_slot_to_level,
3191         make_slot_available): New functions.
3192         (assign_stack_temp_for_type, combine_temp_slots,
3193         find_temp_slot_from_address, preserve_temp_slots,
3194         preserve_rtl_expr_result, free_temp_slots,
3195         free_temps_for_rtl_expr, pop_temp_slots): Work with
3196         the new structure of lists.
3197         (mark_all_temps_used): Removed.
3198         * function.h (struct function): Field x_temp_slots
3199         replaced by x_used_temp_slots and x_avail_temp_slots.
3200         (temp_slots): Replaced by ...
3201         (used_temp_slots, avail_temp_slots): New.
3202         * tree.h (mark_all_temps_used): Declaration removed.
3203
3204         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3205         simplify_using_assignment): Take the expression out of
3206         the expr_list wrapper.
3207
3208         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3209         infinite loops.
3210
3211 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3212
3213         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3214         costs should be based on code size when optimizing for size.
3215
3216 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3217
3218         * fold-const.c: Remove non-printable character 160.
3219
3220 2004-05-19  Nick Clifton  <nickc@redhat.com>
3221
3222         * doc/invoke.texi (ARM Options): Fix typo.
3223         Remove descrption of -mshort-load-bytes and
3224         -mno-short-load-bytes.
3225
3226         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3227         missing parenthesis.
3228         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3229         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3230
3231 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3232
3233         * expr.c (store_constructor): Build loop start and end by hand
3234         instead of via loop functions from stmt.c.
3235         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3236         Remove the code to expand them.
3237
3238         * stmt.c (loop_stack): Remove this and everything related.
3239         (struct nesting, enum nesting_desc): Update.
3240         (expand_fixup): Likewise.
3241         (expand_loop_start, expand_start_loop_continue_elsewhere,
3242         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3243         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3244         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3245         expand_exit_something): Remove.
3246         * tree.h: Remove prototypes.
3247
3248 2004-05-18  Mike Stump  <mrs@apple.com>
3249             Devang Patel  <dpatel@apple.com>
3250
3251         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3252         if this label is for eh.
3253         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3254         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3255         * dwarf2out.c (output_call_frame_info): Likewise.
3256         * output.h (default_emit_unwind_label): Likewise.
3257         * target.h (unwind_label): Likewise.
3258         * varasm.c (default_emit_unwind_label): Likewise.
3259
3260         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3261         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3262         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3263         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3264         DEBUG_RANGES_SECTION): Define.
3265
3266 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3267
3268         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3269         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3270         (cgraph_varpool_node):
3271         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3272         (cgraph_function_possibly_inlined_p): Use the decl itself for
3273         the key, not DECL_ASSEMBLER_NAME.
3274         (change_decl_assembler_name): No need to muck with the hash tables.
3275         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3276         Delete.
3277         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3278         for the key, not DECL_ASSEMBLER_NAME.
3279         * cgraph.h: Remove prototypes of deleted functions.
3280         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3281         (mark_decl_referenced): New function.
3282         * tree.h: Prototype mark_decl_referenced.
3283         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3284         mark_decl_referenced before assemble_name.
3285         * c-decl.c (finish_decl): Use mark_decl_referenced.
3286
3287 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3288             Jeff Law <law@redhat.com>
3289
3290         * tree-ssa-phiopt.c (abs_replacement): New function.
3291         (empty_block_p): New function extracted from...
3292         (candidate_bb_for_phi_optimization): Break out empty block test.
3293         (conditional_replacement): Use empty_block_p.
3294         (value_replacement): Similarly.
3295
3296         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3297         * tree-ssa-phiopt.c: Include flags.h.
3298         (conditional_replacement): Remove argument names from prototype.
3299         Minor formatting and comment fixes.
3300         (tree_ssa_phiopt): If conditional_replacement returns false, then
3301         call value_replacement.
3302         (value_replacement): New function.
3303
3304 2004-05-18  Jeff Law  <law@redhat.com>
3305
3306         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3307         from conditional_replacement.
3308         (candidate_bb_for_phi_optimization): Similarly.
3309         (conditional_replacement): Use replace_phi_with_stmt and
3310         candidate_bb_for_phi_optimization.
3311
3312         * tree-ssa-phiopt.c: Fix various formatting issues.
3313
3314 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3315
3316         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3317         s390_expand_cmpmem): Do not use expand_start_loop and
3318         expand_end_loop, instead build the loop manually.
3319
3320 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3321
3322         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3323         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3324
3325 2004-05-17  Jeff Law  <law@redhat.com>
3326
3327         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3328         * flags.h (flag_delete_null_pointer_checks): Here.
3329         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3330         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3331         (add_phi_arg, remove_phi_arg_num): Similarly.
3332         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3333         property into PHI nodes.
3334         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3335         (record_equivalences_from_phis): If all PHI arguments are known to be
3336         nonzero, then the result must be nonzero as well.
3337         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3338         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3339         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3340         as appropriate.
3341         * tree.h (PHI_ARG_NONZERO): Define.
3342         (phi_arg_d): Add nonzero flag.
3343
3344 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3345
3346         * f: Entire directory removed
3347
3348         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3349         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3350         (g77_integer_type_node, g77_uinteger_type_node)
3351         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3352         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3353         the above set of variables.
3354
3355         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3356         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3357         to g77 manual.
3358
3359 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3360
3361         PR tree-optimization/15438
3362         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3363         attributed functions as pure or const.
3364
3365 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3366
3367         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3368         from source code with errors.
3369
3370 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3371
3372         Enable tree browser for all front ends.
3373         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3374         (BACKEND): ...to here.
3375
3376 2004-05-17  Jan Hubicka  <jh@suse.cz>
3377
3378         * i386.c (construct_container): Do not produce BLKmode registers.
3379         (classify_argument): Properly compute alignment of complex types.
3380
3381 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3382
3383         PR target/15084
3384         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3385         and renamed to movdi_insv_1_rex64.
3386         (insv): Support SImode for 32bit and DImode for 64bit.
3387
3388 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3389
3390         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3391         (TARGET_SWITCHES): Remove debugg.
3392         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3393         TARGET_64BIT.
3394         (subdi3): Replace the define_expand with a define_insn, the latter
3395         renamed from subdi3_internal_3.
3396         (negdi2): Likewise negdi2_internal_2.
3397         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3398         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3399         and associated define_splits.
3400         (adddi3_internal): Renamed from adddi3_internal_3.
3401         (ashldi3_internal): Likewise ashldi3_internal4.
3402         (ashrdi3_internal): Likewise ashrdi3_internal4.
3403         (lshrdi3_internal): Likewise lshrdi3_internal4.
3404
3405 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3406
3407         * optabs.c (expand_unop): Try implementing negation using subtraction
3408         from zero.
3409
3410 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3411
3412         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3413         SAR register.
3414
3415 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3416
3417         PR target/10982
3418         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3419         (ne_zeroextractsi_shifted): New pattern.
3420         (ite_ne_zeroextractsi): New pattern.
3421         (ite_ne_zeroextractsi_shifted): New pattern.
3422
3423 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3424
3425         * c-gimplify.c (c_genericize):
3426         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3427         * c-parse.in <expr_no_commas>: Likewise.
3428         <if_prefix>: Likewise.
3429         <select_or_iter_stmt>: Likewise.
3430         * expr.c (expand_var, expand_expr_real_1): Likewise.
3431         * expr.h (expand_expr): Make it a static inline function.
3432         Move prototype for expand_expr_real up before this.
3433         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3434         Likewise.
3435         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3436         gimplify_asm_expr, gimplify_expr): Likewise.
3437         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3438         dump_function_to_file): Likewise.
3439         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3440         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3441         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3442         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3443         Likewise.
3444         * tree-optimize.c (execute_one_pass): Likewise.
3445         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3446         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3447
3448         * objc/objc-act.c (objc_build_try_enter_fragment,
3449         objc_build_try_epilogue, objc_build_catch_stmt,
3450         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3451         with lang_hooks.foo ().
3452
3453 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3454
3455         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3456         that simplify_builtin doesn't destructively modify its argument.
3457
3458 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3459
3460         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3461         implementations for ARM and Thumb.
3462         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3463
3464 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3465
3466         * prefix.c (update_path): Replace PREFIX with KEY only
3467         when it matches a full directory name in PATH.
3468
3469 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3470
3471         * arm.h (TARGET_APCS_32): Delete.
3472         (TARGET_MMU_TRAPS): Delete.
3473         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3474         define __APCS_26__.
3475         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3476         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3477         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3478         (prog_mode_type): Delete.
3479         (PROMOTE_MODE): Always promote unsigned for HImode.
3480         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3481         (MASK_RETURN_ADDR): Simplify.
3482         * arm.c (arm_prgmode): Delete.
3483         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3484         (print_multi_reg, output_return_instruction): Simplify.
3485         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3486         (arm_return_addr): Simplify.
3487         * arm.md (prog_mode): Delete.
3488         (conds): Simplify.
3489         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3490         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3491         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3492         (loadhi_shiftpredec): Delete.
3493         (peephole for post-increment on HImode load): Delete.
3494         * arm/crtn.asm: (FUNC_END): Simplify.
3495         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3496         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3497         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3498         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3499         MULTILIB_DEFAULTS as required.
3500         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3501         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3502         variables as required.
3503         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3504
3505 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3506
3507         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3508         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3509         count to 8 to handle n_reg > 2.
3510
3511 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3512
3513         * doc/extend.texi: Update WG14 URL.
3514
3515 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3516
3517         * basic-block.h (life_analysis, delete_noop_moves):
3518         Update prototypes.
3519         * bt-load.c (branch_target_load_optimize): Don't take the
3520         insns stream as an argument.  Update the life_analysis calls.
3521         * combine.c (combine_instructions): Update delete_noop_moves
3522         calls.
3523         * flow.c (notice_stack_pointer_modification): Don't take the
3524         insns stream as an argument.  Work on the flow graph.
3525         (life_analysis): Likewise.
3526         (delete_noop_moves): Likewise.
3527         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3528         (rest_of_handle_life): Update life_analysis call.
3529         (rest_of_compilation): Likewise, and also update
3530         branch_target_load_optimize call.
3531         * ra.c (reg_alloc): Update life_analysis call.
3532         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3533         the insns stream as an argument.
3534         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3535         call.
3536         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3537         prototypes.
3538         * value-profile.c (branch_prob): Update life_analysis call.
3539         * web.c (web_main): Work on the CFG, not on the insns stream.
3540
3541         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3542         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3543         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3544
3545 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3546
3547         PR c/15444
3548         * c-format.c (avoid_dollar_number): New function.
3549         (check_format_info_main): Call avoid_dollar_number when operand
3550         numbers might occur but has_operand_number == 0.
3551
3552 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3553
3554         * arm.md (all peephole2 patterns): Use predicates that validate
3555         register classes as appropriate.
3556
3557 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3558
3559         PR opt/14472
3560         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3561         ignore type conversions that do not inhibit tail calling.
3562         (find_tail_calls): Likewise.
3563
3564 2004-05-14  Jeff Law  <law@redhat.com>
3565
3566         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3567         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3568         bypassed virtuals into vars_to_rename just before into-ssa pass.
3569
3570         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3571         so that it picks up more opportunities to eliminate ABS expressions
3572         or turn them into negations.
3573
3574 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3575
3576         * passes.c (rest_of_handle_null_pointer): Remove.
3577         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3578         (rest_of_compilation): Likewise.
3579         * rtl.h (delete_null_pointer_checks): Remove prototype.
3580         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3581         Remove declarations.
3582         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3583         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3584         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3585         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3586         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3587         one_classic_gcse_pass, invalidate_nonnull_info,
3588         delete_null_pointer_checks_1, delete_null_pointer_checks,
3589         expr_reached_here_p_work): Remove.
3590         (gcse_main): Do not perform classic GCSE when optimizing for size.
3591         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3592         are never used.
3593
3594 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3595
3596         PR optimization/14466
3597         * tree-complex.c (make_temp): Remove.
3598         (gimplify_val): Replace make_temp with make_rename_temp
3599         and add NULL as the second argument.
3600         (expand_complex_div_wide): Likewise.
3601         * tree-dfa.c (make_rename_temp): New function.
3602         * tree-flow.h (make_rename_temp): Declare.
3603         * tree-sra.c (make_temp): Remove.
3604         (lookup_scalar): Replace make_temp with make_rename_temp.
3605         (create_scalar_copies): Likewise.
3606         * tree-ssa-phiopt.c (conditional_replacement): When we
3607         get non gimple create a temporary variable to hold the
3608         casted expression.
3609
3610 2004-05-14  Paul Brook  <paul@codesourcery.com>
3611
3612         * stor-layout.c (update_alignment_for_field): Use
3613         targetm.align_anon_bitfield.
3614         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3615         (TARGET_INITIALIZER): Use it.
3616         * target.h (struct gcc_target): Add align_anon_bitfield.
3617         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3618         (TARGET_ALIGN_ANON_BITFIELD): Define.
3619         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3620
3621 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3622
3623         * tree.def (documentation): Remove mention of class 'b'.
3624         (BLOCK): Now in class 'x'.
3625         * c-common.c (verify_tree): Remove case 'b'.
3626         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3627         * calls.c (calls_function_1): Control cannot get past the switch
3628         when exp is a BLOCK.
3629         * print-tree.c (print_node): Move code for class 'b' to the class
3630         'c'/'x' switch, as case BLOCK.
3631         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3632         (unsafe_for_reeval, substitute_placeholder_in_expr)
3633         (stabilize_reference_1): Remove case 'b'.
3634         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3635         of something being 'b' to tests for TREE_CODE of something being
3636         BLOCK.
3637         * tree-ssa-operands.c (get_expr_operands): Likewise.
3638
3639 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3640
3641         * tree-gimple.c: Rename from tree-simple.c.
3642         * tree-gimple.h: Rename from tree-simple.h.
3643         * c-gimplify.c: Rename from c-simplify.c
3644         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3645         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3646         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3647         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3648         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3649         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3650         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3651         Update.
3652
3653 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3654
3655         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3656
3657 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3658
3659         * tree-ssa.c (delete_tree_ssa): XFREE
3660         bitmaps allocated with BITMAP_XMALLOC.
3661
3662         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3663         idfs_cache at the end of the function.
3664
3665         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3666         at the end of the function.
3667
3668         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3669         el at the end of the function.
3670
3671         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3672         bitmaps allocated with BITMAP_XMALLOC.
3673
3674         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3675         the end.
3676
3677         * final.c (shorten_branches): Free uid_shuid before
3678         reallocating it.
3679
3680         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3681
3682 2004-05-13  Jeff Law  <law@redhat.com>
3683
3684         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3685         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3686         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3687
3688         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3689         rather than iterating through the blocks testing each bit in
3690         livein to initialize the worklist.
3691         (mark_def_sites): Remove useless checks of KILLS for virtual
3692         operands.
3693
3694         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3695         new parameters for the statement and variable worklist as well
3696         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3697         worklist recording interesting variables in the variable worklist
3698         and bitmap.  Handle casts between integral and boolean types.
3699         (substitute_single_use_vars): Accept new parameters for the statement
3700         and variable worklist.  When a substitution is made add a new
3701         entry to the statement worklist.  Handle casts between integral
3702         and boolean types.
3703         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3704         worklists to children.  Iterate until the statement worklist
3705         is empty.
3706
3707 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3708
3709         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3710         the end of the block.
3711
3712         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3713         with BITMAP_XMALLOC.
3714
3715         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3716         with BITMAP_XMALLOC.
3717
3718         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3719         Free nonzero_vars at the end of the function.
3720
3721         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3722         need to generate code instead of a NOP_EXPR.
3723
3724 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3725
3726         * gcc.c (default_compilers): Fill out initializers for new Fortran
3727         entries.
3728
3729 2004-05-13  Paul Brook  <paul@codesourcery.com>
3730
3731         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3732
3733 2004-05-13  Paul Brook  <paul@codesourcery.com>
3734
3735         * config/arm/arm.c (arm_default_short_enums): New function.
3736         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3737
3738 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3739
3740         Merge from tree-ssa-20020619-branch.
3741
3742         * Makefile.in (reload1.o-warn): Add.
3743         (tree-alias-ander.o-warn): Add.
3744         (GMPLIBS): Define.
3745         (GMPINC): Define.
3746         (BANSHEELIB): Define.
3747         (BANSHEEINC): Define.
3748         (TREE_DUMP_H): Define.
3749         (TREE_SIMPLE_H): Define.
3750         (TREE_FLOW_H): Define.
3751         (LIBDEPS): Add BANSHEELIB.
3752         (INCLUDES): Add BANSHEEINC and GMPINC.
3753         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3754         c-mudflap.o and c-pretty-print.o.
3755         (C_OBJS): Remove c-pretty-print.o.
3756         (OBJS-common): Remove sibcall.o.
3757         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3758         tree-ssa.o, tree-optimize.o, tree-simple.o,
3759         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3760         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3761         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3762         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3763         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3764         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3765         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3766         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3767         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3768         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3769         tree-profile.o.
3770         (OBJC-archive): Add tree-nomudflap.o.
3771         (cc1): Add dependency on @TREEBROWSER@.
3772         (c-decl.o): Add dependency on TREE_DUMP_H.
3773         (c-dump.o): Likewise.
3774         (c-common.o): Add dependency on tree-iterator.h
3775         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3776         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3777         (tree.o): Add dependency on tree-iterator.h,
3778         BASIC_BLOCK_H and TREE_FLOW_H.
3779         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3780         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3781         (tree-alias-type.o, tree-alias-ander.o,
3782         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3783         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3784         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3785         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3786         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3787         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3788         tree-nested.o, tree-iterator.o, tree-dfa.o,
3789         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3790         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3791         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3792         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3793         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3794         tree-sra.o, tree-complex.o, tree-profile.o,
3795         rtl-profile.o): New rules.
3796         (function.o): Add dependency on basic-block.h
3797         (expr.o): Add dependency on tree-iterator.h.
3798         (sibcall.o): Remove.
3799         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3800         (cfg.o): Add dependency on TIMEVAR_H.
3801         (cfghooks.o): Add dependency on TREE_FLOW_H.
3802         (reg-stack.o): Add dependency on basic-block.h.
3803         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3804         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3805         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3806         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3807         tree-alias-type.h, tree-alias-common.h,
3808         tree-alias-type.c, tree-alias-common.c,
3809         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3810         rtl-profile.c and tree-nested.c.
3811         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3812         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3813         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3814         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3815         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3816         * basic-block.h: Include predict.h
3817         (struct edge_def): Add GTY marker.
3818         Change field 'insns' to be a union of tree and rtx.
3819         (EDGE_TRUE_VALUE): Define.
3820         (EDGE_FALSE_VALUE): Define.
3821         (EDGE_EXECUTABLE): Define.
3822         (struct bb_ann_d): Forward declare.
3823         (struct basic_block_def): Add GTY marker.
3824         Remove fields head_tree and end_tree.
3825         Add fields stmt_list, rbi and tree_annotations.
3826         (struct reorder_block_def): Define.
3827         (basic_block_info): Add GTY marker.
3828         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3829         variables instead of macros.
3830         (flow_call_edges_add): Remove declaration.
3831         (make_eh_edge): Remove declaration.
3832         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3833         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3834         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3835         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3836         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3837         (try_redirect_by_replacing_jump): Modfiy return type to
3838         edge instead of bool.
3839         * bb-reorder.c (copy_bb): Call duplicate_block
3840         instead of cfg_layout_duplicate_bb.
3841         (copy_bb_p): Call can_duplicate_block_p instead of
3842         cfg_layout_can_duplicate_bb_p.
3843         * bitmap.c (bitmap_first_set_bit): Abort if word
3844         wasn't found.
3845         (bitmap_last_set_bit): Likewise.
3846         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3847         (DEF_FUNCTION_TYPE_3): Add.
3848         * builtins.c (c_strlen): Make extern.
3849         (builtin_save_expr): New.
3850         (expand_builtin_nonlocal_goto): New.
3851         (expand_builtin_constant_p): Remove.
3852         (expand_builtin_mathfn): Call builtin_save_expr instead
3853         of save_expr.
3854         (expand_builtin_mathfn_2): Likewise.
3855         (expand_builtin_strcmp): Likewise.
3856         (expand_builtin_strncmp): Likewise.
3857         (expand_builtin_strcat): Likewise.
3858         (fold_builtin_cabs): Likewise.
3859         (expand_builtin_alloca): Don't trigger if -fmudflap is
3860         given.
3861         (build_string_literal): Set TREE_INVARIANT on new node.
3862         (expand_builtin_profile_fun): New.
3863         (round_trampoline_addr): New.
3864         (expand_builtin_init_trampoline): New.
3865         (expand_builtin_adjust_trampoline): New.
3866         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3867         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3868         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3869         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3870         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3871         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3872         Handle.
3873         (fold_builtin_expect): New.
3874         (fold_builtin_isascii): Don't return non-constant results
3875         in GIMPLE form.
3876         (fold_builtin_isdigit): Likewise.
3877         (fold_builtin_1): New.
3878         (fold_builtin): Call it.
3879         (build_function_call_expr): Update call to build a new
3880         CALL_EXPR.
3881         (purge_builtin_constant_p): Remove.
3882         (simplify_builtin, simplify_builtin_memcmp,
3883         simplify_builtin_strcmp, simplify_builtin_strncmp,
3884         simplify_builtin_strpbrk, simplify_builtin_strstr,
3885         simplify_builtin_strchr, simplify_builtin_strrchr,
3886         simplify_builtin_strcat, simplify_builtin_strncat,
3887         simplify_builtin_strspn, simplify_builtin_strcspn,
3888         simplify_builtin_next_arg, simplify_builtin_va_start,
3889         simplify_builtin_sprintf): New.
3890         * builtins.def (BUILT_IN_STACK_ALLOC,
3891         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3892         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3893         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3894         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3895         * c-common.c: Include tree-iterator.h and hashtab.h.
3896         (lang_statement_code_p): Declare.
3897         (lang_gimplify_stmt): Declare.
3898         (fix_string_type): Set TREE_INVARIANT for value.
3899         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3900         (c_type_hash): New.
3901         (c_common_get_alias_set): Handle multiple type nodes
3902         referring to "the same" type, currently for C90 only.
3903         (c_add_case_label): Use create_artificial_label.
3904         (finish_label_address_expr): Don't set TREE_CONSTANT on
3905         result.
3906         (c_expand_expr): Don't handle STMT_EXPR.
3907         (handle_alias_attribute): Marke aliased variables to be
3908         TREE_STATIC.
3909         (handle_nonnull_attribute): Initialize arg_num.
3910         (check_function_nonnull): Likewise.
3911         (c_walk_subtrees): New.
3912         (c_estimate_num_insns_1): Don't handle
3913         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3914         (c_decl_uninit_1): Remove.
3915         (c_decl_uninit): Remove.
3916         (c_warn_unused_result): New.
3917         * c-common.def (ASM_STMT): Change number of operands
3918         to 4.
3919         (FILE_STMT): Remove.
3920         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3921         Remove.
3922         (lang_gimplify_stmt): Add.
3923         (expand_stmt): Remove.
3924         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3925         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3926         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3927         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3928         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3929         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3930         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3931         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3932         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3933         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3934         genrtl_compound_stmt, genrtl_asm_stmt,
3935         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3936         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3937         c_tree_chain_matters_p, c_warn_unused_result,
3938         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3939         Declare.
3940         * c-convert.c (convert): Make convert work when
3941         converting to compatible types across translation unit.
3942         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3943         tree-simple.h, diagnostic.h and tree-dump.h
3944         (merge_decls): Initialize oldtype to NULL.
3945         (finish_decl): Use DECL_HARD_REGISTER instead of
3946         DECL_C_HARD_REGISTER.
3947         (check_bitfield_type_and_width): Check for null
3948         lang_type_specific when check the precision of an enum.
3949         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3950         in a pointer-to-array declarator.
3951         (finish_struct): Clear allocated struct lang_type.
3952         (finish_enum): Set enum_min and enum_max.  Set
3953         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3954         not to the enumerators.
3955         (set_decl_nonlocal): New.
3956         (store_parm_decls): Use it via walk_tree.
3957         (c_finalize): New.
3958         (finish_function): When !targetm.have_ctors_dtors,
3959         record static constructors and destructors here...
3960         (c_expand_body_1): ... not here.
3961         (c_expand_decl): Rename from c_expand_decl_stmt.
3962         Handle all C-specific expansion semantics.
3963         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3964         STMT_LINENO.
3965         * c-format.c (handle_format_arg_attribute): Initialize
3966         format_num.
3967         * c-lang.c: Include tree-inline.h
3968         (LANG_HOOKS_EXPAND_DECL,
3969         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3970         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3971         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3972         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3973         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3974         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3975         (c_types_compatible_p): New.
3976         * c-mudflap.c: New file.
3977         * c-objc-common.c: Include tree-mudflap.h
3978         (start_cdtor, finish_cdtor): Collapse
3979         together into
3980         (build_cdtor): ...here.  Update to construct a complete tree
3981         for the function.  No need to call push_scope, pop_scope, or
3982         clear_last_expr, or set current_function_cannot_inline.
3983         (c_missing_noreturn_ok_p): Change prototype to return
3984         bool.
3985         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3986         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3987         opts.c.
3988         (c_common_post_options): Don't ever use rtl inlining.
3989         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3990         * c-pragma.c (handle_pragma_redefine_extname): Define
3991         always.
3992         (init_pragma): Activate #pragma redefine_extname for mudflap.
3993         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3994         (pp_c_initializer): Accept any type CONSTRUCTOR.
3995         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3996         COMPLEX_TYPE.
3997         (decl_name_str): New local function.
3998         (pp_c_direct_declarator): Call it.
3999         (pp_c_primary_expression): Call it.
4000         (pp_c_id_expression): Call it.
4001         (pp_c_statement): Call it.
4002         (print_c_tree): Create new pp object.
4003         * c-pretty-print.h (pp_c_tree_decl_identifier,
4004         print_c_tree): Declare.
4005         * c-semantics.c: Include langhooks.h
4006         (lang_expand_stmt, lang_expand_decl_stmt,
4007         find_reachable_label_1, find_reachable_label,
4008         expand_unreachable_if_stmt, expand_unreachable_stmt,
4009         genrtl_do_stmt_1): Remove.
4010         (begin_stmt_tree): Don't check for changed filename.
4011         Call annotate_with_locus.
4012         (finish_stmt_tree): Don't set line for end of function.
4013         (build_stmt): Don't check type nodes for
4014         side effects.
4015         (build_stmt): Set TREE_SIDE_EFFECTS.
4016         Set EXPR_LOCUS instead of STMT_LINENO.
4017         (lang_expand_stmt, lang_expand_decl_stmt,
4018         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4019         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4020         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4021         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4022         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4023         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4024         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4025         find_reachable_label_1, expand_unreachable_if_stmt,
4026         expand_unreachable_stmt): Remove.
4027         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4028         * c-simplify.c: New file.
4029         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4030         (struct lang_type): Add fields enum_min and enum_max.
4031         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4032         (c_expand_decl, c_missing_noreturn_ok_p,
4033         c_types_compatible_p): Declare.
4034         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4035         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4036         (default_function_array_conversion): Rely on build to
4037         set TREE_CONSTANT.
4038         (parser_build_binary_op, pointer_diff): Likewise.
4039         (build_unary_op, build_binary_op): Likewise.
4040         (build_array_ref):
4041         (build_external_ref): Set TREE_INVARIANT.
4042         (build_c_cast, pop_init_level): Likewise.
4043         (process_init_element): Use ASM_VOLATILE_P.
4044         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4045         (c_finish_case): Call c_do_switch_warnings.
4046         * c.opt (fdump-): Remove.
4047         * calls.c (try_to_integrate): Remove.
4048         (prepare_call_address): Replace fndecl arg with a
4049         precomputed static chain value.
4050         (emit_call_1): New argument for full call expr.
4051         (flags_from_decl_or_type): Call special_function_p.
4052         (initialize_argument_information): Add argument
4053         may_tailcall.
4054         (purge_reg_equiv_notes): New.
4055         (expand_call): Do not try to expand calls inline.
4056         (fixup_tail_calls): New.
4057         * cfg.c: Include timevar.h and ggc.h.
4058         (bb_pool, edge_pool): Remove.
4059         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4060         (entry_exit_blocks): Remove.
4061         (rbi_pool): Declare.
4062         (init_flow): Do not create pools.
4063         Allocate entry/exit block.
4064         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4065         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4066         (unlink_block): Clear b->prev_bb and b->next_bb.
4067         (compact_blocks): Clear all slots of BASIC_BLOCK array.
4068         (dump_flow_info): Work on trees too.
4069         (dump_cfg_bb_info): New.
4070         (brief_dump_cfg): New.
4071         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4072         (find_edge): New.
4073         * cfgbuild.c (rtl_make_eh_edge): Rename from
4074         make_eh_edge.  Update all users.
4075         (find_basic_blocks): Don't call VARRAY_FREE on
4076         basic_block_info.
4077         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4078         and newpos2.
4079         (delete_unreachable_blocks): Return changed status.
4080         (merge_seq_blocks): New.
4081         * cfghooks.c: Include tree-flow.h
4082         (tree_register_cfg_hooks, ir_type): New.
4083         (redirect_edge_and_branch): Change return type to edge.
4084         (predict_edge, predicted_by_p, can_duplicate_block_p,
4085         duplicate_block, block_ends_with_call_p,
4086         block_ends_with_condjump_p, flow_call_edges_add): New.
4087         * cfghooks.h (redirect_edge_and_branch): Change return
4088         type to edge.
4089         (predict_edge, predicted_by_p, can_duplicate_block_p,
4090         duplicate_block, block_ends_with_call_p,
4091         block_ends_with_condjump_p, flow_call_edges_add): Declare.
4092         (redirect_edge_and_branch): Change return type to edge.
4093         (struct cfg_hooks): Add fields block_ends_with_call_p,
4094         block_ends_with_condjump_p, flow_call_edges_add,
4095         predict_edge, predicted_by_p, can_duplicate_block_p and
4096         duplicate_block.
4097         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4098         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4099         (fixup_reorder_chain): Use initialize_bb_rbi.
4100         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4101         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4102         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4103         (insn_locators_initialize): Use new info about blocks.
4104         * cfglayout.h (typedef struct reorder_block_def): Moved to
4105         basic_block.h.
4106         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4107         removed.
4108         * cfgloop.c: Include tree.h and tree-flow.h.
4109         * cfgloop.h (create_loop_notes): Declare.
4110         * cfgloopmanip.c (create_loop_notes): New.
4111         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4112         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4113         and duplicate_block fields.
4114         (create_basic_block_structure): Don't look at
4115         RTX_INTEGRATED_P.
4116         (rtl_block_ends_with_call_p): New.
4117         (rtl_block_ends_with_condjump_p): New.
4118         (need_fake_edge_p): Moved from cfganal.c.
4119         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4120         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4121         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4122         (cfg_layout_rtl_cfg_hooks): Ditto.
4123         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4124         functions to be reachable.
4125         * cgraphunit.c (decide_is_function_needed):
4126         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4127         inline functions don't need to be output.
4128         (cgraph_assemble_pending_functions): Don't do anything
4129         special for nested functions.
4130         (cgraph_mark_functions_to_output): Likewise.
4131         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4132         (cgraph_analyze_function): Use estimate_num_insns.
4133         (cgraph_mark_functions_to_output): Likewise.
4134         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4135         (cgraph_expand_function): Allow functions to not be
4136         emitted.
4137         (cgraph_remove_unreachable_nodes):
4138         (cgraph_recursive_inlining_p): Simplify.
4139         (lookup_recursive_calls,
4140         cgraph_decide_recursive_inlining): New.
4141         (cgraph_decide_inlining_*): Update calls of
4142         cgraph_mark_inline.
4143         * combine.c (get_pos_from_mask): Always set *plen.
4144         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4145         ftree-based-profiling, ftree-ccp, ftree-ch,
4146         ftree-combine-temps, ftree-copyrename, ftree-dce,
4147         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4148         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4149         ftree-lrs): Add.
4150         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4151         Undefine.
4152         * configure.ac: Add --enable-tree-browser option.
4153         Add --with-libbanshee option.
4154         Add GMPLIBS and GMPINC.
4155         * configure: Regenerate.
4156         * coverage.c (tree_ctr_tables): New.
4157         (coverage_counter_alloc): Use it.
4158         (build_ctr_info_value): Ditto.
4159         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4160         (tree_coverage_counter_ref): New.
4161         * coverage.h (coverage_counter_ref): Remove declaration.
4162         (rtl_coverage_counter_ref): Declare.
4163         (tree_coverage_counter_ref): Declare.
4164         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4165         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4166         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4167         (struct cse_basic_block_data): Rename enum values to not
4168         conflict with profile.h; update all uses.
4169         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4170         in comments.
4171         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4172         * diagnostic.h (debug_output_buffer, dump_generic_node,
4173         print_generic_stmt, print_generic_stmt_indented,
4174         print_generic_expr, print_generic_decl,
4175         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4176         Declare.
4177         * dominance.c: Cache immediate dominators.
4178         * domwalk.c: New file.
4179         * domwalk.h: New file.
4180         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4181         (gen_subprogram_die): Generate a DIE for a named
4182         return value.
4183         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4184         (add_location_or_const_value_attribute): Likewise.
4185         (add_bound_info): Likewise.
4186         (gen_decl_die): Likewise.
4187         * emit-rtl.c (maybe_set_first_label_num): New.
4188         (copy_most_rtx): Don't copy the integrated flag.
4189         Copy the new return_val flag.
4190         * et-forest.c (MAX_NODES): Define.
4191         (record_path_before_1): Abort if len is greater than
4192         MAX_NODES.
4193         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4194         gen_eh_region_catch, gen_eh_region_allowed,
4195         gen_eh_region_must_not_throw, get_eh_region_number,
4196         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4197         set_eh_region_tree_label, expand_resx_expr): New.
4198         (expand_eh_region_start, expand_start_catch): Use them.
4199         (expand_end_catch): Tidy.
4200         (note_eh_region_may_contain_throw): Take region argument.
4201         (note_current_region_may_contain_throw): New.
4202         (get_exception_filter): Export.
4203         (collect_eh_region_array): Export.
4204         (remove_unreachable_regions): Check ERT_TRY based on reachability
4205         of catches, not reachability of continue_label.  Never remove
4206         ERT_MUST_NOT_THROW regions.
4207         (collect_rtl_labels_from_trees): New.
4208         (convert_from_eh_region_ranges): Use it.
4209         (connect_post_landing_pads): Handle dying cleanups.
4210         (struct reachable_info): Add callback data.
4211         (add_reachable_handler): Invoke the callback.
4212         (foreach_reachable_handler): New.
4213         (reachable_handlers): Use it.
4214         (arh_to_landing_pad, arh_to_label): New.
4215         (can_throw_internal_1): Split out from can_throw_internal.
4216         (can_throw_external_1): Similarly.
4217         * except.h: Update.
4218         * explow.c (emit_stack_save): Remove savearea mode check.
4219         (update_nonlocal_goto_save_area): New.
4220         (allocate_dynamic_stack_space): Use it.
4221         (probe_stack_range): Never emit loop notes.
4222         * expmed.c (extract_fixed_bit_field): Always propagate the
4223         target for the shift if it is a REG.
4224         * expr.c: Include tree-iterator.h
4225         (is_zeros_p): Remove.
4226         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4227         (count_type_elements): New.
4228         (mostly_zeros_p): Use them.
4229         (expr_wfl_stack): Remove.
4230         (convert_move): Do nothing if to and from are the same.
4231         (emit_block_move_via_loop): Don't emit LOOP notes.
4232         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4233         (emit_move_insn_1): Don't generate inline warnings.
4234         (expand_vars, expand_var): Split from ...
4235         (expand_expr_1): ... here.
4236         (expand_expr_real, expand_expr_real_1):  Use new macros
4237         EXPR_LOCATION and EXPR_HAS_LOCATION.
4238         * expr.h (simplify_builtin_fputs,
4239         simplify_builtin_strcpy, simplify_builtin_strncpy,
4240         expand_var, fixup_tail_calls,
4241         update_nonlocal_goto_save_area): Declare.
4242         (lookup_static_chain, expand_inline_function,
4243         mark_seen_cases): Remove.
4244         (prepare_call_address): Change type of 2nd argument to
4245         rtx.
4246         * final.c (profile_function): Update static chain test.
4247         (final): Don't look at RTX_INTEGRATED_P.
4248         * flags.h (flag_mudflap, flag_mudflap_threads,
4249         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4250         flag_tree_dce, flag_tree_combine_temps,
4251         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4252         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4253         flag_tree_points_to): Declare.
4254         (enum pta_type): Declare.
4255         * flow.c (lang_missing_noreturn_ok_p): Remove.
4256         (check_function_return_warnings): Remove.
4257         (update_life_info): Update comments.
4258         (free_basic_block_vars): Don't call VARRAY_FREE for
4259         basic_block_info.
4260         (regno_uninitialized): Remove.
4261         * fold-const.c (int_const_binop): Make extern.
4262         (non_lvalue): Rely on build to set TREE_CONSTANT.
4263         (operand_equal_p): Replace only_const argument with
4264         flags.  Allow pure functions if OEP_PURE_SAME.
4265         (fold): Use OEP_ONLY_CONST.
4266         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4267         boolean type.
4268         (fold_relational_hi_lo,
4269         nondestructive_fold_binary_to_constant,
4270         nondestructive_fold_unary_to_constant,
4271         fold_read_from_constant_string): New.
4272         * function.c (struct function): Remove calls_constant_p.
4273         (current_function_calls_constant_p): Remove.
4274         (inline_function_decl): Remove.
4275         (put_var_into_stack): Don't use it.
4276         (fix_lexical_addr): Likewise.
4277         (inline_function_decl): Remove extern declaration.
4278         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4279         (trampolines_created): Move to varasm.c.
4280         (free_after_compilation): Update for removed fields.
4281         (allocate_struct_function): Likewise.
4282         (delete_handlers, lookup_static_chain): Remove.
4283         (fix_lexical_addr): Don't consider non-local variable refs.
4284         (trampoline_address): Remove.
4285         (round_trampoline_addr): Move to builtins.c.
4286         (adjust_trampoline_addr): Remove.
4287         (expand_function_start): Update for changes to static chain
4288         and nonlocal goto handling.
4289         (initial_trampoline): Move to varasm.c.
4290         (expand_function_end): Don't build trampolines or kill
4291         unreferenced nonlocal goto labels.
4292         (free_after_compilation): Don't set it.
4293         (expand_function_end): Likewise.
4294         (setjmp_vars_warning): Rename from
4295         uninitialized_vars_warning, remove uninitialized vars warning.
4296         (uninitialized_vars_warning): Remove old comment
4297         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4298         and do not call the langhook.
4299         (expand_function_start, expand_function_end): Don't do
4300         function instrumentation here.
4301         (clear_block_marks): Rename from reorder_blocks_0, export.
4302         (blocks_nreverse): Export.
4303         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4304         of rtl.
4305         (reset_block_changes, record_block_change, finalize_block_changes,
4306         check_block_change, free_block_changes): New functions.
4307         (assign_parms): Setting of current_function_stdarg
4308         moved ...
4309         (allocate_struct_function): ... here.
4310         * function.h (struct function): Remove x_nonlocal_labels,
4311         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4312         x_context_display, x_trampoline_list, needs_context.
4313         Add static_chain_decl, nonlocal_goto_save_area.
4314         (struct function): Remove x_clobber_return_insn.
4315         Add tail_call_emit field, last_label_uid,
4316         unexpanded_var_list, dont_emit_block_notes,
4317         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4318         (clear_block_marks): Declare.
4319         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4320         (mfwrap_spec, mflib_spec): Declare.
4321         (cpp_unique_options, cc1_options): Ditto.
4322         (default_compilers): Add .F and .f90.
4323         (static_specs): Add mfwrap and mflib.
4324         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4325         CONSTANT_RTX_P.
4326         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4327         Update to match insns field in struct edge_def.
4328         * gdbinit.in (pgs, pge): Define.
4329         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4330         instead of the integrated flag.
4331         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4332         * gengtype-yacc.y (bitfieldlen): Add empty action.
4333         (struct_fields): Accept unnamed bitfields.
4334         (bitfieldlen): Split from ...
4335         (bitfieldopt): ... here.
4336         * gengtype.c (ifiles): Add tree-alias-type.h and
4337         tree-flow.h.
4338         * genrecog.c (validate_pattern): Do not handle
4339         CONSTANT_P_RTX.
4340         * gimple-low.c: New file.
4341         * gimplify.c: New file.
4342         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4343         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4344         * ifcvt.c (dead_or_predicable): Initialize local variable
4345         'earliest'.
4346         * input.h (expr_wfl_stack): Remove.
4347         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4348         (setup_initial_hard_reg_value_integration): Likewise.
4349         (initialize_for_inline): Likewise.
4350         (note_modified_parmregs): Likewise.
4351         (integrate_parm_decls): Likewise.
4352         (process_reg_param): Likewise.
4353         (save_parm_insns): Likewise.
4354         (copy_insn_list): Likewise.
4355         (copy_insn_notes): Likewise.
4356         (compare_blocks): Likewise.
4357         (find_block): Likewise.
4358         (inlining): Likewise.
4359         (function_cannot_inline_p): Likewise.
4360         (parmdecl_map): Likewise.
4361         (in_nonparam_insns): Likewise.
4362         (save_for_inline): Likewise.
4363         (FIXED_BASE_PLUS): Likewise.
4364         (expand_inline_function): Likewise.
4365         (copy_rtx_and_substitute): Don't look at map->integrating,
4366         map->inline_target, and inlining, since we are never copying
4367         for integrating.
4368         Don't abort on RTX_INTEGRATED_P.
4369         (old_fun): Remove.
4370         (output_inline_function): Remove.
4371         * integrate.h (struct inline_map): Remove fields integrating,
4372         block_map, leaf_reg_map, inline_target, and local_return_label.
4373         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4374         copy_loop_headers, never_reached_warning): Removed.
4375         (any_uncondjump_p): Reject nonlocal goto.
4376         * langhooks-def.h (lhd_types_compatible_p,
4377         lhd_expand_decl, lhd_gimplify_expr): Declare.
4378         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4379         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4380         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4381         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4382         LANG_HOOKS_GIMPLIFY_EXPR,
4383         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4384         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4385         LANG_HOOKS_GIMPLIFY_EXPR,
4386         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4387         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4388         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4389         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4390         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4391         LANG_HOOKS_DECL_UNINIT,
4392         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4393         * langhooks.c: Include tree-simple.h.
4394         (lhd_expand_decl): New.
4395         (lhd_types_compatible_p): New.
4396         (lhd_decl_uninit): Remove.
4397         (lhd_gimplify_expr): New.
4398         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4399         Remove.
4400         (struct lang_hooks_for_functions): Add field
4401         missing_noreturn_ok_p.
4402         (struct lang_hooks): Add field expand_decl,
4403         types_compatible_p, gimplify_expr and
4404         gimple_before_inlining.
4405         Remove fields decl_uninit and rtl_expand
4406         * opts.c (decode_options): Set flag_tree_ccp,
4407         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4408         flag_tree_pre, flag_tree_ter,
4409         flag_tree_live_range_split, flag_tree_sra,
4410         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4411         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4412         OPT_fmudflapth, OPT_fmudflapir,
4413         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4414         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4415         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4416         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4417         OPT_ftree_points_to_ and OPT_ftree_pre.
4418         * output.h (regno_uninitialized, find_basic_blocks,
4419         cleanup_cfg, delete_unreachable_blocks,
4420         check_function_return_warnings): Remove.
4421         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4422         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4423         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4424         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4425         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4426         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4427         Define.
4428         * passes.c (rest_of_decl_compilation):
4429         (rest_of_handle_sibling_calls): Remove.
4430         (rest_of_handle_inlining): Remove.
4431         (rest_of_handle_gcse): Do not run
4432         purge_builtin_constant_p.
4433         (rest_of_compilation): Update.
4434         Do not call copy_loop_headers.
4435         Do rtl-based profiling only when
4436         !flag_tree_based_profiling.  Register rtl-based profiling
4437         hooks.
4438         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4439         (predicted_by_p): Rename to ...
4440         (rtl_predicted_by_p): .. this one; make global
4441         (tree_predicted_by_p): New.
4442         (dump_prediction): Add FILE argument.
4443         (predict_edge): Rename to ...
4444         (rtl_predict_edge): .. this one.
4445         (tree_predict_edge): New.
4446         (combine_predictions_for_insn): Update calls of predict_edge.
4447         (predict_loops): Break out from ...
4448         (estimate_probability): ... here; update comments; move updating
4449         of unknown probabilities from ...
4450         (estimate_bb_frequencies): ... here.
4451         (combine_predictions_for_bb): New.
4452         (tree_predict_by_opcode): New.
4453         (tree_estimate_probability): New.
4454         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4455         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4456         * predict.h: Add include guard.
4457         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4458         * pretty-print.c (pp_write_text_to_stream): Make extern.
4459         * pretty-print.h (pp_write_text_to_stream): Declare.
4460         * print-rtl.c (print_rtx): Don't print the integrated flag.
4461         Print the return_val flag.
4462         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4463         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4464         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4465         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4466         * profile.c: Include cfghooks.h, tree-flow.h.
4467         (profile_hooks): New.
4468         (profile_dump_file): New.
4469         (instrument_edges): Use hooks instead of RTL-specific code.
4470         (instrument_values): Ditto.
4471         (get_exec_counts): Ditto.
4472         (compute_branch_probabilities): Ditto.
4473         (compute_value_histograms): Ditto.
4474         (branch_prob): Ditto.
4475         (find_spanning_tree): Ditto.
4476         (end_branch_prob): Ditto.
4477         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4478         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4479         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4480         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4481         (tree_register_profile_hooks): New.
4482         (rtl_register_profile_hooks): New.
4483         * ra-rewrite.c (rewrite_program): Clear variable info.
4484         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4485         * regs.h: Add include guards.
4486         * reload.c (decompose): Clear val using memset.
4487         * rtl.def (CONSTANT_P_RTX): Remove.
4488         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4489         (copy_loop_headers): Remove.
4490         (struct rtx_def): Replace the integrated flag with the
4491         return_val flag.
4492         (maybe_set_first_label_num): Declare.
4493         (init_branch_prob): Move declaration to value-prof.h.
4494         (end_branch_prob): Ditto.
4495         (branch_prob): Ditto.
4496         (never_reached_warning): Don't declare it.
4497         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4498         (hoist_insn_to_edge): Update to match field insns in
4499         struct edge_def.
4500         * sbitmap.c (sbitmap_realloc): New.
4501         * sbitmap.h (sbitmap_realloc): Declare.
4502         * sibcall.c: Remove file.
4503         * simplify-rtx.c (simplify_rtx): Do not handle
4504         CONSTANT_P_RTX.
4505         * stmt.c (parse_output_constraint): Don't warn for read-write
4506         memory operand.
4507         (tail_recursion_args): Use types_compatible_p langhook.
4508         (force_label_rtx): Don't look at inline_function_decl.
4509         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4510         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4511         (declare_nonlocal_label): Remove.
4512         (expand_goto): Don't handle nonlocal gotos.
4513         (expand_nl_handler_label): Remove.
4514         (expand_nl_goto_receivers): Remove.
4515         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4516         update_nonlocal_goto_save_area.
4517         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4518         (warn_if_unused_value): Likewise.
4519         (expand_start_loop, expand_loop_continue_here,
4520         expand_end_loop): Don't create loop notes.
4521         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4522         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4523         (expand_end_case_type): Don't do warn_switch handling.
4524         (pushcase, pushcase_range) Update add_case_node calls.
4525         (add_case_node): Add dont_expand_label argument.
4526         (same_case_target_p): Don't search rtl.
4527         (expand_start_bindings_and_block, expand_end_bindings):
4528         Don't emit block notes when dont_emit_block_notes.
4529         (using_eh_for_cleanups_p): Export.
4530         (expand_return): Allow any typed rhs.
4531         (expand_stack_alloc): New.
4532         (expand_stack_save, expand_stack_restore): New.
4533         (containing_blocks_have_cleanups_or_stack_level): New
4534         function.
4535         (asm_op_is_mem_input): New fn.
4536         (expand_asm_expr): New fn.
4537         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4538         nodes.
4539         * stor-layout.c (layout_type): Just return if type is
4540         error_mark_node.
4541         (update_alignment_for_field): Export.
4542         (variable_size): We don't care about global_bindings_p if
4543         the frontend doesn't want a list of the expressions.
4544         * system.h: Poison INTEGRATE_THRESHOLD.
4545         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4546         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4547         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4548         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4549         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4550         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4551         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4552         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4553         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4554         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4555         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4556         TV_CONTROL_DEPENDENCES): Define.
4557         * toplev.c: Include tree-alias-common.h
4558         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4559         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4560         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4561         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4562         flag_tree_combine_temps, flag_tree_ter,
4563         flag_tree_live_range_split, flag_tree_dom,
4564         flag_tree_copyrename, flag_tree_dse): Declare.
4565         (f_options): Add tree-based-profiling, tree-gvn,
4566         tree-pre, tree-ccp, tree-dce,
4567         tree-dominator-opts, tree-copyrename, tree-dse,
4568         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4569         (wrapup_global_declarations): Don't output nested inlined functions.
4570         (general_init): Call init_tree_optimization_passes.
4571         (process_options): Sorry for -ftree-based-profiling plus
4572         -ftest-coverage or -fprofile-values.
4573         * toplev.h (init_tree_optimization_passes,
4574         flag_tree_based_profiling): Declare.
4575         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4576         * tree-alias-ander.c: New file.
4577         * tree-alias-ander.h: New file.
4578         * tree-alias-common.c: New file.
4579         * tree-alias-common.h: New file.
4580         * tree-alias-type.c: New file.
4581         * tree-alias-type.h: New file.
4582         * tree-browser.c: New file.
4583         * tree-browser.def: New file.
4584         * tree-cfg.c: New file.
4585         * tree-complex.c: New file.
4586         * tree-dfa.c: New file.
4587         * tree-dump.c (dump_enable_all): New.
4588         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4589         (dump_node): Remove const from field suffix and swtch.
4590         (dump_files): Add null entry, .generic, .nested, .vcg,
4591         .xml and a match-all entry.
4592         (extra_dump_files, extra_dump_files_in_use,
4593         extra_dump_files_alloced): Declare
4594         (dump_option_value_info): Add raw, details, stats,
4595         blocks, vops, lineno, uid and all.
4596         (dump_register): New.
4597         (get_dump_file_info): New.
4598         (dump_begin): Call it.
4599         Do nothing for TDI_none.
4600         (dump_begin): Include phase number in dump filename.
4601         (dump_enable_all): New.
4602         (dump_switch_p_1): Split out from dump_switch_p.
4603         (dump_switch_p): Handle extra_dump_files.
4604         Start our scan at TDI_none + 1.
4605         If -fdump-tree-all was given, call dump_enable_all.
4606         * tree-dump.h: Include splay-tree.h.
4607         (dump_function, dump_function_to_file, dump_register):
4608         Declare.
4609         * tree-eh.c: New file.
4610         * tree-flow-inline.h: New file.
4611         * tree-flow.h: New file.
4612         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4613         * tree-inline.h (walk_tree,
4614         walk_tree_without_duplicates): Move to tree.h.
4615         (estimate_num_insns): Declare.
4616         * tree-into-ssa.c: New file.
4617         * tree-iterator.c: New file.
4618         * tree-iterator.h: New file.
4619         * tree-mudflap.c: New file.
4620         * tree-mudflap.h: New file.
4621         * tree-nested.c: New file.
4622         * tree-nomudflap.c: New file.
4623         * tree-nrv.c: New file.
4624         * tree-optimize.c (dump_flags, vars_to_rename,
4625         in_gimple_form, all_passes, pass_gimple,
4626         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4627         (execute_gimple, execute_rebuild_bind,
4628         gate_all_optimizations, execute_del_cfg,
4629         register_one_dump_file, register_dump_files, dup_pass_1,
4630         init_tree_optimization_passes, execute_todo,
4631         execute_one_pass, execute_pass_list): New.
4632         (clear_decl_rtl): Remove.
4633         (tree_rest_of_compilation): Update to use tree
4634         optimizers.
4635         * tree-outof-ssa.c: New file.
4636         * tree-pass.h: New file.
4637         * tree-phinodes.c: New file.
4638         * tree-pretty-print.c: New file.
4639         * tree-profile.c: New file.
4640         * tree-simple.c: New file.
4641         * tree-simple.h: New file.
4642         * tree-sra.c: New file.
4643         * tree-ssa-alias.c: New file.
4644         * tree-ssa-ccp.c: New file.
4645         * tree-ssa-copy.c: New file.
4646         * tree-ssa-copyrename.c: New file.
4647         * tree-ssa-dce.c: New file.
4648         * tree-ssa-dom.c: New file.
4649         * tree-ssa-dse.c: New file.
4650         * tree-ssa-forwprop.c: New file.
4651         * tree-ssa-live.c: New file.
4652         * tree-ssa-live.h: New file.
4653         * tree-ssa-loop.c: New file.
4654         * tree-ssa-operands.c: New file.
4655         * tree-ssa-operands.h: New file.
4656         * tree-ssa-phiopt.c: New file.
4657         * tree-ssa-pre.c: New file.
4658         * tree-ssa.c: New file.
4659         * tree-ssanames.c: New file.
4660         * tree-tailcall.c: New file.
4661         * tree.c: Include tree-iterator.h, basic-block.h and
4662         tree-flow.h.
4663         (tree_node_kind): Add phi_nodes and ssa names.
4664         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4665         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4666         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4667         <'c'> Set TREE_INVARIANT.
4668         (copy_node_stat): Abort if trying to copy a
4669         STATEMENT_LIST.
4670         Clear TREE_VISITED.
4671         Clear annotation field.
4672         (build_constructor): Copy TREE_INVARIANT from vals.
4673         Don't clear TREE_CONSTANT.
4674         (expr_first, expr_last, expr_length): Remove.
4675         (staticp): Pass unknown component references to the language.
4676         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4677         (skip_simple_arithmetic): Likewise.
4678         (stabilize_reference_1): Likewise.
4679         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4680         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4681         STATEMENT_LIST.
4682         (lhd_unsave_expr_now): Remove.
4683         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4684         (recompute_tree_invarant_for_addr_expr): New.
4685         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4686         Call recompute_tree_invarant_for_addr_expr.
4687         Set TREE_INVARIANT accordingly.
4688         (build2_stat): Don't handle CALL_EXPR.
4689         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4690         (build_expr_wfl): Remove.
4691         (annotate_with_file_line, annotate_with_locus): New.
4692         (simple_cst_equal): Call simple_cst_list_equal to compare
4693         CONSTRUCTOR_ELTS pointers.
4694         (iterative_hash_expr): Don't hash types associated
4695         with conversions.  Instead hash on the signedness of the
4696         toplevel object and the operand of the conversion.
4697         (dump_tree_statistics): Call ssanames_print_statistics
4698         and phinodes_print_statistics.
4699         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4700         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4701         needs_to_live_in_memory): New.
4702         (initializer_zerop): Handle VECTOR_CST.  Don't check
4703         AGGREGATE_TYPE_P for CONSTRUCTOR.
4704         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4705         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4706         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4707         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4708         (CALL_EXPR): Add another operand.
4709         (EXPR_WITH_FILE_LOCATION): Remove.
4710         (SWITCH_EXPR): Add another operand.
4711         * tree.h: Update various comments.
4712         (union tree_ann_d): Forward declare.
4713         (struct tree_common): Add fields nowarning_flag,
4714         invariant_flag and visited.
4715         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4716         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4717         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4718         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4719         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4720         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4721         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4722         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4723         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4724         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4725         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4726         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4727         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4728         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4729         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4730         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4731         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4732         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4733         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4734         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4735         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4736         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4737         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4738         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4739         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4740         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4741         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4742         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4743         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4744         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4745         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4746         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4747         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4748         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4749         TDF_UID,): Define.
4750         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4751         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4752         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4753         EXPR_WFL_SET_LINECOL): Remove.
4754         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4755         make_phi_node, init_phinodes, fini_phinodes,
4756         release_phi_node, phinodes_print_statistics,
4757         init_ssanames, fini_ssanames, make_ssa_name,
4758         release_ssa_name, ssanames_print_statistics,
4759         annotate_with_file_line, build_empty_stmt,
4760         annotate_with_locus, expr_only, categorize_ctor_elements,
4761         count_type_elements, add_var_to_bind_expr, is_essa_node,
4762         expand_stack_alloc, expand_stack_save,
4763         expand_stack_restore, add_case_node, operand_equal_p,
4764         nondestructive_fold_unary_to_constant,
4765         nondestructive_fold_binary_to_constant,
4766         fold_read_from_constant_string, int_const_binop,
4767         strip_float_extensions, simplify_builtin, c_strlen,
4768         recompute_tree_invarant_for_addr_expr,
4769         needs_to_live_in_memory, make_vector,
4770         setjmp_vars_warning, update_alignment_for_field,
4771         expand_asm_expr, asm_op_is_mem_input,
4772         containing_blocks_have_cleanups_or_stack_level,
4773         create_artificial_label, gimplify_function_tree,
4774         get_name, unshare_expr, walk_tree,
4775         walk_tree_without_duplicates, in_gimple_form): Declare.
4776         (struct tree_exp): Add fields locus and block.
4777         (struct tree_ssa_name, struct edge_def, struct
4778         tree_phi_node, struct tree_eref_common, struct
4779         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4780         union alias_var_def, struct tree_statement_list_node,
4781         struct tree_statement_list, enum operand_equal_flag): Declare.
4782         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4783         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4784         TS_STATEMENT_LIST.
4785         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4786         euse and stmt_list.
4787         (function_cannot_inline_p, uninitialized_vars_warning,
4788         save_for_inline, output_inline_function, all_cases_count,
4789         check_for_full_enumeration_handling,
4790         declare_nonlocal_label): Remove.
4791         (enum tree_dump_index): Add TDI_none, TDI_tu,
4792         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4793         * unroll.c (unroll_loop): Don't clear map->inline_target.
4794         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4795         function.
4796         * value-prof.c (value_prof_hooks): New.
4797         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4798         Move rtl-specific bits in from branch_prob.
4799         (value_profile_transformations): Rename to
4800         rtl_value_profile_transformations.
4801         (struct value_prof_hooks): New.
4802         (rtl_value_prof_hooks): New.
4803         (rtl_register_value_prof_hooks): New.
4804         (tree_find_values_to_profile): New stub.
4805         (tree_value_profile_transformations): New stub.
4806         (tree_value_prof_hooks): New stub.
4807         (tree_register_value_prof_hooks): New stub.
4808         (find_values_to_profile): New.
4809         (value_profile_transformations): New.
4810         * value-prof.h: Add multiple inclusion guard.
4811         (struct histogram_value): Change rtx fields to void *.
4812         (rtl_register_value_prof_hooks): New declaration.
4813         (tree_register_value_prof_hooks): New declaration.
4814         (find_values_to_profile): New declaration.
4815         (free_profiled_values): New declaration.
4816         (value_profile_transformations): New declaration.
4817         (struct profile_hooks): New declaration.
4818         (init_branch_prob): Declaration moved from rtl.h.
4819         (branch_prob): Declaration moved from rtl.h.
4820         (end_branch_prob): Declaration mooved from rtl.h.
4821         (tree_register_profile_hooks): New declaration.
4822         (rtl_register_profile_hooks): New declaration.
4823         (tree_profile_hooks): New declaration.
4824         (rtl_profile_hooks): New declaration.
4825         * varasm.c: Include tree-mudflap.h.
4826         (TRAMPOLINE_ALIGNMENT): Remove.
4827         (make_decl_rtl): Call mudflap_enqueue_decl.
4828         (assemble_static_space):
4829         (assemble_trampoline_template): Set and return
4830         TRAMPOLINE_ALIGNMENT.
4831         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4832         Add entry for 'tree *'.
4833         Add entry for struct edge_def *.
4834         (varray_copy): New.
4835         * varray.h (enum varray_data_enum): Add
4836         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4837         VARRAY_DATA_TREE_PTR.
4838         (union varray_data_tag): Corresponding changes.
4839         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4840         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4841         VARRAY_EDGE, VARRAY_TREE_PTR,
4842         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4843         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4844         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4845
4846         * config/*/*: Various updates for changed macros, tree
4847         codes, etc.  Check ChangeLog.tree-ssa.
4848
4849         * doc/cfg.texi: New file.
4850         * doc/tree-ssa.texi: New file.
4851         * doc/c-tree.texi: Document new codes.
4852         * doc/gccint.texi: Include new files.
4853         * doc/install.texi: Document new features.
4854         * doc/invoke.texi: Document new switches.
4855         * doc/passes.texi: Document new passes.
4856         * doc/rtl.texi: Update changed RTL codes.
4857         * doc/sourcebuild.texi: Update build instructions.
4858         * doc/standards.texi: Document Fortran changes.
4859         * doc/tm.texi: Update.
4860
4861 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4862
4863         Replace several arrays with a struct of arrays.
4864         * combine.c (struct reg_stat): New.
4865         (init_reg_last_arrays): Renamed to...
4866         (init_reg_last): ...this.  Callers adjusted.
4867         (reg_stat): New.
4868         (combine_instructions): Allocate it and use it.
4869         (reg_last_death, reg_last_set, reg_last_set_value,
4870         reg_last_set_label, reg_last_set_table_tick,
4871         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4872         reg_last_set_mode, reg_last_set_nonzero_bits,
4873         reg_last_set_sign_bit_copies): Replace throughout
4874         with items of reg_stat.
4875
4876 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4877
4878         PR optimization/15100
4879         * combine.c (distribute_notes): Don't create a dangling
4880         REG_LIBCALL/REG_RETVAL note.
4881
4882 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4883
4884         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4885
4886         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4887         negv2si2.
4888
4889 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4890
4891         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4892
4893 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4894
4895         * doc/gty.texi (GTY Options): Clarify example.
4896
4897 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4898
4899         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4900         Add const qualifier to altivec vector type if one is needed.
4901
4902 2004-05-11  Paul Brook  <paul@codesourcery.com>
4903
4904         * flags.h (flag_short_enums): Update comment.
4905         * opts.c (decode_options): Set flag_short_enums to 2.
4906         * toplev.c (flag_short_enums): Update comment.
4907         (process_options): Call default_short_enums target hook.
4908
4909 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4910
4911         PR target/14063
4912         * config/rs6000/altivec.md (altivec_dssall):
4913         Change to unspec_volatile.
4914         (altivec_dss): Likewise.
4915
4916 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4917
4918         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4919         vnor.
4920         ("one_cmplv8hi2"): Same.
4921         ("one_cmplv4si2"): Same.
4922
4923 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4924
4925         PR target/15130
4926         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4927         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4928         into account.  Compute the correct number of general registers
4929         for the return value.  Generate a special push/pop sequence when
4930         failing to get a temporary register for non SHmedia epilogue.
4931         (sh_expand_epilogue): Add an argument to show whether it's for
4932         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4933         -1 if needed.
4934         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4935         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4936         with 1.
4937         (epilogue): Call sh_expand_epilogue with 0.
4938
4939 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4940
4941         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4942         goto a cleanup label.  After the cleanup, free the allocated memory.
4943
4944 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4945
4946         * config/rs6000/altivec.h (vec_sld): Add overloads for
4947         argument/return types of 'vector bool int', 'vector bool short'
4948         and 'vector bool char'.
4949
4950 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4951
4952         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4953         nested function.
4954
4955 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4956
4957         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4958         treating missing ones as "".
4959         * config/mips/mips.md: Remove constraints from match_operands and
4960         match_scratches if they appear in define_expands (except reload*),
4961         define_peephole2s, define_splits or attribute specifications.
4962         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4963         constraint strings.
4964
4965 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4966
4967         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4968         AltiVec vectors.
4969         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4970         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4971         byte boundary.  Remove useless code.  Add function comment.
4972         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4973         call to where it belongs.
4974         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4975         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4976         (rs6000_va_arg): Adjust for AltiVec change.
4977
4978 2004-05-10  Paul Brook  <paul@codesourcery.com>
4979
4980         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4981         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4982         (TARGET_DOUBLEWORD_ALIGN): Use it.
4983         (WCHAR_TYPE): Define.
4984         (WCHAR_SIZE_TYPE): Define.
4985         (SIZE_TYPE): Define.
4986
4987 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4988
4989         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4990         when size is 8 bytes.
4991         (function_arg_advance): Account for stack space used by AltiVec
4992         args when -mabi=altivec.  Simplify alignment calculations.  For
4993         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4994         (function_arg): Similarly.
4995         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4996         not AltiVec ABI.
4997         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4998         Correct alignment, and align before testing reg count.  Remove
4999         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
5000         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5001         TARGET_FPRS here..
5002         (rs6000_function_value): .. not here before call.
5003
5004 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5005
5006         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5007
5008 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
5009
5010         PR 15007
5011         * c-decl.c (current_file_decl): Rename to all_translation_units,
5012         adjust comment.
5013         (pop_scope): If popping file_scope, construct a
5014         TRANSLATION_UNIT_DECL and make it the context of all the
5015         symbols in the scope.
5016         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5017         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
5018         anything to current_file_decl.
5019         (pushdecl_top_level): Likewise.
5020         (store_parm_decls_newstyle): Adjust check for nested function.
5021         (c_write_global_declarations): Update for renamed variable.
5022
5023 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
5024
5025         * config/rs6000/rs6000-protos.h
5026         (rs6000_conditional_register_usage): Protoize.
5027
5028         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5029
5030         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5031         function.
5032
5033 2004-05-08  Roger Sayle  <roger@eyesopen.com>
5034
5035         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5036         where op is a comparison operator and C1 and C2 are integer constants
5037         into a range check.
5038         (fold): Call fold_div_compare.
5039
5040 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5041
5042         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5043         problems with earlier versions of the GNU compiler.
5044
5045 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
5046
5047         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5048         Declare.
5049
5050         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5051         (rs6000_hard_regno_mode_ok): New.
5052         (rs6000_init_hard_regno_mode_ok): New.
5053         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5054
5055         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5056         result.
5057
5058 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
5059
5060         * config/rs6000/altivec.h (vector, pixel, bool): Do not
5061         define as macros #ifdef __APPLE_ALTIVEC__.
5062
5063 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
5064
5065         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5066         Generate appropriate parallels for vector arguments
5067         passed to vararg functions. (function_arg): make the call
5068         to rs6000_mixed_function_arg for vector args as needed.
5069
5070 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5071
5072         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5073         EABI_FLOAT_VARARGS_P.
5074
5075 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5076
5077         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5078         * config/mips/mips.c (override_options): Disable branch likely
5079         instructions if TUNE_MIPS5500.
5080
5081 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
5082
5083         * config/mips/mips.c (override_options): Allow the hi and lo registers
5084         to store any integral mode, not just MODE_INTs.
5085
5086 2004-05-07  Paul Brook  <paul@codesourcery.com>
5087
5088         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5089         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5090         (TARGET_DOUBLEWORD_ALIGN): Use it.
5091         (WCHAR_TYPE): Define.
5092         (WCHAR_SIZE_TYPE): Define.
5093         (SIZE_TYPE): Define.
5094
5095 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5096
5097         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5098         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5099
5100 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
5101
5102         * loop-doloop.c (doloop_valid_p): Make sure that body
5103         gets freed.
5104
5105 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
5106
5107         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5108         declaration.
5109         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5110         (sparc_skip_caller_unimp): New global variable.
5111         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5112         Use it instead of SKIP_CALLERS_UNIMP_P.
5113         * config/sparc/sparc.md (call expander): Add sanity check.
5114         (call_address_struct_value_sp32): Re-sync with expander.
5115         (call_symbolic_struct_value_sp32): Likewise.
5116         (return peepholes): Use 'sparc_skip_caller_unimp' instead
5117         of custom predicate.
5118
5119 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5120
5121         PR c++/14962
5122         * c-pragma.c (handle_pragma_redefine_extname): Only change
5123         the assembler name of FUNCTION_DECLs and VAR_DECLs.
5124
5125 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
5126
5127         * optabs.h (enum optab_index): Add new OTI_log1p.
5128         (log1p_optab): Define corresponding macro.
5129         * optabs.c (init_optabs): Initialize log1p_optab.
5130         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5131         patterns.
5132         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5133         using log1p_optab.
5134         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5135         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5136
5137         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5138
5139         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5140         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5141         Prototype here.
5142         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5143         x87's fyl2xp1 instruction.
5144         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5145         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5146         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5147         log1p  and log1pl built-ins as inline x87 intrinsics.
5148
5149 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
5150
5151         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5152         * config/arm/freebsd.h: Likewise.
5153         * config/ia64/freebsd.h: Likewise.
5154         * config/sparc/freebsd.h: Likewise.
5155
5156 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5157
5158         PR optimization/15296
5159         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5160         getting last consecutive label at a branch.
5161         (relax_delay_slots): Similar, near top of loop.
5162
5163 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5164
5165         PR target/15202
5166         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5167         register to general register.
5168
5169 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5170
5171         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5172         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5173         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5174         (STACK_BOUNDARY): Delete.
5175
5176 2004-05-06  Stuart Hastings  <stuart@apple.com>
5177
5178         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5179         mistakenly clobbered by 1.423.
5180
5181 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5182
5183         * doc/invoke.texi: Document -mvr4130-align.
5184         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5185         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5186         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5187         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5188         * config/mips/mips.md: Include sched-int.h.
5189         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5190         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5191         (override_options): Enable -mvr4130-align at -O3 and above.
5192         (mips_sim_insn): New variable.
5193         (mips_sim): New structure.
5194         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5195         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5196         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5197         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5198         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5199         (mips_reorg): Call vr4130_align_insns.
5200         (vr4130_last_insn): New variable.
5201         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5202         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5203         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5204         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5205         (mips_use_dfa_pipeline_interface): Return true for the same.
5206         * config/mips/4130.md: New file.
5207         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5208         "mult;mflo" into "mtlo;macc".
5209         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5210         target of maccs.
5211         (*msac_using_macc): New pattern.
5212
5213 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5214
5215         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5216         (ir_vr55_hilo): Split into...
5217         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5218         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5219         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5220         Add various multiplication bypasses.
5221         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5222         multiplication.
5223
5224 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5225
5226         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5227         attribute to "XF".
5228
5229 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5230
5231         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5232         (fmod_optab, drem_optab): Define corresponding macros.
5233         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5234         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5235         using fmod?f3 and drem?f3 patterns.
5236         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5237         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5238         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5239         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5240         flag_unsafe_math_optimizations is set.
5241
5242         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5243         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5244
5245         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5246         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5247         Prototype here.
5248         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5249         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5250         fprem and fprem1 instructions.
5251         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5252         Rename insn definition to x86_fnstsw_1.
5253         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5254         x87 instructions.
5255         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5256         and fmodl built-ins as inline x87 intrinsics.
5257         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5258         and dreml built-ins as inline x87 intrinsics.
5259
5260 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5261
5262         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5263
5264 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5265
5266         PR driver/9822
5267         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5268
5269 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5270
5271         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5272         representation.
5273
5274 2004-05-06  Paul Brook  <paul@codesourcery.com>
5275
5276         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5277         (arm_coproc_mem_operand): ... To this.
5278         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5279         (arm_legitimate_index_p): Ditto.
5280         (vfp_mem_operand): Rename ...
5281         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5282         (vfp_secondary_reload_class): Use it.
5283         (output_move_double): Use doubleword load/store instructions.
5284         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5285         * config/arm/arm.h (TARGET_LDRD): Define.
5286         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5287         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5288         New splitter for invalid doubleword loads.
5289         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5290         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5291         * doc/md.texi: Document Uy constraint.
5292
5293 2004-05-05  Jan Hubicka  <jh@suse.cz>
5294
5295         PR opt/14980
5296         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5297         inline clones.
5298
5299 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5300
5301         PR target/15290
5302         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5303         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5304
5305 2004-05-05  Mike Stump  <mrs@apple.com>
5306
5307         * config/darwin-c.c (add_framework): Copy the directory name as it
5308         can be freed later.  Also, ensure we always allocate enough room
5309         for the cached framework information.
5310         (find_subframework_header): Keep track of the directory where the
5311         subframework header was found.
5312         (framework_construct_pathname): Speed up by not trying to re-add a
5313         framework.
5314         * cppfiles.c (search_path_exhausted): Arrange for the missing
5315         header callback to be able to set the directory where the header
5316         was found.
5317         (cpp_get_dir): Add.
5318         * cpplib.h (missing_header_cb): Add a parameter.
5319         (cpp_get_dir): Add.
5320
5321 2004-05-03  Mike Stump  <mrs@apple.com>
5322
5323         * doc/invoke.texi (Directory Options): Document -iquote.
5324         * doc/cpp.texi: Likewise.
5325         * doc/cppopts.texi: Likewise.
5326         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5327         (c_common_handle_option): Likewise.
5328         * c.opt (iquote): Add.
5329         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5330         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5331
5332         * c-opts.c (case OPT_I): Deprecate -I- support.
5333         * doc/invoke.texi: Likewise.
5334         * doc/cpp.texi: Likewise.
5335         * doc/cppopts.texi: Likewise.
5336
5337 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5338
5339         * basic-block.h (free_basic_block_vars): Update prototype.
5340         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5341         argument.
5342         (life_analysis): Update call.
5343         * ifcvt.c (if_convert): Likewise.
5344         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5345         * passes.c (rest_of_handle_final): Likewise.
5346         (rest_of_compilation): Likewise.
5347         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5348
5349         * emit-rtl.c (next_real_insn): Use INSN_P.
5350         (prev_real_insn): Likewise.
5351
5352 2004-05-05  Eric Christopher  <echristo@redhat.com>
5353
5354         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5355         representation.
5356
5357 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5358
5359         * config/rs6000/rs6000.c (build_opaque_vector_type):
5360         New function.
5361         (rs6000_init_builtins): Use it.
5362
5363 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5364
5365         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5366         (func_table): Change type from char ** to vms_func_ref.
5367         (write_rtnbeg):  Update to reflect func_table change.  Use
5368         fde->funcdef_number instead of rtnnum in output.
5369         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5370
5371 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5372             Richard Henderson  <rth@redhat.com>
5373
5374         PR target/14899
5375
5376         * c-common.c (vector_types_convertible_p): New function.
5377         * c-typeck.c (comptypes): Recurse on vector types.
5378         (convert_for_assignment): Use vector_types_convertible_p.
5379         (digest_init): Use vector_types_convertible_p to check
5380         validness of constant vector initializers; otherwise treat
5381         them as scalars.
5382         * tree.c (make_or_reuse_type): New.
5383         (build_common_tree_nodes): Use it.
5384         * cp/call.c (standard_conversion): Likewise.
5385         * cp/typeck.c (comptypes): Recurse on vector types.
5386         (convert_for_assignment): Use vector_types_convertible_p.
5387
5388 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5389
5390         * config/mips/mips.c (override_options): Default to no
5391         generation of branch-likely operations when tuning for
5392         CPUs where they tend to have a negative performance impact
5393         (e.g., SB-1).
5394
5395 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5396
5397         * expr.c (store_constructor_field): Don't call store_constructor
5398         if bitsize is not a multiple of a byte.
5399
5400 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5401
5402         * reload1.c (inherit_piecemeal_p): New function.
5403         (emit_reload_insns): When reloading a group of hard registers, use
5404         inherit_piecemeal_p to decide whether the values of individual hard
5405         registers can be inherited.
5406
5407 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5408
5409         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5410         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5411         * config/t-linux (LIB2ADDEHDEP): Likewise.
5412
5413 2004-05-04  Paul Brook  <paul@codesourcery.com>
5414
5415         * config/arm/crti.asm: Push an even number of registers.
5416         * config/arm/crtn.asm: And restore them.  Load via sp.
5417
5418 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5419
5420         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5421         Collect overhead information.
5422         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5423         parameter and pass it through.
5424         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5425         MEM_STAT_DECL parameter and pass it through.
5426         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5427         MEM_STAT_DECL parameter and pass it through.
5428
5429 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5430
5431         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5432
5433         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5434
5435         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5436         rs6000_hard_regno_nregs.
5437
5438 2004-05-03  Eric Christopher  <echristo@redhat.com>
5439
5440         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5441         prologue insn instead of setting up call.
5442         (s390_emit_epilogue): Ditto.
5443         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5444         (define_constants): Add numbers for above patterns.
5445
5446 2004-05-03  Eric Christopher  <echristo@redhat.com>
5447
5448         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5449         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5450         * config/s390/s390-protos.h: Prototype.
5451
5452 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5453
5454         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5455         assignment.
5456
5457 2004-05-03  Eric Christopher  <echristo@redhat.com>
5458
5459         * config/mips/mips.md: Fix branch length attribute definition.
5460
5461 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5462
5463         * config.gcc: Remove --enable-altivec support.
5464
5465         * config/rs6000/altivec-defs.h: Remove.
5466
5467 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5468
5469         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5470         * fixinc/fixincl.x: Regenerate.
5471
5472 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5473
5474         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5475         definition.
5476         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5477         float_truncate insn.
5478         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5479         (logb?f2): Reimplement expanders with float_truncate insn.
5480
5481 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5482
5483         PR 14718
5484         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5485         force_type_die for CONST_DECL.
5486
5487 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5488             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5489
5490         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5491         tm-dwarf2.h to tm_file.
5492         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5493         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5494         (ASM_DEBUG_SPEC): Delete.
5495
5496 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5497
5498         * optabs.h (enum optab_index): Add new OTI_expm1.
5499         (expm1_optab): Define corresponding macro.
5500         * optabs.c (init_optabs): Initialize expm1_optab.
5501         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5502         patterns.
5503         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5504         using expm1_optab.
5505         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5506         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5507
5508         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5509         to implement expm1, expm1f and expm1l built-ins as inline x87
5510         intrinsics.
5511
5512 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5513
5514         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5515         * config/frv/frv.md (*return_true, *return_false): New patterns.
5516
5517 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5518
5519         * rtl.h (PHI_NODE_P): Remove.
5520
5521 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5522
5523         PR middle-end/14988
5524         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5525         when passed -2 as 'align'.
5526         (put_var_into_stack): Use 'bool' as the type for the three local
5527         predicates.  Adjust calls to put_reg_into_stack.
5528         When passed a CONCAT, instruct put_reg_into_stack to use
5529         a consecutive stack slot for the second part.
5530         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5531         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5532         parameters.  Retrieve the register mode from 'reg'.
5533         When consecutive_p is true, instruct assign_stack_local_1 to use
5534         BITS_PER_UNIT alignment.
5535         (put_addressof_into_stack): Use 'bool' as the type for the two
5536         local predicates. Adjust call to put_reg_into_stack.
5537
5538 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5539
5540         * fold-const.c (fold_convert_const, fold): Add missing
5541         FIX_ROUND_EXPR case.
5542
5543 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5544
5545         * configure.ac (FLEX, BISON): Only use tools from the build tree
5546         if build equals host.
5547         * configure: Rebuilt.
5548
5549         * config/frv/frv-protos.h (frv_expand_epilogue,
5550         frv_expand_fdpic_call): Add bool argument.
5551         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5552         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5553         (frv_expand_epilogue): Use new argument to decide whether to emit
5554         return instruction or copy the return address to LR.
5555         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5556         sibcalls.
5557         (sibcall_operand): New.
5558         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5559         PLUS nor LABEL_REF.  Add sibcall_operand.
5560         * config/frv/frv.md (call, call_value): Pass false to
5561         frv_expand_fdpic_call.
5562         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5563         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5564         sibcall_value_internal, sibcall_value_fdpicdi): New.
5565         (return_unsigned_true, return_unsigned_false): New.
5566         (epilogue): Adjust call to frv_expand_epilogue.
5567         (sibcall_epilogue): New.
5568
5569         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5570         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5571         before redefining them.
5572
5573 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5574
5575         * builtins.c (fold_fixed_mathfn): New function.
5576         (fold_builtin_lround, fold_builtin): Use it.
5577
5578 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5579
5580         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5581         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5582
5583 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5584
5585         * config/cris/cris.h: Revert my "fix comment typos" patch.
5586
5587 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5588
5589         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5590
5591 2004-05-01  Falk Hueffner  <falk@debian.org>
5592
5593         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5594         builtin_insll): Disallow 0 as first input operand.
5595
5596 2004-05-01  Falk Hueffner  <falk@debian.org>
5597
5598         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5599
5600 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5601
5602         PR middle-end/15054
5603         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5604         on a TARGET_EXPR temp.
5605         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5606         TARGET_EXPR temp slots.
5607
5608 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5609
5610         * simplify-rtx.c (simplify_ternary_operation): When
5611         converting an IF_THEN_ELSE to a relational op, return
5612         correct mode.
5613
5614 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5615
5616         * builtins.c (fold_builtin_round): Fix comment typo.
5617         (fold_builtin_lround): New function.
5618         (fold_builtin): Use it.
5619
5620 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5621
5622         PR target/11608
5623         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5624         more like the one in config/dbxelf.h.
5625
5626 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5627
5628         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5629         and adjust definition accordingly.
5630         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5631         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5632         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5633         VECTOR_TYPE.
5634
5635 2004-04-30  Jason Merrill  <jason@redhat.com>
5636
5637         PR c++/14587
5638         * config/i386/winnt.c (associated_type): Look for attributes on
5639         the TYPE_MAIN_VARIANT of *this.
5640         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5641         apply the attributes to the variants.
5642
5643 2004-04-30  Paul Brook  <paul@codesourcery.com>
5644
5645         * config.gcc: Simplify arm --with-{cpu,tune} test.
5646         * config/arm/arm-cores.def: Document whitespace restrictions.
5647
5648 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5649
5650         PR other/1963
5651         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5652
5653 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5654             DJ Delorie  <dj@redhat.com>
5655
5656         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5657         (DWARF2_DEBUGGING_INFO): Define to enable.
5658         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5659         DWARF2.
5660         * configure.ac (Target-specific assembler checks)
5661         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5662         relocs.
5663         * configure: Regenerate.
5664         * config.in: Likewise.
5665
5666         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5667         (ASM_OUPUT_DWARF_OFFSET): Define.
5668
5669 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5670
5671         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5672         (s390_emit_call): New function prototype added.
5673         (s390_tls_get_offset): Function removed.
5674         * config/s390/s390.c (s390_function_ok_for_sibcall,
5675         s390_call_saved_register_used_p): New functions.
5676         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5677         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5678         (s390_emit_tls_call_insn): New function.
5679         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5680         emit_call_insn.
5681         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5682         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5683         added.
5684         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5685         register number used to hold the target address for sibcalls.
5686         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5687         New expanders.
5688         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5689         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5690         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5691         Expanders removed.
5692         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5693         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5694         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5695         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5696         new parameter.
5697
5698 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5699
5700         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5701         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5702         reg-stack.c, varasm.c, config/alpha/ev4.md,
5703         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5704         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5705         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5706         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5707         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5708         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5709         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5710         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5711         comment typos.
5712
5713 2004-04-30  Paul Brook  <paul@codesourcery.com>
5714
5715         * config.gcc: Default ep9312 to hard-float.
5716         * config/arm/arm-cores.def: Add ARCH field.
5717         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5718         (arm_arch_cirrus): New variable.
5719         (all_cores): Set and use arch.
5720         (all_architectures): Ditto.
5721         (arm_arch_name): New variable.
5722         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5723         Set and use arm_arch_cirrus.
5724         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5725         (enum processor_type): Update ARM_CORE define.
5726         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5727         (CPP_SPEC): Remove %(cpp_cpu_arch).
5728         (CPP_ARCH_DEFAULT_SPEC): Remove.
5729         (CPP_CPU_ARCH_SPEC): Remove.
5730         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5731         (FPUTYPE_DEFAULT): Don't define here.
5732
5733 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5734
5735         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5736         updates too.
5737
5738 2004-04-30  Paul Brook  <paul@codesourcery.com>
5739
5740         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5741
5742 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5743
5744         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5745         vec_sububs.
5746         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5747         duplicates.
5748
5749 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5750
5751         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5752         atan2?f3 expanders.
5753
5754 2004-04-29  Nick Clifton  <nickc@redhat.com>
5755
5756         Bug 14093
5757         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5758         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5759         Delete static from definition.
5760         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5761
5762 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5763
5764         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5765         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5766         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5767         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5768
5769 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5770
5771         * commom.opt (Wfatal-errors): Add it.
5772         * diagnostic.c (flag_fatal_errors): Define it.
5773         (diagnostic_action_after_output): Check for flag_fatal_errors.
5774         * flags.h (flag_fatal_errors): Declare it.
5775         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5776         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5777
5778 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5779
5780         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5781         blocks which have kill flag set.
5782
5783 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5784
5785         * configure.ac (--with-as): Abort if user-supplied assembler
5786         cannot be executed.
5787         (--with-ld): Likewise for the linker.
5788         * configure: Regenerate.
5789
5790 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5791
5792         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5793         isn't NULL before using it.
5794
5795 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5796
5797         PR target/15189
5798         * config/mips/mips.md (load_df_low): Use default length.
5799         (load_df_high, store_df_high): Likewise.
5800
5801 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5802
5803         * config/mips/mips.md, config/mips/sb1.md,
5804         config/rs6000/rs6000.c: Fix comment typos.
5805
5806 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5807
5808         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5809         Fix comment typos.
5810
5811 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5812
5813         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5814         (delete_if_ordinary): Use above macro.
5815         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5816         Update copyright.
5817         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5818
5819 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5820
5821         * c-decl.c (get_parm_info): Use the correct tag keywords when
5822         warning about type declarations in prototypes.
5823
5824 2004-04-29  Paul Brook  <paul@codesourcery.com>
5825
5826         * config.gcc: Pull list of cores from arm-cores.def.
5827
5828 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5829
5830         * combine.c (combine_simplify_rtx): Adjust call to use
5831         simplify_relational_operation.  Do not use SELECT_CC_MODE
5832         when a comparison already has a MODE_CC mode.
5833
5834 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5835
5836         (simplify_set): simplify_relational_operation may now
5837         return another relational expression.
5838         * cse.c (fold_rtx): simplify_relational_operation now
5839         takes of computing the comparison mode.
5840         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5841         remove dead code.
5842         (do_compare_rtx_and_jump): Likewise.
5843         * integrate.c (subst_constants): simplify_relational_operation
5844         may now return another relational expression.
5845         * simplify-rtx.c (simplify_gen_relational): Move most code to
5846         the new simplify_relational_operation and
5847         simplify_relational_operation_1 functions.
5848         (simplify_relational_operation): Rewritten.
5849         (simplify_relational_operation_1): New function.
5850         (simplify_ternary_operation): simplify_relational_operation
5851         may now return another relational expression.
5852         (simplify_rtx): Remove unnecessary temp variable.
5853
5854 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5855
5856         * reg-stack.c (swap_to_top): New function.
5857         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5858         swap_to_top().
5859         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5860         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5861         UNSPEC_FSCALE_EXP.
5862
5863         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5864         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5865         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5866         x87's fscale insn.
5867         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5868         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5869         patterns.
5870
5871 2004-04-28  Serge Belyshev  <1319@bot.ru>
5872
5873         PR 14944
5874         * coverage.c (read_counts_file): Fix usage of warning () call.
5875         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5876
5877 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5878
5879         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5880         options with "-" in the option index.
5881         (SPARC Options): Likewise.
5882         (M32R/D Options): Likewise.
5883
5884 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5885
5886         * convert.c (convert_to_integer): Convert (long)round -> lround,
5887         etc.
5888
5889 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5890
5891         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5892         Return false if we do not have fp register.
5893         (addrs_ok_for_quad_peep): Rename to ...
5894         (mems_ok_for_quad_peep): this.
5895         Add check for volatile memory.
5896         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5897         Rename to ...
5898         (mems_ok_for_quad_peep): this.
5899         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5900         to peephole2's.
5901         (lfq_power2): New instruction.
5902         (stfq_power2): Likewise.
5903
5904 2004-04-28  Jan Hubicka  <jh@suse.cz>
5905
5906         PR c/15004
5907         * function.c (do_warn_unused_parameter): Break out form ...
5908         (expand_function_end): ... here; warn only when not using cgraphunit.
5909         * function.h (do_warn_unused_parameter): Declare.
5910         * cgraphunit.c: Include function.h.
5911         (cgraph_finalize_function): Do unused parameter warning.
5912         * Makefile.in (cgraphunit.o): Depend on function.h
5913
5914 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5915
5916         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5917         calling install-info on $(DESTDIR)$(infodir)/dir already being
5918         present.
5919
5920 2004-04-28  Paul Brook  <paul@codesourcery.com>
5921
5922         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5923
5924 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5925
5926         * gcse.c (find_moveable_store): Do not accept store insns with
5927         REG_EH_REGION note.
5928
5929 2004-04-28  Paul Brook  <paul@codesourcery.com>
5930
5931         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5932         * function.c (assign_temp): Ditto.
5933         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5934
5935 2004-04-28  Paul Brook  <paul@codesourcery.com>
5936
5937         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5938
5939 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5940
5941         * var-tracking.c (variable_different_p): Add a parameter
5942         compare_current_location, compare current location of variable parts
5943         if it is true.
5944         (dataflow_set_different_1): Pass compare_current_location == false.
5945         (dataflow_set_different_2): Pass compare_current_location == false.
5946         (emit_notes_for_differences_1): Pass compare_current_location == true.
5947
5948 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5949
5950         * config/s390/s390.md ("casesi"): Mark jump table access as
5951         non-trapping and unchanging.
5952
5953 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5954
5955         PR debug/14829
5956         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5957         callers.
5958         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5959         number for indexing hard_regno_nregs array.
5960
5961 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5962
5963         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5964         * config/darwin-crt2.c: Only have contents on __ppc__.
5965
5966 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5967
5968         * config/xtensa/xtensa.c (call_insn_operand): Check
5969         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5970         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5971         * config/xtensa/xtensa.md (call, call_value): Likewise.
5972
5973 2004-04-27  Wu Yongwei  <adah@sh163.net>
5974
5975         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5976         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5977         (__gthread_mutex_init_function): Replace CreateMutex with
5978         initialization of custom mutex using CreateSemaphore.
5979         (__gthread_mutex_lock): Use InterlockedIncrement.
5980         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5981         (__gthread_mutex_unlock): Use InterlockedDecrement and
5982         ReleaseSemaphore to unlock
5983         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5984         __gthread_mutex_lock, __gthread_mutex_trylock,
5985         __gthread_mutex_unlock): Adjust to match inline versions in
5986         gthr-win32.h.
5987
5988 2004-04-27  Paul Brook  <paul@codesourcery.com>
5989
5990         * config/arm/arm.c (arm_promote_prototypes): New function.
5991         (TARGET_PROMOTE_PROTOTYPES): Use it.
5992
5993 2004-04-27  Paul Brook  <paul@codesourcery.com>
5994
5995         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5996
5997 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5998
5999         * config/alpha.c (alpha_end_function): For OpenVMS gas,
6000         correctly output .pdesc directive before .end.
6001
6002 2004-04-26  James E Wilson  <wilson@specifixinc.com>
6003
6004         Bug 14927
6005         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
6006         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
6007
6008 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
6009
6010         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6011         * config/pa/pa-hpux10.h: Likewise.
6012         * config/pa/pa-hpux11.h: Likewise.
6013
6014 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
6015
6016         * doc/invoke.texi (Overall Options): Document default for -o
6017         for PCH files.
6018
6019 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6020
6021         * builtins.c (expand_builtin_update_setjmp_buf): New function.
6022         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6023         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6024
6025 2004-04-26  Paul Brook  <paul@codesourcery.com>
6026
6027         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6028
6029 2004-04-26  Paul Brook  <paul@codesourcery.com>
6030
6031         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6032
6033 2004-04-25  Roger Sayle  <roger@eyesopen.com>
6034
6035         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6036         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
6037         X % -1 as 0.
6038
6039 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
6040
6041         PR bootstrap/15141
6042         * except.c (connect_post_landing_pads): Delete insns after the
6043         barrier when generating a unwind_resume_libfunc call.
6044
6045 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6046
6047         PR/c++ 15119
6048         * tree.c (substitute_placeholder_in_expr, case 4): New case,
6049         for TARGET_EXPR.
6050
6051 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6052
6053         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6054         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6055         inhibit_libc is defined.
6056
6057 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
6058
6059         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6060         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6061         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6062         (TARGET_SCHED_VARIABLE_ISSUE): Define.
6063         (mips_adjust_cost): Move later in file, next to other sched hooks.
6064         (mips_macc_chains_last_hilo): New variable.
6065         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6066         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6067         * config/mips/mips.md (may_clobber_hilo): New attribute.
6068
6069 2004-04-24  Roger Sayle  <roger@eyesopen.com>
6070             Bruce Korb  <bkorb@gnu.org>
6071
6072         * fixinc/inclhack.def (aix_syswait_2): New fix.
6073         * fixinc/fixincl.x: Regenerate.
6074         * fixinc/tests/base/sys/wait.h: Update for new test.
6075
6076 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
6077
6078         PR target/14960
6079         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6080         to non_fixed_size, and leave out fixed_size from the sum.
6081         (generate_set_vrsave): Correct clobbers.
6082         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6083         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6084         (rs6000_libcall_value): Likewise.
6085         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6086         (FUNCTION_ARG_REGNO_P): Likewise.
6087
6088 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6089
6090         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6091         is a CONST_INT.
6092         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6093         with NARROW_OP1 instead of OP1.
6094
6095 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
6096
6097         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6098         and __s390x__ hosts.
6099
6100 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6101
6102         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6103         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6104         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6105         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6106         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6107         * builtins.c (expand_builtin_fork_or_exec): New.
6108         (expand_builtin): Call it.
6109         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6110         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6111         * c-common.c (PID_TYPE): New macro.
6112         (c_common_nodes_and_builtins): Initialize pid_type_node.
6113         * calls.c (special_function_p): Do not handle fork and exec.
6114         (expand_call): Do not handle ECF_FORK_OR_EXEC.
6115         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6116         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6117         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6118         __gcov_execv, __gcov_execvp, __gcov_execve): New.
6119         * tree.h (enum tree_index): Add TI_PID_TYPE.
6120         (pid_type_node): New macro.
6121         (ECF_FORK_OR_EXEC): Removed.
6122
6123 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6124
6125         PR optimization/13985
6126         * cfgloopmanip.c (fix_loop_placements): New prototype.
6127         Call fix_bb_placements on the preheader of loops that have
6128         been reparented.
6129         (remove_path): Adjust call to fix_loop_placements.
6130
6131 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
6132
6133         * config/darwin7.h: New file.
6134         * config.gcc (*-*-darwin*): Add darwin7.h if the
6135         version is greater than 6.
6136         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6137         (MATH_LIBRARY): Wrap in ifdefs.
6138
6139 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
6140
6141         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6142         loading iWMMXt registers with a frame pointer.  Use post-increment
6143         without a frame pointer.
6144         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6145
6146 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
6147
6148         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6149         mode" rather than "-funit-at-a-time" since -O2 enables it
6150         without requiring -f* options.  Refer to -fprofile-generate and
6151         -fprofile-use correctly.  Move -funit-at-a-time among options
6152         enabled by -O.  Add information about unit-at-a-time caveats.
6153
6154 2004-04-22  Per Bothner  <per@bothner.com>
6155
6156         * line-map.h (struct line_maps):  New field highest_line.
6157         (linemap_position_for_column):  Make non-inline function.
6158         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6159         * line-map.c (linemap_init):  Clear highest_line field.
6160         (linemap_add):  Set highest_line field.
6161         (linemap_line_start):  Minor optimization - use highest_line field.
6162         Reduce maximum column hint to 10000.  Update highest_line field.
6163         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6164         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6165         line_table->highest_line.
6166         (saved_line):  Remove unused field.
6167         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6168         Use  line_table's highest_line field instead of cpp_reader's line.
6169         * cpplib.c (start_directive):  Likewise use highest_line field.
6170         (do_line, do_linemarker):  Likewise just use newest map.
6171         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6172         * cpperror.c (cpp_error):  Likewise use highest_line field.
6173         * cppfiles.c (open_file_failed:  Likewise.
6174         (cpp_make_system_header):  Likewise use newest map and highest_line.
6175         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6176         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6177         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6178         _cpp_lex_direct):  Likewise use highest_line.
6179         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6180         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6181         and use newest map.
6182         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6183         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6184         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6185
6186 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6187
6188         PR bootstrap/14992
6189         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6190         * config/linux.h (USE_LD_AS_NEEDED): Define.
6191         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6192         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6193         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6194         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6195         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6196         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6197         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6198
6199 2004-04-22  Per Bothner  <per@bothner.com>
6200
6201         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6202         Fixes PR preprocessor/15067.
6203
6204 2004-04-23  Andreas Schwab  <schwab@suse.de>
6205
6206         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6207         avoid aliasing warning.
6208
6209 2004-04-22  Jan Hubicka  <jh@suse.cz>
6210             Mostafa Hagog <mustafa@il.ibm.com>
6211
6212       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6213       * cfgloopanal.c (expected_loop_iterations): Change the return value
6214
6215 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6216
6217         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6218         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6219         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6220         traces.
6221
6222 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6223
6224         Revert
6225         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6226
6227                 * var-tracking.c (variable_part_different_p): Variable parts
6228                 differ when the most recent locations differ.
6229
6230 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6231
6232         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6233         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6234         (embedded_pic_offset): Delete.
6235         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6236         MASK_* constants.
6237         (TARGET_EMBEDDED_PIC): Delete.
6238         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6239         (ASM_SPEC): Remove -membedded-pic.
6240         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6241         (ASM_OUTPUT_CASE_LABEL): Likewise.
6242         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6243         * config/mips/windiss.h (ASM_SPEC): Likewise.
6244         * config/mips/mips.c (struct machine_function): Remove
6245         embedded_pic_fnaddr_rtx.
6246         (TARGET_ENCODE_SECTION_INFO): Remove override.
6247         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6248         (override_options): Remove -membedded-pic handling.
6249         (print_operand): Remove handling of '%S'.
6250         (mips_select_section: Remove -membedded-pic handling.
6251         (mips_encode_section_info): Delete.
6252         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6253         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6254         -membedded-pic handling.
6255         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6256
6257 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6258
6259         * var-tracking.c (frame_base_decl): Remove useless GTY.
6260
6261 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6262
6263         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6264         user wants altivec and e500 instructions.
6265
6266 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6267
6268         PR target/14813
6269         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6270         in .init_array section to ...
6271         * config/ia64/crtbegin.asm: Here.
6272
6273         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6274         and hidden if HAVE_INITFINI_ARRAY is defined.
6275
6276 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6277
6278         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6279         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6280         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6281         (fp_register_operand, lo_operand): New.
6282         (mips_rtx_costs): Add TUNE_SB1 support.
6283         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6284         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6285         (mips_multipass_dfa_lookahead): New.
6286         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6287         TUNE_SB1): New.
6288         (TARGET_SWITCHES): Add -mfp-exceptions support.
6289         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6290         (BRANCH_COST): Fix whitespace.
6291         * config/mips/mips.md: Include sb1.md.
6292         * config/mips/sb1.md: New file.
6293         * doc/invoke.texi: Document -mfp-exceptions.
6294
6295         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6296         comment.
6297         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6298         (fixincl.o-warn): Delete.
6299
6300 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6301
6302         * config/rs6000/rs6000 (print_operand) ['z']:
6303         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6304
6305 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6306
6307         * config.gcc: Support --with-arch=iwmmxt for ARM.
6308
6309 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6310
6311         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6312         in two more places; remove unneeded force_reg
6313
6314 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6315
6316         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6317         for TARGET_MACHO.
6318         (print_operand): For TARGET_MACHO check to see if we need a stub
6319         and output one if we need it.
6320
6321         PR debug/15033
6322         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6323         rtl.
6324
6325 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6326
6327         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6328         (vall_value_gp): Likewise.
6329
6330 2004-04-20  DJ Delorie  <dj@redhat.com>
6331
6332         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6333         variables stored in word registers, then in memory.
6334
6335 2004-04-20  Eric Christopher  <echristo@redhat.com>
6336
6337         * cp/parser.c (cp_parser_declaration): Move translate
6338         up before tokens are lexed.
6339
6340 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6341
6342         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6343         (asin_optab, acos_optab): Define corresponding macros.
6344         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6345         * genopinit.c (optabs): Implement asin_optab and acos_optab
6346         using asin?f2 and acos?f2 patterns.
6347         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6348         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6349         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6350         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6351
6352         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6353         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6354         acos, acosf and acosl built-ins as inline x87 intrinsics.
6355
6356 2004-04-20  Paul Brook  <paul@codesourcery.com>
6357
6358         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6359
6360 2004-04-20  Paul Brook  <paul@codesourcery.com>
6361
6362         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6363
6364 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6365
6366         Revert part of 2004-04-17 change that moved -frename-registers
6367         to -O1.  -frename-registers is buggy.
6368
6369         * toplev.c (flag_rename_registers): Initialize to 0.
6370         * doc/invoke.texi (Optimize options): Move -frename-registers
6371         to "Not triggered by any -O level" section.  Adjust commentary
6372         accordingly.
6373
6374 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6375
6376         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6377
6378 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6379
6380         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6381         for mflo and mfhi instructions.
6382         (mips_output_move): Remove mflo and mfhi handling.
6383         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6384         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6385         Likewise various define_peephole2s.
6386         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6387         alternatives.
6388         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6389         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6390         (mfhilo_di, mfhilo_si): New patterns.
6391
6392 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6393
6394         * function.c (assign_parms): Force
6395         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6396
6397 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6398
6399         * var-tracking.c (variable_part_different_p): Variable parts differ
6400         when the most recent locations differ.
6401
6402 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6403
6404         * rtl.h (reg_set_last): Delete declaration.
6405         * rtlanal.c (reg_set_last): Delete.
6406
6407 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6408
6409         * fold-const.c (fold_convert): Make function extern/public.
6410         * tree.h (fold_convert): Prototype here.
6411         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6412         expand_builtin_strrchr, expand_builtin_strpbrk,
6413         expand_builtin_mempcpy, expand_builtin_bcopy,
6414         expand_builtin_bzero, expand_builtin_memcmp,
6415         expand_builtin_strcmp, expand_builtin_strncmp,
6416         stabilize_va_list, expand_builtin_sprintf,
6417         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6418         fold_builtin_exponent, fold_builtin_mempcpy,
6419         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6420         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6421         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6422
6423 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6424
6425         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6426         (move_from_CR_gt_bit): New.
6427         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6428         E500.
6429         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6430         E500.
6431
6432         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6433         (tstsfeq_gpr): Same.
6434         (cmpsfgt_gpr): Same.
6435         (tstsfgt_gpr): Same.
6436         (cmpsflt_gpr): Same.
6437         (tstsflt_gpr): Same.
6438         (e500_cceq_ior_compare): New.
6439         (e500_flip_gt_bit): New.
6440
6441         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6442         (print_operand): Add 'c' and 'D'.
6443         (rs6000_generate_compare): Rewrite to generate correct rtl.
6444         (rs6000_emit_sCOND): Handle E500.
6445         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6446         (output_e500_flip_gt_bit): New.
6447
6448         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6449         Protoize.
6450
6451 2004-04-19  Eric Christopher  <echristo@redhat.com>
6452
6453         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6454
6455 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6456
6457         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6458         fix information.
6459
6460 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6461
6462         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6463         download URL.
6464
6465 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6466
6467         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6468         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6469
6470 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6471
6472         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6473         (fold_builtin): Update caller to match.
6474
6475         PR bootstrap/15009
6476         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6477
6478         PR bootstrap/14999
6479         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6480
6481 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6482
6483         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6484
6485         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6486         (expand_mult_highpart_optab): Likewise.
6487         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6488
6489 2004-04-19  Paul Brook  <paul@codesourcery.com>
6490
6491         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6492         floatunssisf2, floatunssidf2): New patterns.
6493
6494 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6495
6496         PR other/14918
6497         * doc/invoke.texi (-fprofile-generate): Document requirement to
6498         use -fprofile-generate when linking.
6499
6500         * doc/extend.texi (Strong Using): Warn users against using this
6501         feature.
6502
6503 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6504
6505         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6506         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6507         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6508         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6509         constant.  Propogate change throughout file.
6510         (struct machine_function): Remove insns_len.
6511         (mips_string_length, mips16_strings, string_constants): Delete.
6512         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6513         when generating mips16 code.  Remove special mips16 treatment of
6514         string constants.
6515         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6516         to have the form LABEL+CONSTANT.
6517         (mips_symbolic_address_p): Fix comment.
6518         (m16_usym8_4, m16_usym5_4): Delete.
6519         (mips_output_function_epilogue): Remove mips16 string handling.
6520         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6521         (mips_select_section, mips_encode_section_info): Remove mips16
6522         string handling.
6523         (struct mips16_constant_pool): New.
6524         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6525         sorted into order of ascending mode size.  Keep track of the highest
6526         possible start address, taking padding and the masking of the base PC
6527         value into account.
6528         (dump_constants_1): New function, split out from dump_constants.
6529         Handle vector constants.  Use gen_consttable_{int,float} rather than
6530         separate functions for each mode.
6531         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6532         rather than separate functions for each alignment.
6533         (mips_find_symbol): Delete.
6534         (mips16_insn_length): New function, split out from
6535         mips16_lay_out_constants.
6536         (mips16_rewrite_pool_refs): New function.
6537         (mips16_lay_out_constants): Rework. Remove string handling.
6538         Always create an inline constant pool.
6539         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6540         (UNSPEC_ALIGN): New constants.
6541         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6542         (UNSPEC_ALIGN_[248]): Delete.
6543         (consttable_int, consttable_float, align): New patterns.
6544         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6545
6546 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6547
6548         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6549         __unn_args_eq.
6550
6551 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6552
6553         PR target/14715
6554         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6555         with STARTING_FRAME_OFFSET.
6556
6557 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6558
6559         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6560         * config/mips/mips.c (macc_msac_operand): New function.
6561         * config/mips/mips.md (*msac): Move after *macc.
6562         (*msac2): New.  Generalize macc-related peepholes so that they apply
6563         to msac too.
6564
6565 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6566
6567         * opts.c (decode_options): Do not enable flag_rename_registers
6568         and flag_web at -O3.
6569         * toplev.c (flag_rename_registers): Initialize
6570         flag_rename_registers and flag_web to
6571         AUTODETECT_FLAG_VAR_TRACKING.
6572         (default_debug_hooks): New global.
6573         (process_options): Initialize default_debug_hooks.  Warn if
6574         -fvar-tracking specified but not supported by the current
6575         debug format.  Do not run var tracking at -O0 or if not
6576         supported by the current debug format, even if
6577         -fvar-tracking was given.  If -fno-rename-registers
6578         is not specified, always run register renaming if var
6579         tracking is supported by the default debugging information
6580         format for the target, and we are at -O1 or higher; similarly
6581         for -fweb, but only at -O2 or higher.
6582         * doc/invoke.texi (Optimize Options): Document this.
6583
6584 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6585
6586         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6587         * configure: Regenerate.
6588
6589 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6590
6591         * gcc.c (used_arg): Check whether an option has been removed.
6592
6593 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6594
6595         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6596         debugging on Solaris 7 and up.
6597
6598 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6599
6600         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6601         IRIX 5 port.
6602         Remove -save-temps workaround, handled automatically.
6603         Require GNU binutils 2.15 for debugging.
6604         Remove SGI make warnings since GNU make is now required.
6605         (Specific, mips-sgi-irix6): Some markup fixes.
6606         Describe MIPSpro C problems and workarounds.
6607         Mention working O32 ABI support.
6608         Recommend GNU as 2.15 for O32 with debugging.
6609         Remove description of fixed structure pass/return bug.
6610
6611 2004-04-16  DJ Delorie  <dj@redhat.com>
6612
6613         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6614         TYPE_FIELDS.
6615         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6616
6617 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6618
6619         * pa.md: Remove unnecessary declarations for asm_out_file.
6620
6621         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6622         SAR register.  Fix comment.
6623         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6624         (%cr11).
6625
6626         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6627
6628 2004-04-16  Nick Clifton  <nickc@redhat.com>
6629
6630         * config/arm/arm.c (arm_override_options): Revert previous patch.
6631         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6632         be safely built.
6633
6634 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6635
6636         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6637         bug.
6638         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6639         TARGET_DEFAULT): Changed. Ditto.
6640         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6641         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6642         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6643         (TARGET_ENDIAN_DEFAULT): Added.
6644
6645 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6646
6647         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6648         ATTR_CONST_NOTHROW_LIST.
6649
6650 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6651
6652         PR/middle-end 14915
6653         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6654         BITS_BIG_ENDIAN.
6655
6656 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6657
6658         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6659
6660 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6661
6662         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6663
6664 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6665
6666         * libada-mk.in: New file.
6667         * configure.ac: Create libada-mk from libada-mk.in.
6668         * configure: Regenerate.
6669
6670 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6671
6672         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6673         (logb_optab, ilogb_optab): Define corresponding macros.
6674         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6675         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6676         using logb?f2 and ilogb?i2 patterns.
6677         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6678         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6679         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6680         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6681
6682         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6683         and UNSPEC_XTRACT_EXP.
6684
6685         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6686         patterns to implement fxtract x87 instruction.
6687         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6688         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6689         intrinsics.
6690         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6691         x87's fxtract insn.
6692
6693 2004-04-14  Eric Christopher  <echristo@redhat.com>
6694
6695         * config/mips/t-elf: Enable multilibs by default.
6696
6697 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6698
6699         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6700         previous fix to check HAVE_return at runtime too.
6701
6702 2004-04-14  Nick Clifton  <nickc@redhat.com>
6703
6704         * config/arm/arm.c (arm_override_options): If the user has not
6705         specified an ABI, then default to AAPCS for the iWMMXt processor.
6706         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6707         * config/arm/t-xscale-coff: Likewise.
6708
6709 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6710
6711         * builtins.c (fold_builtin_isdigit): New.
6712         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6713         * defaults.h: Add TARGET_DIGIT0 and sort.
6714         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6715
6716 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6717
6718         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6719         `mathfn_built_in' to determine the new builtin.
6720         * fold-const.c (fold): Likewise.
6721
6722 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6723
6724         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6725         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6726         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6727         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6728         (ASM_SPEC): Update accordingly.
6729         * config/mips/mips.c: Update after above renaming.
6730         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6731         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6732
6733 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6734
6735         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6736         increment errorcount and return false instead of true.
6737
6738 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6739
6740         * optabs.c (expand_twoval_unop): Reorder function arguments.
6741         * builtins.c (expand_builtin_mathfn_3): Update calls to
6742         expand_twoval_unop.
6743
6744         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6745         and UNSPEC_TAN_TAN. Add missing comment.
6746
6747         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6748         patterns to implement fptan x87 instruction.
6749         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6750         and tanl built-ins as inline x87 intrinsics. Define corresponding
6751         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6752         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6753         x87's fptan insn.
6754
6755 2004-03-13  Richard Henderson  <rth@redhat.com>
6756
6757         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6758         for LABEL_REFs.
6759
6760         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6761         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6762         * doc/invoke.texi: Update to match.
6763
6764         * varasm.c (unlikely_text_section): Use assemble_align instead of
6765         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6766         correct alignment argument.
6767
6768 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6769
6770         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6771         after setting reg_last_reload_reg for optional output reloads.
6772
6773 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6774
6775         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6776         Definition of these two macros are corrected by adding
6777         matchine right paren.
6778
6779 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6780
6781         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6782
6783 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6784
6785         * config/i386/i386.c (output_387_reg_move): New function.
6786         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6787         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6788         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6789         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6790         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6791
6792 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6793
6794         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6795         TYPE_DECL.
6796         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6797         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6798         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6799         Use skip_simple_arithmetic to find SAVE_EXPR.
6800         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6801         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6802         Properly chain multiple pointers.
6803         (copy_tree_r): Copy a TYPE_DECL.
6804         * tree.c (variably_modified_type_p): Add some missing tests and
6805         make some other minor changes.
6806         * tree.h (force_type_save_exprs): New declaration.
6807
6808 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6809
6810         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6811         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6812         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6813         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6814         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6815         x%-1 into 0 (or x&0 if x has side-effects).
6816
6817 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6818
6819         * config/rs6000/rs6000.md: Document why a pattern is not
6820         available.
6821
6822         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6823         of floats on the E500.
6824         (branch_positive_comparison_operator): Do not allow NE even on the
6825         E500.
6826
6827 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6828
6829         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6830         in_text_unlikely_section to in_unlikely_text_section.
6831
6832 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6833
6834         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6835         calling convention to allow a NULL_TREE to be returned.  Factor
6836         sanity checks from callers, return NULL_TREE when appropriate.
6837         (fold): Handle COMPOUND_EXPR operands of binary expressions
6838         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6839         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6840         calls to fold_binary_op_with_conditional_arg.
6841
6842 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6843
6844         * config/mips/iris5.h (current_section_flags):  Add
6845         in_unlikely_executed_text and default case.
6846
6847 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6848
6849         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6850         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6851         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6852         HAVE_return and place it around the place where it is needed.
6853
6854 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6855
6856         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6857         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6858         and NORMAL_TEXT_SECTION_NAME.
6859         (unlikely_text_section): Check targetm.have_named_sections
6860         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6861         instead of SECTION_FORMAT_STRING.
6862         * config/mips/iris5.h (current_section_name): Add
6863         in_unlikely_executed_text case and move the abort into the switch.
6864         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6865         (NORMAL_TEXT_SECTION_NAME): Remove.
6866         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6867         (SECTION_FORMAT_STRING): Remove.
6868         * defaults.h (SECTION_FORMAT_STRING): Remove.
6869         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6870         (SECTION_FORMAT_STRING): Remove.
6871
6872 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6873
6874         * c-typeck.c (common_type): Prefer long long to long when same
6875         precision.
6876
6877 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6878
6879         PR 14887
6880         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6881         mode argument.
6882         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6883         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6884
6885 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6886
6887         * simplify-rtx.c (mode_signbit_p): New function to check whether
6888         an RTX is an immediate constant that represents the most significant
6889         bit of a given machine mode.
6890         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6891         C is the sign bit.
6892         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6893         when C2 is the sign bit.
6894         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6895         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6896         sign bit.
6897
6898 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6899
6900         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6901         TYPE_MODE.
6902
6903 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6904
6905         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6906         of TREE_READONLY for types.
6907
6908 2004-04-09  Caroline Tice  <ctice@apple.com>
6909
6910         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6911         (struct basic_block_def):  Add new field, partition.
6912         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6913         definitions.
6914         (partition_hot_cold_basic_blocks): Add extern function
6915         declaration.
6916         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6917         include statements.
6918         (N_ROUNDS): Increase the maximum number of rounds by 1.
6919         (branch_threshold): Add array value for new round.
6920         (exec_threshold): Add array value for new round.
6921         (push_to_next_round_p): New function.
6922         (add_unlikely_executed_notes): New function.
6923         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6924         (mark_bb_for_unlikely_executed_section): New function.
6925         (add_labels_and_missing_jumps): New function.
6926         (add_reg_crossing_jump_notes): New function.
6927         (fix_up_fall_thru_edges): New function.
6928         (find_jump_block): New function.
6929         (fix_crossing_conditional_branches): New function.
6930         (fix_crossing_unconditional_branches): New function.
6931         (fix_edges_for_rarely_executed_code): New function.
6932         (partition_hot_cold_basic_blocks): New function.
6933         (find_traces):  Add an extra round for partitioning hot/cold
6934         basic blocks.
6935         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6936         and only cold blocks, into the last (extra) round of collecting traces.
6937         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6938         over crossing edges.
6939         (bb_to_key):  Add code to correctly identify cold blocks when
6940         doing partitioning.
6941         (connect_traces): Modify to connect all the non-cold traces first, then
6942         go back and connect up all the cold traces.
6943         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6944         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6945         entry and exit blocks.
6946         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6947         if we are doing hot/cold partitioning.
6948         * cfgcleanup.c (cfglayout.h): Add new include statement.
6949         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6950         that cross section boundaries.
6951         (try_forward_edges): Likewise.
6952         (merge_blocks_move_predecessor_nojumps): Likewise.
6953         (merge_blocks_move_successor_nojumps): Likewise.
6954         (merge_blocks_move): Likewise.
6955         (try_crossjump_to_edge): Modify to not attempt after we have done
6956         the block partitioning.
6957         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6958         cross section boundaries.
6959         (try_optimize_cfg): Likewise.
6960         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6961         jumps that cross section boundaries.
6962         * cfglayout.c (flags.h): Add new include statement.
6963         (update_unlikely_executed_notes):  New function.
6964         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6965         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6966         updated appropriately.
6967         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6968         introduced by this optimization.
6969         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6970         extern function declaration.
6971         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6972         list of notes that can be deleted.
6973         (create_basic_block_structure):  Add initialization for partition field.
6974         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6975         section boundaries.
6976         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6977         cross section boundaries.
6978         (commit_one_edge_insertion): Add code so newly created basic block
6979         ends up in correct (hot or cold) section.  Modify to disallow
6980         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6981         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6982         crosses section boundaries.
6983         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6984         cross section boundaries.
6985         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6986         ends up in correct section, with correct notes attached.
6987         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6988         optimization.
6989         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6990         the end of functions are written into the correct (hot or cold)
6991         section.
6992         (dbx_source_file): Add code so writing debug file information
6993         doesn't incorrectly change sections.
6994         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6995         in partitioning hot/cold basic blocks into separate sections.
6996         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6997         section partitioning.
6998         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6999         conditional branches can span all of memory.
7000         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7001         unconditional branches can span all of memory.
7002         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
7003         (final_scan_insn):  Add code to check for NOTE instruction indicating
7004         whether basic block belongs in hot or cold section, and to make sure
7005         the current basic block is being written to the appropriate section.
7006         Also added code to ensure that jump table basic blocks end up in the
7007         correct section.
7008         * flags.h (flag_reorder_blocks_and_partition):  New flag.
7009         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
7010         one of the branches has a jump that crosses between sections.
7011         (find_if_case_2): Likewise.
7012         (ifcvt): Modify to not attempt to mark loop exit edges after
7013         hot/cold partitioning has occurred.
7014         * opts.c (decode_options): Code to handle new flag,
7015         flag_reorder_blocks_and_partition; also to turn it off if
7016         flag_exceptions is on.
7017         (common_handle_option): Code to handle new flag,
7018         flag_reorder_blocks_and_partition.
7019         * output.h (unlikely_text_section): New extern function declaration.
7020         (in_unlikely_text_section): New extern function declaration.
7021         * passes.c (rest_of_handle_stack_regs):  Add
7022         flag_reorder_blocks_and_partition as an 'or' condition for calling
7023         reorder_basic_blocks.
7024         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
7025         as an 'or' condition for calling reorder_basic_blocks.
7026         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
7027         * print-rtl.c (print_rtx): Add code for handling new note,
7028         NOTE_INSN_UNLIKELY_EXECUTED_CODE
7029         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7030         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7031         cross between section boundaries.
7032         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
7033         indicating the basic block containing it belongs in the cold section.
7034         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7035         between hot and cold sections.
7036         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
7037         initialize this flag, and to tie it to the command-line option
7038         freorder-blocks-and-partition.
7039         * varasm.c (cfglayout.h):  Add new include statement.
7040         (unlikely_section_label_printed):  New global variable, used for
7041         determining when to output section name labels for cold sections.
7042         (in_section):  Add in_unlikely_executed_text to enum data structure.
7043         (text_section):  Modify code to use SECTION_FORMAT_STRING and
7044         NORMAL_TEXT_SECTION_NAME macros.
7045         (unlikely_text_section):  New function.
7046         (in_unlikely_text_section):  New function.
7047         (function_section):  Add code to make sure beginning of function is
7048         written into correct section (hot or cold).
7049         (assemble_start_function):  Add code to make sure stuff is written to
7050         the correct section.
7051         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
7052         to an if statement that was checking 'in_text_section'.
7053         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
7054         condition to an if statement that was checking 'in_text_section'.
7055         (default_section_type_flags_1):  Add check: if in cold section
7056         flags = SECTION_CODE.
7057         * config/darwin.c (darwin_asm_named_section):  Modify to use
7058         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7059         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7060         specifically for the i386.
7061         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
7062         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7063         text string to something more informative.
7064         (NORMAL_TEXT_SECTION_NAME): Add new definition.
7065         (SECTION_FORMAT_STRING):  Add new definition.
7066         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
7067         '!in_unlikely_text_section' as an 'and' condition to an if statement
7068         that was already checking '!in_text_section'.
7069         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7070         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7071         sure these are properly defined for linux on ppc.
7072         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
7073         for this new flag.
7074         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
7075         reg_note.
7076         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7077         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7078         these new macros.
7079
7080 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7081
7082         * function.c (gen_mem_addressof): When changing the RTX from a REG
7083         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7084
7085 2004-04-08  Roger Sayle  <roger@eyesopen.com>
7086
7087         PR target/14888
7088         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7089         truncxfdf2_noop): Provide dummy "fmov" implementations.
7090
7091 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
7092
7093         * gcc.c (default_compilers): Add missing initializers.
7094
7095         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7096         Return 1 if file was successfully mapped.
7097
7098 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
7099
7100         PR pch/13419
7101         PR pch/14137
7102         Radar #: 3315288
7103         * doc/invoke.texi (Precompiled Headers): Suggest -o
7104         to put an output file in a particular place.  Be more detailed
7105         about which options affect PCH validity and which options
7106         might not work.
7107         * c-pch.c (pch_matching): New.
7108         (MATCH_SIZE): New.
7109         (struct c_pch_validity): New field 'match'.
7110         (pch_init): Handle pch_matching.
7111         (c_common_valid_pch): Check pch_matching.
7112
7113         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7114
7115 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
7116
7117         * doc/invoke.texi (Precompiled Headers): Warn about known
7118         problems.
7119
7120 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
7121
7122         PR c++/14808
7123         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7124         to 1 if ASM_OUTPUT_DEF is defined.
7125         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7126         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7127         Set to non-zero iff not a one_only decl.
7128
7129 2004-04-08  Paul Brook  <paul@codesourcery.com>
7130
7131         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7132
7133 2004-04-08  Paul Brook  <paul@codesourcery.com>
7134
7135         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7136         PROMOTE_FOR_CALL_ONLY.
7137         * config/arm/arm-protos.h (arm_function_value): Declare.
7138         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7139         (TARGET_PROMOTE_PROTOTYPES): Return false.
7140         (arm_function_value): New function.
7141         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7142         (FUNCTION_VALUE): Call arm_function_value.
7143         * config/cris/cris.h (PROMOTE_MODE): Rename ...
7144         (PROMOTE_FUNCTION_MODE): ... to this.
7145         (PROMOTE_FOR_CALL_ONLY): Remove.
7146         * config/mmix/mmix.h: Likewise.
7147         * config/s390/s390.h: Likewise.
7148         * config/sparc/sparc.h: Likewise.
7149         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7150         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7151         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7152         (PROMOTE_FOR_CALL_ONLY): Remove.
7153
7154 2004-04-08  Joel Sherrill <joel@oarcorp.com>
7155
7156         PR ada/14538
7157         * ada/5rosinte.adb: Remove fake mprotect() body.
7158         * ada/5rosinte.ads: Add SA_SIGINFO.
7159         * ada/5rtpopsp.adb: Rewrite to use new interface.
7160         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7161         is tested before more complex ones which mix UNIX and embedded
7162         systems in the conditional.
7163
7164 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7165
7166         PR ada/14665
7167         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7168         filenames which end in .exe or have versioning suffixes like VMS.
7169
7170 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7171
7172         PR target/10129
7173         * config/darwin.c (darwin_encode_section_info): When the decl has
7174         a DECL_INITIAL, it is only defined also when it is not a common.
7175
7176 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7177
7178         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7179         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7180
7181 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7182
7183         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7184         global register variables.
7185
7186 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7187
7188         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7189         rpc_xdr_lvalue_cast_b): New fixes.
7190         * fixinc/fixincl.x: Regenerate.
7191         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7192
7193 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7194
7195         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7196         to power4 and power5 entries.
7197
7198 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7199
7200         * c-common.h (pending_lang_change): Mark for PCH.
7201
7202 2004-04-07  Caroline Tice  <ctice@apple.com>
7203
7204         * gcc.c (main): Move 'break' in main loops (on an error)
7205         to wait until error processing has occurred.
7206
7207 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7208
7209         * config.gcc: Stop changing enable_threads midstream.
7210         Replace uses of enable_threads_flag with enable_threads.
7211         * configure.ac: Replace uses of enable_threads_flag with
7212         enable_threads.  Improve autoconf quotation in one place.
7213         * configure: Regenerate.
7214
7215 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7216
7217         * builtins.c: Implement support for sincos function.
7218         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7219         BUILT_IN_COS{,F,L}.
7220         (expand_builtin_mathfn_3): New function.
7221         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7222         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7223         flag_unsafe_math_optimization is set.
7224
7225         * optabs.h (enum optab_index): Add new OTI_sincos.
7226         (sincos_optab): Define corresponding macro.
7227
7228         * optabs.c (init_optabs): Initialize sincos_optab.
7229         (expand_twoval_unop): New function.
7230
7231         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7232         patterns.
7233
7234         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7235         and UNSPEC_SINCOS_SIN.
7236
7237         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7238         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7239         built-ins as inline x87 intrinsics. Define splits for
7240         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7241         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7242         sincos patterns.
7243         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7244         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7245
7246         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7247         x87's fsincos insn.
7248
7249 2004-04-06  Devang Patel  <dpatel@apple.com>
7250
7251         PR 14467
7252         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7253
7254 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7255
7256         * doc/install.texi: Update HP-UX 11 installation procedure.
7257
7258 2004-04-06  Paul Brook  <paul@codesourcery.com>
7259
7260         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7261
7262 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7263
7264         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7265         when the TLS address is generated by a function call.
7266         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7267         (tls_local_dynamic): Likewise.
7268
7269 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7270
7271         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7272         and TYPE_VOLATILE.
7273
7274 2004-04-05  Caroline Tice  <ctice@apple.com>
7275
7276         * gcc.c (combine_flag): New global variable, for new driver option.
7277         (struct compiler): Add two new fields, to be used when
7278         combining multiple input files in a single pass (IMA).
7279         (default_compilers):  Add values for the new fields to all
7280         compiler entries. Modify the "@c" compiler entry for doing IMA
7281         properly with "-save-temps" and the "combine" flag.
7282         (option_map):  Add new driver option, "--combine", to tell driver
7283         to pass multiple input files to compiler at one time.
7284         (have_o_argbuf_index): New global variable.
7285         (store_arg): Modify to assign value to have_o_argbuf_index.
7286         (struct infile):  Add three new fields, to help with IMA.
7287         (display_help): Add help for new "combine" option.
7288         (process_command): Remove local variable have_o; add code to check
7289         for new "combine" option; remove assignment to combine_inputs.
7290         (do_spec_1):  Modify to deal with IMA better.
7291         (main): Make variable 'lang_n_infiles' local to entire function
7292         rather than to a single block.  Use flag combine_flag to
7293         determine whether to do IMA or not; Modify loop initializing
7294         infiles to deal properly with linker files.
7295         Add code for doing preprocessing in presence of
7296         IMA with "-save-temps" flag.  Modify "main" loop to handle
7297         multiple input files, in multiple languages, with or without
7298         preprocessing,  gracefully.
7299         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7300         re-set it to same directory it's previously been set to (avoid
7301         irritating, meaningless warning messages when doing IMA with
7302         save-temps).
7303         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7304         remove documentation about IMA that is no longer accurate; Add
7305         documentation explaining what "-combine" does.
7306         * ada/lang-specs.h: Add initialization values for new fields in
7307         "struct compiler".
7308         * cp/lang-specs.h: Likewise.
7309         * f/lang-specs.h: Likewise.
7310         * java/lang-specs.h: Likewise.
7311         * objc/lang-specs.h: Likewise.
7312         * treelang/lang-specs.h: Likewise.
7313
7314 2004-04-05  David Edelsohn
7315
7316         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7317         symbol handling.
7318
7319 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7320             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7321
7322         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7323         * pa.md: Use replace_equiv_address to retain the attributes of the
7324         memory operands used in the split and peephole2 patterns for optimizing
7325         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7326
7327 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7328
7329         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7330         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7331         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7332         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7333         PARM_DECL.
7334         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7335         for a type.
7336         * print-tree.c (print_node): Properly handle side-effects, readonly,
7337         and constant flags.
7338         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7339         and TREE_CONSTANT if not a type.
7340         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7341         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7342         (NON_TYPE_CHECK): New macro.
7343         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7344
7345 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7346
7347         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7348         to DWARF2_DEBUG unconditionally.
7349         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7350
7351 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7352             Nathanael Nerode  <neroden@gcc.gnu.org>
7353
7354         PR target/14548
7355         * config.host: Set the shell variable host_can_use_collect2.
7356         Set it to yes by default, and to no for alpha*-dec-*vms*,
7357         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7358         * configure.ac: Set and substitute the shell variable collect2.
7359         Give an error if use_collect2 is yes and host_can_use_collect2 is
7360         no.
7361         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7362         uses.  Initialize to @collect2@.
7363         (STAGESTUFF): Remove $(USE_COLLECT2).
7364         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7365         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7366         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7367         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7368         * configure: Regenerate.
7369
7370 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7371
7372         * simplify-rtx.c (simplify_binary_operation): Constant fold
7373         DIV, MOD, UDIV and UMOD using div_and_round_double.
7374
7375 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7376
7377         PR c++/14804
7378         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7379         RECORD_TYPEs.
7380
7381 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7382
7383         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7384         documentation.
7385
7386 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7387
7388         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7389         updating the REG_EQUAL note on an insn's libcall_insn.
7390
7391 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7392
7393         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7394
7395 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7396
7397         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7398         with reorder_operands_p.
7399
7400 2004-04-03  Jan Hubicka  <jh@suse.cz>
7401
7402         * md.texi (vec_set, vec_extract, vec_init): Document.
7403
7404 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7405
7406        * opts.c (decode_options): Do function inlining with very small
7407        max-inline-insns-* parameters when optimizing for size.
7408
7409 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7410
7411         * config/i386/i386.h (TARGET_NOCONA): New macro.
7412         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7413         (processor_type): Add PROCESSOR_NOCONA.
7414
7415         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7416
7417         * config/i386/i386.c (nocona_cost): New variable.
7418         (m_NOCONA): New macro.
7419         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7420         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7421         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7422         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7423         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7424         x86_decompose_lea, x86_arch_always_fancy_math_387,
7425         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7426         x86_ext_80387_constants, x86_four_jump_limit):
7427         (override_options): Add nocona_cost to processor_target_table.
7428         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7429         (incdec_operand): Prevent inc/dec generation for Nocona too.
7430         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7431
7432 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7433
7434         * rtlanal.c (find_reg_note): Manually
7435         unswitch the loop.
7436
7437 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7438
7439         * genemit.c (gen_split): Change prototype of generated code.
7440         * genrecog.c (write_action): Adjust prototype for and calls to
7441         gen_split_*.
7442         * gensupport.c (struct queue_elem): Add split field.
7443         (queue_pattern): Return a value.  Clear the split field.
7444         (process_rtx): Maintain an association between an insn and the
7445         split generated from it for a define_insn_and_split.
7446         (process_one_cond_exec): Generate a new split for a
7447         define_insn_and_split.
7448         * config/arm/arm-protos.h (arm_split_constant): Add insn
7449         parameter.
7450         (emit_constant_insn): New function.
7451         (arm_gen_constant): Use it.
7452         * config/arm/arm.md: Adjust calls to arm_split_constant.
7453
7454 2004-04-02  Jan Hubicka  <jh@suse.cz>
7455
7456         * cgraph.c: Add overall comment.
7457         (cgraph_inline_hash): New global variable.
7458         (cgraph_create_node): Break out from ...
7459         (cgraph_node): ... here.
7460         (cgraph_edge): New function.
7461         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7462         (cgraph_remove_edge): Accept edge, intead of source and destination.
7463         (cgraph_redirect_edge_callee): New.
7464         (cgraph_remove_node): Update all new datastructures.
7465         (cgraph_record_call, cgraph_remove_call): Kill.
7466         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7467         (dump_cgraph): ... here.
7468         (cgraph_function_possibly_inlined_p): Use new hashtable.
7469         (cgraph_clone_edge, cgraph_clone_node): New.
7470         * cgraph.h: Include hashtab.h
7471         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7472         fields, add inlined_to pointer.
7473         (cgraph_node): Add pointer to next_clone.
7474         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7475         (cgraph_remove_call, cgraph_record_call): Kill.
7476         (cgraph_inline_hash): Declare.
7477         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7478         cgraph_redirect_edge_callee): Declare.
7479         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7480         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7481         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7482         * cgraphunit.c: Add overall comment.
7483         (cgraph_optimize_function): Kill.
7484         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7485         (cgraph_finalize_function): Update call of cgraph_remove_node
7486         (record_call_1): Record call sites.
7487         (cgraph_create_edges): Accept node instead of decl argument.
7488         (error_found): New static variable.
7489         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7490         (cgraph_analyze_function): Update for new datastructures.
7491         (cgraph_finalize_compilation_unit): Plug memory leak.
7492         (cgraph_optimize_function): Kill.
7493         (cgraph_expand_function): Do not use cgraph_optimize_function.
7494         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7495         cgraph_inlined_callees): Kill.
7496         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7497         clones.
7498         (estimate_growth): Simplify.
7499         (cgraph_clone_inlined_nodes): New function.
7500         (cgraph_mark_inline_edge): Re-implement.
7501         (cgraph_mark_inline): Likewise.
7502         (cgraph_check_inline_limits): Simplify.
7503         (cgraph_recursive_inlining_p): New.
7504         (update_callee_keys): Break out from ...
7505         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7506         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7507         Likewise.
7508         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7509         list.
7510         (cgraph_preserve_function_body_p): New predicate.
7511         (cgraph_optimize): Verify cgraph.
7512         * function.h (struct function): Add fields saved_tree/saved_args.
7513         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7514         * toplev.c (rest_of_compilation): Do not free cfun.
7515         * tree-inline.c: Include function.h
7516         (struct inline_data): Add saving_p field; replace decl/current_decl by
7517         node/current_node.
7518         (insert_decl_map): New function.
7519         (copy_body_r): Handle saving; update cgraph datastructure.
7520         (copy_body): Handle recursive inlining.
7521         (initialize_inlined_parameters): Likewise.
7522         (expand_call_inline): Propagate node attributes; update cgraph.
7523         (optimize_inline_calls): Verify that datastructure still match.
7524         (save_body): New function.
7525         * tree-inline.h (save_body): New.
7526         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7527         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7528         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7529
7530 2004-04-01  Serge Belyshev  <1319@bot.ru>
7531
7532         PR target/14702
7533         * config/i386/i386.md: fix source operand constraints in
7534         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7535
7536 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7537
7538         * fold-const.c (folda): Preserve types of comparisons.
7539
7540 2004-04-01  Richard Henderson  <rth@redhat.com>
7541
7542         * toplev.c (backend_init): Move init_optimization_passes call ...
7543         (lang_dependent_init): ... here.
7544
7545 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7546             Jakub Jelinek  <jakub@redhat.com>
7547
7548         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7549         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7550         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7551         * configure: Rebuilt.
7552         * config.in: Rebuilt.
7553         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7554         (stage2-start, stage3-start, stage4-start): Likewise.
7555         (stageprofile-start, stagefeedback-start): Likewise.
7556
7557 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7558
7559         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7560         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7561         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7562         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7563         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7564         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7565         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7566         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7567         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7568         * config/sparc/t-linux: Removed.
7569
7570 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7571
7572         PR c++/14755
7573         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7574         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7575
7576 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7577
7578         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7579         * stor-layout.c (layout_decl): Likewise.
7580         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7581         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7582         * print-tree.c (print_node): Handle various used of unsigned_flag.
7583         * tree.def (BIT_FIELD_REF): Update comment.
7584         * tree.h (TREE_UNSIGNED): Deleted.
7585         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7586
7587 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7588
7589         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7590         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7591         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7592         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7593         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7594         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7595         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7596         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7597         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7598         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7599         REAL_TYPE, not INTEGER_TYPE.
7600         (layout_type, case VECTOR_TYPE): Simplify code.
7601         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7602         * tree.h: Update comments.
7603         (STRIP_NOPS): Use TYPE_UNSIGNED.
7604         (TYPE_UNSIGNED): New macro.
7605         (TYPE_TRAP_SIGNED): Remove now redundant check.
7606         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7607
7608 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7609
7610         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7611
7612 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7613
7614         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7615         Add darwin-fpsave.asm, darwin-vecsave.asm,
7616         and darwin-world.asm.
7617         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7618         as the asm files contain altivec instructions.
7619         * config/rs6000/darwin-fpsave.asm: New file.
7620         * config/rs6000/darwin-vecsave.asm: New file.
7621         * config/rs6000/darwin-world.asm: New file.
7622
7623 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7624
7625         * gengtype-yacc.y (option, stringseq): Add missing
7626         terminating semicolon.
7627
7628 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7629
7630         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7631         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7632         tls_dtprel_ha_32, tls_dtprel_ha_64,
7633         tls_dtprel_lo_32, tls_dtprel_lo_64,
7634         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7635         tls_tprel_ha_32, tls_tprel_ha_64,
7636         tls_tprel_lo_32, tls_tprel_lo_64,
7637         tls_got_tprel_32, tls_got_tprel_64,
7638         tls_tls_32, tls_tls_64): Replace register_operand with
7639         gpc_reg_operand.
7640
7641 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7642
7643         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7644         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7645         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7646         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7647         *ctrdi_internal6): Replace register_operand with
7648         nonimmediate_operand.
7649
7650 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7651
7652         * fold-const.c (fold): Reassociate multiply expression
7653         with an adjacent non-multiply expression to use
7654         architecture's multiply-add instruction.
7655
7656 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7657
7658         * gengtype.c (create_option): New function.
7659         * gengtype.h: Prototype it.
7660         * gengtype-yacc.y (stringseq): New rule.
7661         (option): Use create_option.  Add new bare ID production.  Use
7662         stringseq, not STRING directly.
7663
7664         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7665         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7666         * varray.h, config/alpha/alpha.c:
7667         Use new shorter form of GTY markers.
7668
7669         * doc/gty.texi: Rewrite.
7670
7671 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7672
7673         * config/darwin.c (machopic_function_base_name):
7674         Remove current_name and getting the name of the
7675         current function.
7676
7677 2004-03-30  Nick Clifton  <nickc@redhat.com>
7678
7679         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7680         range, and increase the forward branch range, to allow for
7681         the fact that the PC will be off by 4.
7682
7683 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7684
7685         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7686
7687 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7688
7689         * config/rs6000/rs6000.c (output_vec_const_move):
7690         Find all cases of EASY_VECTOR_15_ADD_SELF.
7691         (easy_vector_constant_add_self): Accept
7692         all vector constant loadable by vsplt* and vadd*.
7693         (easy_vector_same): Use easy_vector_splat_const.
7694         (easy_vector_const): Use easy_vector_splat_const.
7695         (easy_vector_splat_const): New function.
7696         (gen_easy_vector_constant_add_self): New function.
7697
7698         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7699         New prototype.
7700
7701         * config/rs6000/altivec.md (movv4si splitter): Change to
7702         emit move insn with halfed vector constant.
7703         (*movv8hi splitter): Likewise.
7704         (*movv16qi splitter): Likewise.
7705
7706 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7707
7708         PR 11591
7709         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7710         Allow any offset to argument pointer in no-strict case.
7711
7712 2004-03-30  Jan Hubicka  <jh@suse.cz>
7713
7714         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7715         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7716         dump file in non-unit-at-a-time mode.
7717
7718 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7719
7720         * config/cris/cris.h: Correct #ifdef to test for
7721         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7722         HAVE_AS_MUL_BUG_ABORT_OPTION.
7723
7724 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7725
7726         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7727         the address inside the old RTL.
7728
7729 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7730
7731         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7732         (struct c_binding, struct c_scope): Add chain_next
7733         attributes to GTY markers.
7734         (struct lang_identifier, struct lang_tree_node): Define
7735         here...
7736         * c-tree.h: ... not here.  No longer need to declare struct
7737         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7738         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7739         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7740
7741         PR 14734, 11944
7742         * c-decl.c (get_parm_info): If error_mark_node is encountered
7743         in the bindings chain, unbind and discard it; don't abort.
7744
7745 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7746             Dorit Naishlos <dorit@il.ibm.com>
7747
7748         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7749         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7750
7751 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7752
7753         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7754
7755         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7756         (m68hc11_attribute_table): New attribute "page0" to mark a global
7757         variable as being allocated from within page0 section.
7758         (m68hc11_encode_label): New function.
7759         (m68hc11_strip_name_encoding): New function.
7760         (m68hc11_page0_symbol_p): New function.
7761         (m68hc11_indirect_p): Accept global variables marked in page0.
7762         (m68hc11_encode_section_info): Lookup "page0" attribute.
7763
7764         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7765         represents access to page0 variables.
7766
7767         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7768         ("*logicalsi3_silshl16_zext"): Likewise.
7769         ("*ashldi3_const32"): Likewise.
7770         (peephole2 ashift): Likewise.
7771
7772 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7773
7774         * c-tree.h (C_DECL_REGISTER): New.
7775         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7776         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7777         (build_array_ref, c_mark_addressable): Set and use it.
7778         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7779         Allow structures with volatile fields to be declared register.
7780         Don't check TREE_ADDRESSABLE before warning about taking address
7781         of register.
7782         * c-decl.c (finish_decl): Don't allow structures with volatile
7783         fields to be placed in named register.
7784         * doc/trouble.texi: Remove reference to structures with volatile
7785         fields in registers.
7786
7787 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7788
7789         * function.c (thread_prologue_and_epilogue): Move
7790         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7791         before the epilogue.
7792
7793 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7794
7795         * expr.c (store_constructor): Use gen_int_mode to correctly
7796         sign-extend CONST_INT value.
7797
7798 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7799
7800         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7801         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7802         * doc/extend.texi: Likewise.
7803
7804 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7805
7806         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7807           with TYPE_ORIG_SIZE_TYPE.
7808
7809 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7810
7811         PR 14219
7812         * c-typeck.c (build_binary_op): Do not allow comparisons of
7813         vectors.
7814
7815 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7816
7817         * config.gcc: Remove sparc-tti-*.
7818         * config/sparc/pbd.h: Delete.
7819
7820         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7821         * config/sparc/aout.h: Likewise.
7822
7823         * config/sparc/sparc.h: Remove if 0'd code.
7824         * config/sparc/sparc.md (call): Remove if 0'd code.
7825         (call_value): Likewise.
7826         (nonlocal_goto): Likewise.
7827         (unimp_insn): Delete.
7828
7829 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7830
7831         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7832         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7833
7834 2004-03-25  Richard Henderson  <rth@redhat.com>
7835
7836         PR 11527
7837         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7838         rather than later.
7839
7840 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7841
7842         * builtins.c (fold_builtin): Fix error in last change.
7843
7844 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7845
7846         * config/mips/mips.h: Formatting fix.
7847
7848 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7849
7850         * builtins.def: Add ctype builtins.
7851         * doc/extend.texi: Likewise.
7852
7853 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7854
7855         * builtins.c (fold_builtin): Add new builtin optimizations for
7856         sqrt and/or cbrt.
7857         * fold-const.c (fold): Likewise.
7858
7859 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7860
7861         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7862         (rs6000_sched_groups): New variable.
7863         (processor_target_table): Add power5.
7864         (rs6000_override_options): Set rs6000_sched_insert_nops,
7865         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7866         from rs6000_sched_groups.
7867         (output_cbranch): Use rs6000_always_hint.
7868         (rs6000_variable_issue): Use rs6000_sched_groups.
7869         (rs6000_adjust_cost): Add CPU_POWER5.
7870         (is_microcoded_insn): Use rs6000_sched_groups.
7871         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7872         Return 2 for POWER5 cracked instructions.
7873         (is_cracked_insn): Use rs6000_sched_groups.
7874         (is_branch_slot_insn): Use rs6000_sched_groups.
7875         (rs6000_issue_rate): Add CPU_POWER5.
7876         (rs6000_sched_finish): Use rs6000_sched_groups.
7877         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7878         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7879         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7880         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7881         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7882         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7883         * config/rs6000/power5.md: New file.
7884         * doc/invoke.texi: Add power5 option.
7885
7886 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7887
7888         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7889         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7890         * doc/invoke.texi: Fix a typo.
7891
7892 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7893
7894         PR optimization/9707.
7895         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7896         of recursing if both children are single-valued cases with no
7897         children.
7898
7899 2004-03-25  Paul Brook  <paul@codesourcery.com>
7900
7901         * config/arm/arm.c (vfp_print_multi): Remove.
7902         (arm_output_fldmx): New function.
7903         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7904         (arm_expand_prologue): Update to match.
7905         (arm_get_vfp_saved_size): New Function.
7906         (arm_get_frame_offsets): Use it.
7907         (arm_output_epilogue): Use new functions.
7908
7909 2004-03-24  Richard Henderson  <rth@redhat.com>
7910
7911         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7912         (reg_known_value, reg_known_value_size): Likewise; make static.
7913         (reg_known_equiv_p): Make static.
7914         (clear_reg_alias_info): Update for new indexing.
7915         (get_reg_known_value, set_reg_known_value): New.
7916         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7917         (canon_rtx): Use them.
7918         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7919         Don't play queer offsetting games with reg_known_value and
7920         reg_known_equiv_p.
7921         (end_alias_analysis): Free reg_known_value with gc.
7922         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7923         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7924         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7925         functions instead.
7926
7927 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7928
7929         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7930         config/i386/mmintrin.h: Update copyright.
7931
7932 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7933
7934         * configure.ac: Add --enable-werror-always (for top level bootstrap
7935         support).
7936         * configure: Regenerate.
7937
7938 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7939
7940         * objc/objc-act.c (objc_comptypes): Treat comparisons
7941         between 'Class' and '<class> *' as explicitly invalid.
7942
7943 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7944
7945         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7946         (-fprofile-values): Add enabled with profile-{generate,use}.
7947         (-fvpt): Same.
7948         (-ftracer): Add enabled with profile-use.
7949         (-funit-at-a-time): Add enabled at -O2,-O3.
7950         (-funroll-loops): Add enabled with profile-use.
7951         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7952         (max-gcse-passes): Mention default.
7953         (max-cse-path-length): Mention default.
7954
7955 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7956
7957         * Makefile.in (STRICT2_WARN): Reorder.
7958         * configure.ac: Check for -Wold-style-definition, and use it
7959         in strict1_warn if it's available.
7960         * configure: Regnerate.
7961
7962 2004-03-24  Paul Brook  <paul@nowt.org>
7963
7964         * config.gcc <arm>: Add --with-abi=
7965         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7966         thumb_far_jump_used): Remove prototypes.
7967         (arm_needs_doubleword_align): Add prototype.
7968         (thumb_compute_initial_elimination_offset): Ditto.
7969         * config/arm/arm.c (arm_get_frame_offsets): New function.
7970         (use_return_insn, output_return_instruction, arm_output_epilogue,
7971         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7972         arm_expand_prologue, thumb_expand_epilogue): Use it.
7973         (arm_abi, target_abi_name, all_arm_abis): New variables.
7974         (arm_override_options): Set them.  Set structure padding for AAPCS.
7975         (arm_return_in_memory): Update ABI check.
7976         (arm_init_cumulative_args): Initialize can_split.
7977         (arm_needs_doubleword_align): New function.
7978         (arm_function_arg): Don't split args after pushing to stack. Handle
7979         doubleword/even reg alignment.
7980         (arm_va_arg): Handle all doubleword aligned args.
7981         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7982         on ABI, not CPU.
7983         (arm_compute_save_reg0_reg12_mask): Fix comment.
7984         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7985         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7986         value for alignment.
7987         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7988         to match.
7989         (thumb_compute_initial_elimination_offset): New function.
7990         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7991         unneccessary rounding.
7992         * config/arm/arm.h (target_abi_name): Declare.
7993         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7994         arm_abi_type, ARM_DEFAULT_ABI): Define.
7995         (ARM_FLAG_ATPCS): Remove.
7996         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7997         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7998         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7999         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8000         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8001         Contitionalize on ABI, not CPU.
8002         (struct arm_stack_offsets): Define.
8003         (struct machine_function): Add stack_offsets.  Remove frame_size.
8004         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8005         pushed.
8006         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8007         doubleword alignment.
8008         (THUMB_INITIAL_ELIMINATION_OFFSET,
8009         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8010         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8011         * config/arm/arm.md (align_8): Enable for all targets.
8012         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8013         (ARM_DEFAULT_ABI): Define.
8014         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8015         -mstructure-size-boundary.
8016
8017 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
8018
8019         * configure.ac: Check for -Wno-variadic-macros; don't use
8020         -pedantic (in stage 1 or a simple 'make all') unless it's available,
8021         and if it's available, use it.  Also, clean up check for
8022         -Wno-long-long.
8023         * configure: Regenerate.
8024
8025 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8026
8027         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8028         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8029         (MULTILIB_DEFAULTS): Use it.
8030         (MIPS_CPU_STRING_DEFAULT): Remove.
8031         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8032         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
8033         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
8034         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8035         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8036         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8037         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
8038         accordingly.
8039
8040 2004-03-24  DJ Delorie  <dj@redhat.com>
8041             Richard Sandiford  <rsandifo@redhat.com>
8042
8043         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8044         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8045         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8046         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8047         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8048         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8049         if TARGET_FIX_VR4122.
8050         * config/mips/mips.md (define_attr length): Account for nops inserted
8051         after macc and dmult when using -mfix-vr4122-bugs.
8052         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8053         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8054         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
8055         * config/mips/vr4122-div.S: New file.
8056         * doc/invoke.texi: Document -mfix-vr4122-bugs.
8057
8058 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
8059
8060         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8061         (TARGET_MIPS4130): New macro.
8062         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8063         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8064         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8065         with PROCESSOR_R4130.
8066         * config/mips/mips.md (define_attr cpu): Add r4130.
8067         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8068
8069 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8070             Richard Sandiford  <rsandifo@redhat.com>
8071
8072         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8073
8074 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
8075
8076         PR preprocessor/14438
8077         * cpplib.c (do_pragma): Remove line_change call after pragma
8078         handler.
8079
8080 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
8081
8082         * doc/extend.texi (ARM Built-in Functions): Replace with correct
8083         declarations.
8084
8085 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8086
8087         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8088         if flag_unsafe_math_optimizations.
8089         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8090         and TARGET_80387 expand using truncdfsf2_noop pattern.
8091         (truncxfsf2): Likewise using truncxfsf2_noop.
8092         (truncxfdf2): Likewise using truncxfdf2_noop.
8093         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8094
8095 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
8096
8097         * hooks.c (hook_constcharptr_tree_null): New hook.
8098         * hooks.h (hook_constcharptr_tree_null): New prototype.
8099         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8100         * target.h (mangle_fundamental_type): New target hook.
8101         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8102         target hook at rs6000_mangle_fundamental_type.
8103         (rs6000_mangle_fundamental_type): New function.
8104         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8105
8106 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
8107
8108         PR 12267, 12391, 12560, 13129, 14114, 14133
8109         * c-tree.h: Forward declare struct c_binding.  Declare
8110         c_override_bindings_to_false.  Update prototypes.
8111         (struct lang_identifier): Update comments.  Change fields to be
8112         struct c_binding *.
8113         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8114         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8115         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8116         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8117         * c-common.h: Update prototypes.
8118         * c-decl.c (struct c_scope): Update commentary.  Remove names,
8119         names_last, parms, parms_last, tags, and shadowed fields.  Add
8120         bindings and depth fields.
8121         (scope_freelist): Move to more appropriate location.
8122         (c_print_identifier): Update for changes to struct lang_identifier.
8123         (objc_mark_locals_volatile): Update for new bindings structures.
8124         (global_bindings_p): Honor c_override_global_bindings_to_false.
8125         (pushlevel): Rename to push_scope; take no arguments; use the
8126         scope_freelist; initialize scope->depth and check for overflow.
8127         (poplevel): Rename to pop_scope; totally rewritten for new bindings
8128         structures.
8129         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8130         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
8131         Improve some commentary.  Adjust handling of forward parm decls.
8132         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8133         Preserve C_DECL_IN_EXTERNAL_SCOPE.
8134         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
8135         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
8136         decls.  Rewrite for new bindings structures.  Improve commentary.
8137         Eliminate the copy_node call.
8138         (implicit_decl_warning): Use the "diag" idiom (as seen in
8139         locate_old_decl) to reduce code duplication; call locate_old_decl
8140         if appropriate.  Relocate to remove need for forward declaration.
8141         (implicitly_declare): Adjust for new bindings structures.  Kludge
8142         around Objective-C not-really-builtin functions.
8143         (undeclared_variable): Improve diagnostics.  If current_function_decl
8144         is nonnull but current_function_scope is null, use current_scope.
8145         Use bind.
8146         (lookup_tag): Adjust for new bindings structures.  Kludge around
8147         Objective-C's tag declarations that wind up in the external scope.
8148         (lookup_name): Adjust for new bindings structures.  Kludge around
8149         c-common.c's pseudo-typedefs that wind up in the external scope.
8150         (lookup_name_current_level): Rename lookup_name_in_scope; take a
8151         second argument indicating the scope to examine; rewrite for
8152         new bindings structures.
8153         (c_init_decl_processing): Adjust for renamed functions.  Do not
8154         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8155         First scope pushed is the external scope, not the global scope.
8156         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8157         for new data structures.  Keep track of builtins that should be
8158         made visible automatically.
8159         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8160         expand_decl.
8161         (grokparms): Return 0 if arg_types is error_mark_node.
8162         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8163         reversed sense.  Rewrite for new bindings structures.  Do not
8164         leave any decls in the scope, to prevent pop_scope from doing
8165         contradictory things with them.
8166         (finish_struct, finish_enum): Remove redundant diagnostics.
8167         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8168         Mark location where -pedantic changes the meaning of the program.
8169         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8170         parameter decls into the function's scope structure using bind.
8171         Warn here about function definitions in the wrong style.
8172         Adjust diagnostics.
8173         (store_parm_decls): Correct the determination of whether a
8174         function was defined with a prototype.
8175         (c_write_global_declarations): Operate on all file decls and on
8176         the external scope.  Split body of the loop to...
8177         (c_write_global_declarations_1): ... this new function, to avoid
8178         code duplication.
8179         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8180         (make_scope, pop_scope, in_parm_level_p, set_block)
8181         (any_external_decl, record_external_decl, bind_label, getdecls)
8182         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8183         (c_reset_state): Delete.
8184         (visible_builtins, c_override_global_bindings_to_false)
8185         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8186         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8187         (external_scope, binding_freelist, bind, free_binding_and_advance)
8188         (push_file_scope, pop_file_scope): New.
8189         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8190         (define_label, c_make_fname_decl, finish_decl)
8191         (mark_forward_parm_decls, build_compound_literal)
8192         (grokdeclarator, start_function, check_for_loop_decls)
8193         (identifier_global_value, record_builtin_type): Minor adjustments
8194         for new bindings structures.  Improve diagnostics and commentary.
8195         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8196         pushlevel/poplevel respectively.
8197         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8198         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8199         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8200         correct loop over multiple translation units; call fatal_error if
8201         requested to compile more than one file at once.  (This disables
8202         IMA temporarily - an up-front error being preferable to a crash.)
8203         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8204         (all actions): Adjust calls to pushlevel/poplevel.
8205         (parsing_iso_function_signature): Delete.
8206         (extdef_1): Fold into extdef.
8207         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8208         warn here about function definitions in the wrong style.
8209         (after_tyle_declarator, parm_declarator_starttypename)
8210         (parm_declarator_nostarttypename, notype_declarator): Remove
8211         commented-out productions.
8212         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8213         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8214         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8215         to suppress -Wold-style-definition after this error.
8216         (c_parse_file): Don't clear the binding stack or call
8217         finish_fname_decls here.  Correct comment.
8218         * c-typeck.c (same_translation_unit_p): Export.
8219         (common_type): Use c_override_global_bindings_to_false, not
8220         pushlevel/poplevel/declare_parm_level.
8221         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8222         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8223         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8224         * objc/objc-lang.c: Likewise.
8225         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8226         get_parm_info.
8227         (OBJC_VOID_AT_END): Delete; replace all uses
8228         with void_list_node.
8229         (generate_forward_declaration_to_string_table): Delete.
8230         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8231
8232         * coverage.c (create_coverage): Don't pushdecl anything.
8233         * langhooks.c (lhd_clear_binding_stack): Call
8234         lang_hooks.decls.poplevel, not poplevel.
8235         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8236         circular list rather than going into an infinite loop.
8237
8238 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8239
8240         * optabs.c (expand_binop): When synthesizing double word rotates
8241         from single word shifts, use a new register target if the provided
8242         target is not a REG already.
8243
8244 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8245
8246         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8247         * c-common.c (handle_mode_attribute): Add extra arg to
8248         build_pointer_type_for_mode and build_reference_type_for_mode.
8249         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8250         for INTEGER_CST.
8251         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8252         Chain pointers via TYPE_NEXT_PTR_TO.
8253         (build_reference_type_for_mode): Similarly.
8254         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8255         and build_reference_type_for_mode.
8256         (tree_check4_failed): New function.
8257         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8258         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8259         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8260         Add check.
8261
8262 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8263
8264         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8265         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8266         when both A and B are nonnegative.
8267         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8268         nonzero.
8269
8270 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8271
8272         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8273         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8274
8275 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8276
8277         PR optimization/14669
8278         * fold-const.c (fold): Only unwiden integer comparisons for equality
8279         and inequality operators, or when the signedness doesn't change.
8280
8281 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8282
8283         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8284         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8285         * config/sparc/t-linux: New file.
8286
8287 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8288
8289         * gcse.c (can_assign_to_reg_p): New function, split out from...
8290         (want_to_gcse_p): ...here.
8291         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8292         the rhs of a store.
8293
8294 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8295
8296         * c-typeck.c (same_translation_unit_p): Fix pasto.
8297
8298 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8299
8300         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8301         (PARAM_MAX_SCHED_REGION_INSNS): New.
8302         * sched-rgn.c: Include params.h
8303         (MAX_RGN_BLOCKS): Delete.
8304         (MAX_RGN_INSNS): Delete.
8305         (too_large): Return bool.  Convert to PARAM_VALUE.
8306         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8307         * doc/invoke.texi (param): Document max-sched-region-blocks and
8308         max-sched-region-insns.
8309
8310 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8311
8312         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8313         for base types.
8314
8315 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8316
8317         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8318         change.
8319
8320 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8321
8322         PR c/14069
8323         * c-decl.c (finish_struct): Change type of incorrect flexible array
8324         field into error_mark_node.
8325
8326 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8327
8328         PR target/14580
8329         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8330         who are not local for Darwin PIC.
8331
8332 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8333
8334         * regrename.c (regrename_optimize): Set regs_ever_live for all
8335         registers introduced as replacement.
8336
8337 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8338
8339         PR middle-end/14470
8340         * expr.c (mark_queue): New function.
8341         (emit_insns_enqueued_after_mark): New function replacing
8342         emit_queue.  Clear the body of emitted queued insns.
8343         (emit_queue): Call emit_insns_enqueued_after_mark.
8344         (store_expr): Mark the increment queue on entry.  Emit
8345         only the incrementations queued when expanding the source.
8346
8347 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8348
8349         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8350         of top level bootstrap, and consistency).  Reindent.
8351         * configure: Regenerate.
8352
8353 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8354
8355         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8356         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8357         unnecessary casts.
8358
8359 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8360
8361         PR target/14291
8362         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8363         __MINGW32__.
8364
8365 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8366
8367         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8368         to nonimmediate_operand.
8369         ("*doloop_di"): Likewise.
8370
8371 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8372
8373         * real.h (struct real_value): Use the same type for all
8374         bitfields.  Rename exp to uexp.
8375         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8376         Adjust all uses of exp...
8377         * builtins.c: ... here, ...
8378         * emit-rtl.c: ... here, and ...
8379         * real.c: ... and here.
8380
8381 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8382
8383         * pretty-print.c (pp_base_maybe_space): New function.
8384         * pretty-print.h (pp_base_maybe_space): Declare.
8385         (pp_maybe_space): New macro.
8386
8387 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8388
8389         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8390
8391 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8392
8393         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8394         of using register multiplication cost.
8395         (expand_mult): Adapt choose_mult_variant call.
8396         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8397         of MODE; pass appropriate cost bound.  Adjust result when
8398         performing signed multiplication by a negative constant.
8399         Don't use intermediate modes larger than word_mode.
8400
8401 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8402
8403         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8404         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8405         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8406         * explow.c (expr_size): Likewise.
8407         * expr.h (placeholder_list, find_placeholder): Deleted.
8408         * expr.c (store_constructor): Likewise.
8409         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8410         (placeholder_list, find_placeholder): Deleted.
8411         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8412         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8413         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8414         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8415         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8416         Likewise.
8417         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8418         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8419         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8420         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8421         Clean up by using first_rtl_op.
8422         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8423         (substitute_placeholder_in_expr): New function.
8424         * tree.def (WITH_RECORD_EXPR): Deleted.
8425         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8426         (substitute_placeholder_in_expr): New.
8427
8428 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8429
8430         * dojump.c (prefer_and_bit_test): Fix which part of
8431         the and_test is replaced.
8432
8433 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8434
8435         * frontends.texi: Add missing line.
8436
8437 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8438             Chris Devers  <cdevers@pobox.com>
8439             Joseph S. Myers  <jsm@polyomino.org.uk>
8440
8441         * doc/frontends.texi: Rewrite.
8442         * doc/gcc.texi: Update last modification date.
8443
8444 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8445
8446         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8447         message before redirecting the edge.
8448
8449 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8450
8451         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8452         flag.
8453         * explow.c (force_not_mem): Set REG_POINTER flag according to
8454         MEM_POINTER one.
8455         * rtl.h (MEM_POINTER): New macro.
8456         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8457         for MEM_POINTER.
8458
8459 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8460
8461         PR target/13889
8462         * cse.c (fold_rtx): Avoid substituting constants into unary
8463         conversion operations.
8464
8465 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8466
8467         * fold-const.c (fold): Replace "expr" with "t".
8468
8469 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8470
8471         PR c/12373
8472         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8473         DECL_ORIGINAL_TYPE if there isn't one.
8474
8475 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8476
8477         * fold-const.c (fold): Replace "final_type" with "type".
8478         Remove variable "final_type".
8479
8480 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8481
8482         * fold-const.c (fold): Constify "type".
8483         Replace "TREE_TYPE (t)" with "type".
8484
8485 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8486
8487         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8488         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8489         via (*targetm.foo) () with targetm.foo ().
8490
8491 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8492
8493         PR other/14630
8494         * doc/install.texi: Add info directory category and entry.
8495
8496 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8497
8498         * fold-const.c (fold): Replace "t" with "tem" where it is used
8499         as a temporary variable.  Remove "orig_t" and all of its uses.
8500
8501 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8502
8503         * fold-const.c (fold): Remove variable "invert".
8504         Move the handling of relational expressions that can be folded
8505         to a constant ...
8506         (fold_relational_const): ... here.
8507         (tree_expr_nonzero_p): New.
8508
8509 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8510
8511         PR c/14635
8512         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8513         DEF_GCC_BUILTIN.
8514
8515 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8516
8517         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8518         (GTFILES): Add $(srcdir)/dojump.h.
8519         (gt-dojump.h): New dependency.
8520         * dojump.c (and_reg, and_test, shift_test): New static variables.
8521         (prefer_and_bit_test): New function.
8522         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8523
8524 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8525
8526         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8527         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8528         reorg.c, tree.h: Fix comment typos.
8529
8530 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8531
8532         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8533         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8534         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8535         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8536         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8537         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8538         targetm.foo ().
8539
8540 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8541
8542         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8543         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8544         always_inline attribute.
8545         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8546         Treat expansion as completed even if literal argument is
8547         invalid (so that other expansions are not tried in vain).
8548
8549 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8550
8551         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8552         const0_rtx.
8553
8554 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8555
8556         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8557         ...
8558         (fold_abs_const): ... here.
8559
8560 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8561
8562         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8563
8564 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8565
8566         PR target/11520
8567         * config/avr/avr.md ("call_insn"): Handle explicit integer
8568         specially.
8569         (call_value_insn): Likewise.
8570
8571 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8572
8573         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8574
8575 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8576
8577         * fold-const.c (negate_expr): Move the handling of constants
8578         ...
8579         (fold_negate_const): ... here.
8580
8581 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8582
8583         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8584         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8585         * tree.c (debug_no_type_hash): Deleted.
8586         (type_hash_canon): Abort if passed a variant.
8587         Check lang_hooks.types.hash_types.
8588         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8589         (build_array_type): Remove unnecessary allocation of pointer type.
8590         (build_complex_type): Properly qualify resulting type.
8591
8592 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8593
8594         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8595
8596 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8597
8598         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8599         (expand_mult): ...here.
8600         (extract_high_half): New, split out from expand_mult_highpart.
8601         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8602         (expand_highpart): Evaluate the cost of a shift/add sequence,
8603         then see if any of the specialized optabs are cheaper.
8604
8605 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8606
8607         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8608
8609 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8610
8611         * convert.c (convert_to_real): Add more math builtins.
8612
8613 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8614
8615         * convert.c (convert_to_real): Reformat using switch stmt.
8616
8617 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8618
8619         * c-common.c (pointer_int_sum): Do not complain about using
8620         pointers to pointers-to-members.
8621
8622 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8623
8624         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8625         have moved to the target hooks structure".
8626
8627 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8628
8629         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8630         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8631         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8632         Likewise.
8633         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8634         Likewise.
8635         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8636         rm7_fp_quick): Likewise.
8637         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8638         rm9k_fquick): Likewise.
8639         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8640         Likewise.
8641         (ir_sr70_icmp): Delete.
8642
8643 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8644
8645         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8646         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8647         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8648         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8649         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8650         Protect with proper check.
8651         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8652         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8653         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8654         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8655         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8656         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8657         not TYPE_FIELDS.
8658         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8659
8660 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8661
8662         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8663         dest is set between beginning and current insn.
8664
8665 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8666
8667         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8668         visible "static" identifiers "extern" in a local scope.
8669         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8670         post-increments/decrements.
8671
8672 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8673
8674         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8675         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8676         (xtensa_va_start): Remove assignment to current_function_arg_words.
8677
8678 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8679
8680         * alias.c (record_set): Detect the case where a register is assigned
8681         a new value that has the same base term as the old one.
8682
8683 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8684
8685         * doloop.c: Removed.
8686         * loop-doloop.c: New file.
8687         * Makefile.in (doloop.o): Remove.
8688         (loop-doloop.o): New.
8689         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8690         * cfgloopanal.c (get_loop_level): New function.
8691         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8692         is leaved immediatelly.
8693         * loop.c (strength_reduce): Do not call doloop optimization.
8694         * loop.h (LOOP_BCT): Removed.
8695         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8696         (rest_of_handle_loop2): Call doloop_optimize_loops.
8697         (rest_of_compilation): Test for optimizations moved to
8698         rest_of_handle_loop2.
8699
8700 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8701
8702         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8703         for mixed mode.
8704         (rs6000_emit_prologue): Ditto.
8705         (rs6000_emit_epilogue): Ditto.
8706         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8707         macro for mixed mode.
8708
8709 2004-03-18  Jan Hubicka  <jh@suse.cz>
8710
8711         * predict.c (propagate_freq): Compute correctly frequency of
8712         EXIT_BLOCK.
8713
8714 2004-03-17  Eric Christopher  <echristo@redhat.com>
8715
8716         * builtins.c (apply_args_size): Use reg_raw_mode.
8717         (apply_result_size): Ditto.
8718
8719 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8720
8721         PR target/14620
8722         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8723
8724 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8725
8726         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8727         32-bit builds when defaulting to 32-bit.
8728
8729 2004-03-17  Jan Hubicka  <jh@suse.cz>
8730
8731         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8732         array.
8733
8734 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8735
8736         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8737         (hazard_nop): Change type to nop.
8738         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8739         Fix all uses.  Change arith to multi if more than one insn emitted.
8740         * config/mips/5400.md (ir_vr54_arith): Likewise.
8741         * config/mips/5500.md (ir_vr55_arith): Likewise.
8742         * config/mips/7000.md (rm7_int_other): Likewise.
8743         * config/mips/9000.md (rm9k_int): Likewise.
8744         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8745
8746 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8747
8748         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8749         to hold the subtype tree instead of recomputing it several times.
8750
8751 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8752
8753         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8754         CC_INVERT.
8755         * config/mn10300/mn10300.md (cc): Remove "invert".
8756
8757 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8758
8759         * builtins.c (integer_valued_real_p): Add builtin rint.
8760         (fold_builtin): Likewise.
8761         * convert.c (convert_to_real): Likewise.
8762
8763         * convert.c (convert_to_real): Fix typos in `long double'
8764         builtins.
8765
8766 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8767
8768         PR c++/14481
8769         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8770         generated COMPOUND_EXPRs.
8771
8772 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8773
8774         * config/h8300/t-rtems (h8300-*-rtems*): New.
8775
8776 2004-03-16  Eric Christopher  <echristo@redhat.com>
8777
8778         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8779
8780 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8781
8782         * config/i386/i386-protos.h: Add a prototype for
8783         ix86_reverse_condition.
8784         * config/i386/i386.c (ix86_reverse_condition): New.
8785         * config/i386/i386.h (REVERSE_CONDITION): Use
8786         ix86_reverse_condition.
8787         * config/i386/i386.md: Use ix86_reverse_condition instead of
8788         REVERSE_CONDITION.
8789
8790 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8791
8792         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8793
8794 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8795
8796         PR bootstrap/12974
8797         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8798
8799 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8800
8801         * c-common.c (c_common_type_for_mode): Build vector types on
8802         demand.
8803         (handle_mode_attribute): Deprecate using the mode attribute
8804         to create vector types.  Fix indentation.
8805         (vector_type_node_list): Remove.
8806         (handle_vector_size_attribute): Create vector types on demand.
8807         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8808         * c-typeck.c (comptypes): Make vector types compatible if they
8809         have the same underlying mode.
8810         (convert_for_assignment): Use comptypes to convert between
8811         vector types.
8812         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8813         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8814         vector types.
8815         * tree.h: Remove vector types.
8816         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8817         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8818         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8819         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8820         * doc/extend.texi (Vector Types): Document how to use the
8821         vector_size attribute to create vectors, rather than mode.
8822
8823         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8824         * config/i386/emmintrin.h: Likewise.
8825         * config/i386/mmintrin.h: Likewise.
8826         * config/i386/xmmintrin.h: Likewise.
8827         * config/sh/ushmedia.h: Likewise.
8828
8829 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8830
8831         * config/freebsd-spec.h, config/arc/arc-protos.h,
8832         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8833         config/arm/linux-gas.h, config/arm/semi.h,
8834         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8835         config/ia64/freebsd.h, config/mips/7000.md,
8836         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8837         config/sparc/pbd.h: Update copyright.
8838
8839 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8840
8841         PR target/14577
8842         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8843
8844 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8845
8846         * combine.c (combine_simplify_rtx): Remove the "last"
8847         parameter and its documentation.  Adjust recursive calls.
8848         (simplify_logical): Always perform the only simplification
8849         controlled by "last", if the simplified expression is
8850         actually different.
8851         (try_combine): Do not pass the "last" parameter to
8852         combine_simplify_rtx.
8853
8854 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8855
8856         PR target/14599
8857         * config/mips/mips.md (UNSPEC_GP): New constant.
8858         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8859         an UNSPEC instead of (reg $gp).
8860         (mips16_gp_pseudo_reg): Change accordingly.
8861         (print_operand): Print $gp directly when handling CONST_GP_P.
8862
8863 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8864
8865         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8866         * longlong.h: Make code 68060 clean when compiling for m68060.
8867
8868 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8869
8870         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8871         * doc/md.texi: Clarify description of "i" constraint.
8872
8873 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8874
8875         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8876         Split store into store, fpstore, fpidxstore.  Fix all uses.
8877         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8878         Likewise.
8879         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8880         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8881         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8882         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8883         ir_sr70_fstore): Likewise.
8884
8885 2004-03-15  Richard Henderson  <rth@redhat.com>
8886
8887         PR middle-end/14535
8888         * except.c (collect_one_action_chain): Record action for cleanup
8889         outer of exception spec.
8890
8891 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8892
8893         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8894         Fix the check for abort and only do the mmap if we can.
8895
8896 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8897
8898         * config/sparc/sparc.h: Rework comments about the code model
8899         in 64-bit environment and the mode 'Pmode'.
8900         * doc/invoke.texi (SPARC options): Rework description of the
8901         different code models supported in 64-bit environment.
8902
8903 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8904
8905         * defaults.h (REVERSIBLE_CC_MODE): Define.
8906         * jump.c (reversed_comparison_code_parts): Don't check if
8907         REVERSIBLE_CC_MODE is defined.
8908
8909 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8910
8911         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8912         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8913         hosthooks.h, params.h, ra-colorize.c, web.c,
8914         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8915         config/avr/avr-protos.h, config/avr/avr.md,
8916         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8917         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8918         config/i386/freebsd.h, config/i386/freebsd64.h,
8919         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8920         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8921         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8922         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8923         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8924         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8925         config/sparc/aout.h, config/sparc/freebsd.h,
8926         config/sparc/litecoff.h, config/vax/vax-protos.h,
8927         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8928         copyright.
8929
8930 2004-03-15  Paul Brook  <paul@codesourcery.com>
8931
8932         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8933
8934 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8935
8936         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8937         (pp_c_cv_qualifier): Document.
8938         (pp_c_space_for_pointer_operator): Likewise.
8939         (pp_c_integer_constant): Likewise.
8940         (pp_c_identifier): Likewise.
8941         (pp_c_init_declarator): Don't print function body.
8942
8943 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8944
8945         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8946         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8947         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8948         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8949         wording and grammar.
8950
8951 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8952
8953         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8954         with lang_hooks.foo ().
8955         * builtins.c (expand_builtin_va_arg): Likewise.
8956         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8957         c_common_type_for_mode, c_common_nodes_and_builtins,
8958         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8959         * c-convert.c (convert): Likewise.
8960         * c-format.c (check_format_types): Likewise.
8961         * c-objc-common.c (c_tree_printer): Likewise.
8962         * c-typeck.c (build_unary_op, build_conditional_expr,
8963         build_binary_op): Likewise.
8964         * calls.c (try_to_integrate, expand_call,
8965         emit_library_call_value_1): Likewise.
8966         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8967         Likewise.
8968         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8969         cgraph_expand_function): Likewise.
8970         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8971         * coverage.c (build_fn_info_type, build_ctr_info_type,
8972         build_gcov_info, create_coverage): Likewise.
8973         * dbxout.c (dbxout_init): Likewise.
8974         * diagnostic.c (diagnostic_report_current_function): Likewise.
8975         * dojump.c (do_jump): Likewise.
8976         * dwarf2out.c (dwarf2_name): Likewise.
8977         * except.c (init_eh): Likewise.
8978         * explow.c (expr_size, int_expr_size): Likewise.
8979         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8980         Likewise.
8981         * expr.c (store_expr, store_constructor, safe_from_p,
8982         expand_expr_real, do_store_flag, try_casesi): Likewise.
8983         * function.c (push_function_context_to, pop_function_context_from,
8984         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8985         put_var_into_stack, allocate_struct_function, current_function_name):
8986         Likewise.
8987         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8988         Likewise.
8989         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8990         lhd_print_error_function): Likewise.
8991         * opts.c (handle_option, decode_options): Likewise.
8992         * passes.c (open_dump_file): Likewise.
8993         * print-tree.c (print_node): Likewise.
8994         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8995         expand_decl_cleanup, emit_case_nodes): Likewise.
8996         * stor-layout.c (variable_size): Likewise.
8997         * toplev.c (announce_function, wrapup_global_declarations,
8998         check_global_declarations, compile_file, default_tree_printer,
8999         process_options, lang_dependent_init, finalize): Likewise.
9000         * tree-dump.c (dequeue_and_dump): Likewise.
9001         * tree-inline.c (remap_decl, remap_block, copy_body_r,
9002         initialize_inlined_parameters, declare_return_variable,
9003         inlinable_function_p, expand_call_inline, optimize_inline_calls,
9004         walk_tree, copy_tree_r): Likewise.
9005         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9006         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9007         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9008         variably_modified_type_p, dump_tree_statistics): Likewise.
9009         * varasm.c (assemble_variable, compare_constant, copy_constant,
9010         force_const_mem, compute_reloc_for_constant, output_constant,
9011         output_addressed_constants, initializer_constant_valid_p): Likewise.
9012
9013 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
9014
9015         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9016
9017 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
9018
9019         * doc/install.texi: Reflect autoconf and automake version for
9020         libffi. Update autoconf version to 2.59.
9021
9022 2004-03-13  Roger Sayle  <roger@eyesopen.com>
9023
9024         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9025         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9026         make_range, build_range_check, fold_range_test, unextend,
9027         constant_boolean_node, fold_binary_op_with_conditional_arg,
9028         fold_truthop, fold_mathfn_compare, fold_inf_compare,
9029         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9030         with lang_hooks.foo ().
9031
9032 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
9033
9034         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9035
9036 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
9037
9038         * doc/install.texi: Note status of -fnew-ra.
9039
9040 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
9041
9042         PR middle-end/14470
9043         * expr.c (store_expr): Call emit_queue before generating the move
9044         from the temporary to the original target.  Protect the temporary
9045         from emit_queue.
9046
9047 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
9048
9049         PR target/14533
9050         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9051         other than UNSPEC_GOTOFF.
9052
9053 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
9054
9055         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
9056         to arm_legitimate_index_p.  Update all callers with SET as default
9057         value.
9058         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
9059         range if OUTER is a sign-extend operation on QImode.  Correctly
9060         reject shift operations on sign-extended QImode addresses.
9061         (bad_signed_byte_operand): Delete.
9062         (arm_extendqisi_mem_op): New function.
9063         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
9064         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
9065         constraints.
9066         (CONSTRAINT_LEN): New.
9067         (EXTRA_CONSTRAINT): Delete.  Replace with...
9068         (EXTRA_CONSTRAINT_STR): ... this.
9069         (PREDICATE_CODES): Remove bad_signed_byte_operand.
9070         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
9071         is now always default.
9072         (define_splits for bad sign-extend loads): Delete.
9073         (arm_extendqisi, arm_extendqisi_v5): Likewise.
9074         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9075         Rework 'U' constraint to 'Uv'.
9076         * arm-protos.h: Remove bad_signed_byte_operand.  Add
9077         arm_extendqisi_mem_op.
9078         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9079         Add Uq constraint.
9080
9081 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
9082
9083         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9084         with targetm version.
9085
9086         PR target/14567
9087         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9088         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9089         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9090         Update all users of RS6000_ARG_SIZE.
9091         (function_arg_advance): Count fregno using mode size.
9092         (function_arg): Handle long double split over regs and memory.
9093         (function_arg_partial_nregs): Likewise.
9094         (rs6000_va_arg): Repackage complex args.
9095
9096 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
9097
9098         PR target/14047
9099         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9100         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9101         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9102
9103 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
9104
9105         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9106         prototype.
9107         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9108         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9109
9110 2003-03-12  Andrew Pinski  <apinski@apple.com>
9111
9112         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9113         Use ret instead of result. Use addr instead of base.
9114
9115 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
9116
9117         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9118         fixes required by libstdc++ and update installation instructions
9119         for libstdc++.a.
9120
9121 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9122
9123         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9124         leading '@' on fastcall symbols before stripping suffix.
9125
9126 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9127
9128         * combine.c (unmentioned_reg_p): New function to check whether an
9129         expression is a "specialization" of another, i.e. that there are
9130         no registers or memory references mentioned in the first that don't
9131         appear in the second.
9132         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9133         (combine_instructions): Also try combining instructions using the
9134         REG_EQUAL note from a preceding log-linked instruction.
9135
9136 2004-03-12  Roger Sayle  <roger@eyesopen.com>
9137
9138         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9139
9140 2004-03-12  Matt Austern  <austern@apple.com>
9141
9142         * target.h (struct gcc_target): New target hook, unwind_label.
9143         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9144         * output.h (default_emit_unwind_label): New function.
9145         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9146         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9147         (TARGET_SUPPORTS_HIDDEN): New target macro.
9148         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9149         that corresponds to this FDE.
9150         (FRAME_BEGIN_LABEL): Allow target to override default label.
9151         (output_call_frame_info): If FDEs are linknonce, then use extra
9152         indirection for FDE encoding, output a label for each FDE, and
9153         output an empty label for each function without an FDE.
9154         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9155         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9156         decls with DECL_ONE_ONLY set, if that macro is defined.
9157         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9158         for a SUPPORTS_ONE_ONLY target.
9159         * config/darwin-protos.h (darwin_unique_section): Declare.
9160         (darwin_asm_named_section): Likewise.
9161         (darwin_section_type_flags): Likewise.
9162         (darwin_non_lazy_pcrel): Likewise.
9163         (darwin_emit_unwind_label): Likewise.
9164         (darwin_make_decl_one_only): Likewise.
9165         * config/darwin.c (machopic_finish): Get rid of tweak that
9166         eliminate stubs for symbols that are defined.
9167         (darwin_encode_section_info): Don't treat weak functions as defined.
9168         (darwin_make_decl_one_only): Define.
9169         (darwin_asm_named_section): Likewise.
9170         (darwin_section_type_flags): Likewise.
9171         (darwin_unique_section): Likewise.
9172         (darwin_emit_unwind_label): Likewise.
9173         (darwin_non_lazy_pcrel): Likewise.
9174         (darwin_asm_output_dwarf_delta): Difference between two labels is
9175         local only if both labels are local.
9176         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9177         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9178         (TARGET_SUPPORTS_HIDDEN): Likewise.
9179         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9180         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9181         (FRAME_BEGIN_LABEL): Likewise.
9182         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9183         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9184         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9185         (TARGET_ASM_UNIQUE_SECTION): Define.
9186         (EH_FRAME_SECTION_NAME): Define.
9187         (EH_FRAME_SECTION_ATTR): Likewise.
9188         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9189         (TARGET_ASM_NAMED_SECTION): Likewise.
9190         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9191         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9192         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9193         TARGET_ASM_EMIT_UNWIND_LABEL.
9194
9195 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9196
9197         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9198         existing exp10* case.
9199         (expand_builtin): Likewise.
9200
9201 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9202
9203         * doc/tm.texi (registers) <Values in Registers>: Add
9204         entry for REGMODE_NATURAL_SIZE.
9205
9206 2004-03-12  Richard Henderson  <rth@redhat.com>
9207
9208         PR target/14547
9209         * target.h (struct gcc_target): Move calls substructure before
9210         booleans.  Add split_complex_arg.
9211         * function.c (assign_parms, split_complex_args): Use it.
9212         * calls.c (expand_call): Likewise.
9213         (split_complex_values): Likewise.  Check for splittable types
9214         before allocating memory.
9215         (split_complex_types): Likewise.
9216         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9217         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9218         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9219         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9220         (TARGET_SPLIT_COMPLEX_ARG): New.
9221         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9222         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9223         (rs6000_override_options): Zap it for non-AIX.
9224         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9225         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9226         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9227         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9228         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9229         SPLIT_COMPLEX_ARGS entry.
9230
9231 2004-03-11  Richard Henderson  <rth@redhat.com>
9232
9233         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9234         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9235         (alpha_emit_xfloating_arith): Update to match.
9236         (alpha_emit_xfloating_compare): Likewise.
9237         (alpha_emit_xfloating_cvt): Likewise.
9238         (alpha_emit_xfloating_libcall): Take already built symbol,
9239         mark call const.
9240         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9241         op1 in a register.
9242
9243 2004-03-11  Richard Henderson  <rth@redhat.com>
9244
9245         PR target/14539
9246         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9247
9248         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9249
9250 2004-03-11  Richard Henderson  <rth@redhat.com>
9251
9252         PR middle-end/14477
9253         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9254
9255 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9256
9257         PR target/14262
9258         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9259         defined, pass small BLKmode values in registers in the low-order part.
9260
9261 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9262
9263         * combine.c (if_then_else_cond): Check for NULL return value of
9264         simplify_gen_subreg.
9265
9266 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9267
9268         PR target/14496
9269         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9270         TARGET_SINGLE_FLOAT.
9271
9272 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9273
9274         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9275         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9276         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9277         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9278
9279 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9280
9281         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9282         -((int)X>>C) where C is an integer constant one bit less than the
9283         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9284         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9285
9286         * simplify-rtx.c (simplify_unary_operation): Also implement the
9287         above transformations at the RTL level.
9288
9289 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9290
9291         * real.c (encode_ibm_extended): Do round low word.
9292
9293 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9294
9295         * config/arm/arm.md (is_xscale): Comment this attribute and move
9296         it a bit further up in the file, closer to related attributes.
9297
9298 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9299
9300         * config/host-solaris.c (sol_gt_pch_use_address): Add
9301         missing terminating marker to comment.
9302
9303 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9304
9305         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9306         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9307         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9308         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9309         move_operand as source predicate in all cases.
9310         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9311         Test reg_or_0_operand.  Use move_operand as source predicate.
9312         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9313         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9314         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9315         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9316         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9317         Use move_operand as source predicate.  Remove 'K' constraint.
9318         (*movqi_internal): Likewise movqi_internal.
9319         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9320         reg_or_0_operand.  Use move_operand as source predicate.
9321         (*movsf_softfloat): Likewise movsf_internal2.
9322         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9323         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9324         (*movdf_softfloat): Likewise movdf_internal2.
9325         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9326         for DImode if !TARGET_64BIT.
9327         (mips_legitimize_move): Simplify accordingly.
9328
9329 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9330
9331         PR/14362
9332         * var-tracking.c (struct variable_def): Added field refcount.
9333         (variable_htab_free): Decrease the refcount and delete variable
9334         only if there are no more references.
9335         (unshare_variable): New function.
9336         (vars_copy_1): Increase refcount instead of copying the variable.
9337         (variable_union): Share the variables where possible, unshare
9338         the variables if needed.
9339         (variable_different_p): Return false if var1 and var2 are
9340         the same structure.
9341         (variable_was_changed): Init the refcount of new variable.
9342         (set_frame_base_location): Unshare variable if needed.
9343         (set_variable_part): Init the refcount of new variable.
9344         Unshare the variables if needed.
9345         (delete_variable_part): Unshare the variables if needed.
9346         (emit_notes_for_differences_1): Init the refcount of new variable.
9347         (vt_add_function_parameters): Do not add function parameters to
9348         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9349         (vt_initialize): Do not add frame_base_decl to IN set of
9350         ENTRY_BLOCK_PTR because it is unused anyway.
9351
9352 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9353
9354         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9355         (vars_copy): Likewise.
9356         (variable_union): Likewise.
9357         (set_variable_part): Likewise.
9358         (delete_variable_part): Likewise.
9359
9360 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9361
9362         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9363         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9364         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9365         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9366         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9367         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9368         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9369         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9370         config/stormy16/stormy16.c: Fix comment typos and formatting.
9371
9372 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9373
9374         * configure: Regenerate, since I forgot to while committing Paolo's
9375         changes.
9376
9377 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9378
9379         PR ada/14131
9380         Move language detection to the top level.
9381         * configure.ac: Remove code to detect languages,
9382         it now lives exclusively in the top level.
9383         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9384         top level, renamed to ACX_PROG_GNAT.
9385
9386 2004-03-10  Richard Henderson  <rth@redhat.com>
9387
9388         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9389         extra arguments.
9390         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9391         and host_xmake_file fragments.
9392         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9393         (gt_pch_restore): Similarly for gt_pch_use_address.
9394         (default_gt_pch_get_address): New.
9395         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9396         (default_gt_pch_use_address): Split out of gt_pch_restore.
9397         (mmap_gt_pch_use_address): Likewise.
9398         * hooks.c (hook_voidp_size_t_null): Remove.
9399         (hook_bool_voidp_size_t_false): Remove.
9400         * hooks.h: Likewise.
9401         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9402         default_ or mmap_ definitions.
9403         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9404         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9405         and gt_pch_use_address.
9406         * config/host-linux.c, config/host-solaris.c: New files.
9407         * config/x-linux, config/x-solaris: New files.
9408         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9409         Update for changed definition.
9410         (darwin_rs6000_gt_pch_use_address): Likewise.
9411         * doc/hostconfig.texi: Update docs.
9412
9413 2004-03-10  Richard Henderson  <rth@redhat.com>
9414
9415         PR c/14517
9416         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9417         except for pedantic c90 mode.
9418
9419 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9420
9421         * configure.ac: Bump AC_PREREQ to 2.59.
9422         * configure: Regenerate.
9423
9424 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9425
9426         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9427         (exp10_optab, exp2_optab): Define corresponding macros.
9428         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9429         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9430         using exp10?f2 and exp2?f2 patterns.
9431         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9432         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9433         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9434         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9435
9436         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9437         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9438         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9439
9440 2004-03-10  Anthony Green  <green@redhat.com>
9441
9442         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9443
9444 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9445
9446         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9447         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9448         __LONGDOUBLE128.
9449         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9450         TARGET_OS_AIX_CPP_BUILTINS.
9451         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9452         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9453         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9454         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9455         previous change.
9456
9457 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9458
9459         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9460
9461 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9462
9463         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9464         __LONGDOUBLE128 on AIX.
9465
9466 2004-03-10  Andrew Haley  <aph@redhat.com>
9467
9468         PR optimization/14381
9469         * function.c (expand_function_end): Emit a blockage insn before
9470         the epilogue when -fnon-call-exceptions is used.
9471
9472         * except.c (expand_start_all_catch): Make comment more accurate.
9473
9474 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9475
9476         PR target/14480
9477         * config/rs6000/t-rtems: Add missing file on branch.
9478
9479 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9480
9481         * dbxout.c (dbxout_symbol_location): Do not output references
9482         to optimized-out constant pool symbols.
9483
9484 2004-03-10  Andreas Schwab  <schwab@suse.de>
9485
9486         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9487         twon34_r.
9488
9489 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9490
9491         * alias.c (alias_sets_might_conflict_p): New.
9492         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9493         * common.opt (Wstrict-aliasing=): New.
9494         * flags.h (warn_strict_aliasing): Change type to int.
9495         * opts.c (warn_strict_aliasing): Change type to int.
9496         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9497         * tree.h (alias_sets_might_conflict_p): Declare it.
9498         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9499
9500 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9501
9502         PR bootstrap/12371
9503         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9504         (CALL_USED_REGISTERS): Likewise.
9505         (REG_CLASS_CONTENTS): Likewise.
9506         (REG_ALLOC_ORDER): New.
9507         (REGNO_REG_CLASS): Use regno_reg_class.
9508         * config/m68k/m68k.c: Add regno_reg_class array.
9509
9510 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9511
9512         * config/ia64/ia64.md (divsi3): Fix algorithm.
9513           (udivsi3): Ditto.
9514           (setf_exp_xf): Remove '*' from name.
9515         * testsuite/gcc.dg/20040309-1.c: New test.
9516
9517 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9518
9519         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9520         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9521         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9522         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9523         (sparc_aout_select_rtx_section): Don't check
9524         SUNOS4_SHARED_LIBRARIES.
9525         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9526
9527 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9528
9529         PR other/14474
9530         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9531         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9532         INTERNALS".
9533
9534 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9535
9536         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9537         (LIBGCC_SPEC): Update to match.
9538
9539 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9540
9541         * c-decl.c (last_function_parms, last_function_parm_tags)
9542         (last_function_parm_others, current_function_parms)
9543         (current_function_parm_tags, current_function_parm_others):
9544         Delete.
9545         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9546         New macros.
9547         (grokdeclarator): For function definitions, save the arg-info
9548         block from the declarator in DECL_ARGUMENTS.
9549         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9550         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9551         contains only PARM_DECLs.  Improve diagnostics.
9552         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9553         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9554         (store_parm_decls_newstyle): Take the function to operate on,
9555         and an arg-info block, as arguments; don't get anything from
9556         current_function_* globals.
9557         (store_parm_decls_oldstyle): Likewise.
9558         (store_parm_decls): Pass fndecl and its arg-info block down to
9559         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9560         argument lists through store_parm_decls_newstyle to reduce
9561         overhead.
9562         (pushdecl): Comment on the problems with the call to copy_node.
9563         Clear DECL_ARGUMENTS of the old node after copying it, if it
9564         is an arg-info block instead of a chain of decls.
9565         (start_function): Do not manipulate current_function_parm* or
9566         last_function_parm*.
9567
9568 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9569             Andrew Pinski  <pinskia@physics.uc.edu>
9570
9571         * ifcvt.c (noce_try_sign_mask): New function to transform
9572         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9573         (noce_process_if_block): Call noce_try_sign_mask.
9574
9575 2004-03-09  Andrew Pinski  <apinski@apple.com>
9576
9577         * c-typeck.c (tagged_types_tu_compatible_p):
9578         Fix typo.
9579
9580 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9581
9582         * simplify-rtx.c (simplify_const_relational_operation): New function
9583         renamed from simplify_relational_operation.
9584         (simplify_relational_operation): Change prototype to accept an
9585         additional mode argument.  Call simplify_const_relational_operation.
9586         (simplify_gen_relational): Update simplify_relational_operation call.
9587         (simplify_ternary_operation): Update simplify_relational_operation
9588         subroutine call to use simplify_const_relational_operation instead.
9589
9590         * rtl.h (simplify_const_relational_operation): Prototype here.
9591         (simplify_relational_operation): Add addtional mode argument.
9592
9593         * combine.c (combine_simplify_rtx): Update calls to
9594         simplify_relational_operation.
9595         (simplify_set): Likewise.
9596         (gen_binary): Likewise.
9597         * cse.c (fold_rtx): Likewise.
9598         * dojump.c (compare_from_rtx): Likewise.
9599         (do_compare_rtx_and_jump): Likewise.
9600         * integrate.c (subst_constants): Likewise.
9601         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9602
9603 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9604
9605         * config/m32r/m32r.md: Remove all define_peephole's.
9606
9607 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9608
9609         * config/rs6000/rs6000.md: Remove trailing whitespace.
9610
9611 2004-03-08  Eric Christopher  <echristo@redhat.com>
9612
9613         * Makefile.in (site.exp): Add libiconv variable definition.
9614
9615 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9616
9617         * configure: Regenerate for config/accross.m4 correction.
9618
9619 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9620
9621         PR target/14480
9622         * config/rs6000/t-rtems: Add missing file on branch.
9623
9624 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9625
9626         PR middle-end/14289
9627         * c-typeck.c (c_mark_addressable): A register variable should
9628         be considered global if its not automatic, i.e. TREE_PUBLIC,
9629         TREE_STATIC or DECL_EXTERNAL.
9630         * function.c (put_var_into_stack): Call abort when placing a
9631         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9632
9633 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9634
9635         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9636         ("*extendqisi2_short_displ"): Likewise.
9637
9638 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9639
9640         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9641         (comp_operator): Likewise.
9642         * config/pdp11/pdp11-protos.h: Remove corresponding
9643         prototypes.
9644
9645 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9646
9647         * expr.c (highest_pow2_factor_for_type): Rename into
9648         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9649         TYPE_ALIGN when the target is a COMPONENT_REF.
9650         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9651
9652 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9653
9654         * config/rs6000/rs6000.c: Formatting fix.
9655         (legitimate_offset_address_p): Correct offset range check.
9656
9657         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9658         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9659         and MASK_STRING.
9660
9661 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9662
9663         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9664         for little endian.
9665         ("ashrdi3_no_power"): Disable for little endian.
9666         (ashrdi3): Same.
9667
9668 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9669
9670         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9671         builtins.
9672
9673 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9674
9675         PR target/14471
9676         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9677         case, checking for -no-mul-bug-abort option.
9678         * configure, config.in: Regenerate.
9679         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9680         and -mno-mul-bug-workaround.
9681         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9682         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9683         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9684         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9685         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9686         sure mulu.d is not last on cache-line.
9687         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9688         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9689         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9690         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9691         -mno-mul-bug-workaround.
9692         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9693         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9694         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9695         relation to MULT in head comment.
9696         (cris_op_str): Abort for MULT.
9697         (cris_print_operand) <case '!'>: New case.
9698
9699 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9700
9701         PR debug/11983
9702         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9703         dw_val_class_vec.  Replace use throughout file.
9704         (dw_float_const): Delete.
9705         (dw_vec_const): New.
9706         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9707         throughout file.
9708         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9709         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9710         (size_of_die): Adjust dw_val_class_vec sizing.
9711         (output_die): Output dw_val_class_vec.
9712         (insert_int, extract_int, insert_float): New functions.
9713         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9714         Handle CONST_VECTOR.
9715         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9716
9717 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9718
9719         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9720         AltiVec abi cannot co-exist.
9721
9722         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9723
9724 2004-03-07  Jan Hubicka  <jh@suse.cz>
9725
9726         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9727
9728 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9729
9730         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9731         ("*lshrsi3"): Also accept an immediate for 68HC12.
9732         ("*ashrsi3_const"): Likewise.
9733         ("*ashrsi3"): Likewise.
9734         ("*ashlsi3_const"): Likewise.
9735         ("*ashlsi3"): Likewise.
9736         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9737         comparing with a pop; don't use a split for that.
9738         ("cmphi split"): Disable compare split for 68HC12.
9739
9740         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9741         the status operands if they have side effects.
9742
9743 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9744
9745         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9746         definition.
9747         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9748         config/h8300/h8300.h, config/ia64/ia64.h,
9749         config/mcore/mcore.h, config/mmix/mmix.h,
9750         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9751         config/stormy16/stormy16.h, config/v850/v850.h,
9752         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9753         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9754         definition.
9755
9756 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9757
9758         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9759         <XOR_EXPR>: Fold x ^ x as zero.
9760         <AND_EXPR>: Fold x & x as x.
9761
9762 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9763
9764         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9765         "foo++ == const" into "++foo == const+incr".
9766
9767 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9768
9769         * config/mips/mips.c (mips_in_small_data_p): Return false if
9770         TARGET_ABICALLS.
9771
9772 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9773
9774         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9775         the stack register.
9776         (expand_prologue): Don't make an interrupt or a trap handler a far
9777         symbol.
9778         (m68hc11_initial_elimination_offset): Likewise.
9779
9780 2004-03-06  Richard Henderson  <rth@redhat.com>
9781
9782         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9783
9784 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9785
9786         * config/ns32k/ns32k-protos.h: Add a prototype for
9787         ns32k_notice_update_cc.
9788         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9789         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9790         ns32k_notice_update_cc.
9791
9792 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9793
9794         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9795         "*load_multiple_si"): Allow only if reload_completed.
9796         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9797         Likewise.
9798
9799 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9800
9801         * config/vax/vax-protos.h: Add a prototype for
9802         vax_notice_update_cc.
9803         * config/vax/vax.c (vax_notice_update_cc): New.
9804         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9805         vax_notice_update_cc.
9806
9807 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9808
9809         * collect2.c (main): Only export initfunc and finifunc if
9810         LD_INIT_SWITCH not defined.
9811         (scan_prog_file): Only export constructors and destructors if
9812         LD_INIT_SWITCH not defined.  Only export symbols not found in
9813         shared objects.
9814
9815 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9816
9817         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9818         last.
9819         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9820         from calls to gen_icacheflush.
9821
9822 2004-03-06  Richard Henderson  <rth@redhat.com>
9823
9824         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9825         (TARGET_LONG_DOUBLE_128): New.
9826         (TARGET_SWITCHES): Add long-double-{128,64}.
9827         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9828         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9829         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9830         (WIDEST_HARDWARE_FP_SIZE): New.
9831         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9832         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9833         if TARGET_VAX_FLOAT.
9834         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9835         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9836
9837 2004-03-06  Richard Henderson  <rth@redhat.com>
9838
9839         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9840         botched rtx class conversion.
9841
9842 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9843
9844         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9845         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9846
9847         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9848         macros.
9849         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9850
9851 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9852
9853         PR target/14343
9854         * config/i386/i386.md (movv2di_internal): Conditionalize on
9855         TARGET_SSE, not TARGET_SSE2.
9856
9857 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9858
9859         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9860         duplicated line.
9861
9862 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9863
9864         * builtins.c: Consistently use logN not log* in comments.
9865
9866 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9867
9868         * rtl.h (mem_expr_equal_p): Function prototype added.
9869         * cfgcleanup.c (merge_memattrs): New function.
9870         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9871         * emit-rtl.c (mem_expr_equal_p): New function.
9872
9873 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9874
9875         * objc/objc-act.c (synth_module_prologue): Const-qualify
9876         objc_selector type if using the GNU runtime; fix generated
9877         signatures for objc_msg_lookup and objc_msg_lookup_super
9878         to match what GNU ObjC headers provide; reformat and clean up.
9879         (synth_self_and_ucmd_args): Use previously constructed (and
9880         hence possibly const-qualified) objc_selector type.
9881
9882 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9883
9884         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9885
9886 2004-03-05  Jason Merrill  <jason@redhat.com>
9887
9888         * tree.h (TYPE_HASH): Use TYPE_UID.
9889         (TREE_HASH): New macro with old definition of TYPE_HASH.
9890         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9891         (build_array_type, build_function_type): Likewise.
9892         (build_method_type_directly): Likewise.
9893         (build_offset_type, build_complex_type): Likewise.
9894         (type_hash_list, attribute_hash_list): Likewise. Now static.
9895         * except.c: s/TYPE_HASH/TREE_HASH/.
9896
9897 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9898
9899         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9900         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9901         __va_ndx by 2 words when referencing an argument on the stack.
9902         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9903         words when an arg on the stack is first seen.
9904
9905 2004-03-05  Paul Brook  <paul@codesourcery.com>
9906
9907         * arm.h (ARM_FLAG_VFP): Remove.
9908         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9909         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9910
9911 2004-03-05  Paul Brook  <paul@codesourcery.com>
9912
9913         * function.c (assign_parms): Include pretend alignment offset.
9914
9915 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9916
9917         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9918         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9919
9920 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9921
9922         * configure.ac: When passing --enable-languages to subdir
9923         configure when host != build, make sure we don't pass an empty
9924         value.
9925         * configure: Regenerate.
9926
9927 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9928
9929         PR 13577
9930         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9931         options.
9932
9933 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9934
9935         * simplify-rtx.c (simplify_relational_operation): If
9936         flag_wrapv is set, do not move terms between the two
9937         side of a relational operator.
9938
9939 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9940
9941         * rtlanal.c: Include target.h and output.h
9942         (rtx_cost, address_cost, default_address_cost): Move from...
9943         * cse.c (rtx_cost, address_cost, default_address_cost):
9944         ... this file.
9945         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9946         * Makefile.in: Adjust dependencies.
9947
9948 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9949
9950         * cse.c (cse_end_of_basic_block): Make static.
9951         * local-alloc.c (function_invariant_p): Move to
9952         reload1.c.
9953         * loop.c (libcall_other_reg, record_excess_regs):
9954         Make static.
9955         * reload1.c (function_invariant_p): Moved here
9956         from local-alloc.c, made static.
9957         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9958         libcall_other_reg, record_excess_regs): Remove
9959         declarations.
9960
9961 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9962
9963         * config/m32r/m32r.c (signed_comparison_operator): Add a
9964         missing parenthesis.
9965
9966 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9967
9968         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9969         going to call mmap again.  Read the file into the right place.
9970         Give a fatal error if we have to relocate.
9971
9972 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9973
9974         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9975         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9976
9977 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9978
9979         PR other/14354
9980         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9981         round the same.  When rounding, clear bits that would cause a
9982         second rounding in pack_d.
9983         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9984
9985 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9986
9987         PR c++/14425, c++/14426
9988         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9989         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9990         Change C++ definitions to accept a 'const int' argument;
9991         the prototypes already do.
9992         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9993         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9994         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9995         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9996         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9997         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9998         end in ..._int; change them to accept an int instead of a char
9999         as the last parameter.
10000
10001 2004-03-04  Phil Edwards  <phil@codesourcery.com>
10002
10003         * genmultilib:  Change '=' to '-' when translating option names
10004         to directory names.
10005
10006 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10007
10008         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10009         stack slot for temp used for result of BLKmode but in integral mode.
10010
10011 2004-03-04  Jan Hubicka  <jh@suse.cz>
10012
10013         * reload.c (find_reloads): Reorganize if seqeunce to switch.
10014
10015         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
10016         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
10017
10018 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
10019
10020         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10021         * testsuite/gcc.dg/20040303-1.c: New test.
10022
10023 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10024
10025         * ppro.md: Rewrite as a DFA pipeline description.
10026         * i386.md: Remove all uses of the ppro_uops attribute.
10027         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10028         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10029         ix86_sched_reorder, ix86_variable_issue,
10030         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10031         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10032         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10033         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10034         * athlon.md (athlon_ssecmp_load): Fix comment
10035
10036 2004-03-04  Stuart Hastings  <stuart@apple.com>
10037
10038         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10039
10040 2004-03-04  Stuart Hastings  <stuart@apple.com>
10041
10042         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10043         686, tell Darwin assembler to allow prefetch insns, non-empty def
10044         of SUBTARGET_OPTION_TRANSLATE_TABLE.
10045
10046 2004-03-04  DJ Delorie  <dj@redhat.com>
10047
10048         PR optimization/14282
10049         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10050         between a call and the assignment of its return value.
10051
10052 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10053
10054         * config/h8300/h8300.c: Put a comment for every function.
10055
10056 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10057
10058         * config/h8300/h8300.md: Add comments about peephole2's.
10059
10060 2004-03-04  Steven Bosscher  <stevenb@suse.de>
10061
10062         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10063
10064 2004-03-04  Jan Hubicka  <jh@suse.cz>
10065
10066         * cfgcleanup.c (thread_jump): Update call of cselib_init.
10067         * cselib.c (cselib_record_memory): New static variable.
10068         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10069         Give up on memories when asked for.
10070         (cselib_init): Accept new argument.
10071         * cselib.h (cselib_init): Update prototype.
10072         * gcse.c (local_cprop_pass): Update call of cselib_init.
10073         * loop.c (load_mems): Update call of cselib_init.
10074         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10075         * sched-deps.c (sched_analyze): Update call of cselib_init.
10076
10077 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10078             GP <gp@qnx.com>
10079
10080         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10081         when compiling PIC.
10082
10083 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
10084
10085         PR/14362
10086         * var-tracking.c (track_expr_p): Do not track variables which
10087         should be ignored for debugging purposes.
10088
10089 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10090
10091         * real.c (encode_ibm_extended): Don't bother rounding low double.
10092         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10093         when fmt->pnan < fmt->p.
10094
10095 2004-03-04  Eric Christopher  <echristo@redhat.com>
10096
10097         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10098         only range of valid arg registers and fixed_regs.
10099
10100 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10101
10102         PR target/14406
10103         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10104         (abstf2, abstf2_internal): New define_expand.
10105
10106 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10107
10108         PR optimization/14235
10109         * expr.c (convert_move): Copy the source to a new pseudo
10110         when converting from a sub-word source to a larger-than-word
10111         register which conflicts with the source.
10112
10113 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
10114
10115         PR 13728
10116         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10117         parameters with the same name, unless one is a forward decl.
10118         Do not issue a redundant-redeclaration warning for forward
10119         decls of parameters.
10120
10121 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
10122
10123         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10124         configuration.
10125
10126 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
10127
10128         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10129
10130 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
10131
10132         * target-def.h (TARGET_OPTF): Delete.
10133         * c-opts.c (TARGET_OPTF): Define.
10134
10135 2004-03-04  Jan Hubicka  <jh@suse.cz>
10136
10137         * cselib.c (cselib_finish): Fix another miss-application of my previous
10138         patch.
10139
10140 2004-03-03  Mike Stump  <mrs@apple.com>
10141
10142         Add framework support for darwin.
10143
10144         * c-incpath.c: Include target.h and machmode.h.
10145         (add_path): Use a consistent style for cpp_dir.  Initialize
10146         p->construct to 0.
10147         (add_cpp_dir_path): New.
10148         (register_include_chains): Add use of extra_includes callback.
10149         (hook_void_int): Add.
10150         (target_c_incpath): Add.
10151         * c-incpath.h (add_cpp_dir_path): New.
10152         (target_c_incpath_s): Add.
10153         (target_c_incpath): Add.
10154         (C_INCPATH_INIT): Add.
10155         * c-opts.c (c_common_missing_argument,
10156         c_common_handle_option): Add -F argument processing.
10157         * c.opt: Add -F argument processing.
10158         * gcc.c (trad_capable_cpp): Add -F argument processing.
10159         * cppfiles.c (find_file_in_dir): Update to use construct
10160         callback.
10161         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10162         cpp_get_prev): New.
10163         (_cpp_find_file): Use search_path_exhausted.
10164         (make_cpp_dir): Initialize construct to 0.
10165         * cpplib.h (missing_header_cb
10166         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10167         (cpp_callbacks): Add missing_header
10168         (cpp_dir): Add construct.
10169         * target-def.h: (TARGET_OPTF): New.
10170         * hooks.c (hook_void_int, hook_void_charptr): Add.
10171         * hooks.h (hook_void_int, hook_void_charptr): Add.
10172         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10173         $(MACHMODE_H) dependencies.
10174         * doc/invoke.texi (Darwin Options): Document -F.
10175         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10176         (TARGET_OPTF): Add.
10177         * fix-header.c (target_c_incpath): Add.
10178
10179         * config/darwin-c.c: Add c-incpath.h include.
10180         (using_frameworks, find_subframework_file,
10181         find_subframework_header, add_system_framework_path,
10182         frameworks_in_use, num_frameworks, max_frameworks,
10183         add_framework, find_framework, struct framework_header,
10184         framework_header_dirs, framework_construct_pathname,
10185         find_subframework_file, add_system_framework_path,
10186         add_framework_path, framework_defaults,
10187         darwin_register_frameworks, find_subframework_header): Add.
10188         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10189         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10190         (CPP_SPEC): Add __APPLE_CC__ support.
10191         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10192
10193 2004-03-04  Jan Hubicka  <jh@suse.cz>
10194
10195         * cselib.c (cselib_finish): Fix miss-application of my previous
10196         patch.
10197
10198 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10199
10200         * hooks.c (hook_tree_tree_identity): New.
10201         * hooks.h: Add a prototype for hook_tree_tree_identity.
10202         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10203         instead of MD_ASM_CLOBBERS.
10204         * system.h (MD_ASM_CLOBBERS): Poison.
10205         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10206         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10207         * target.h (gcc_target): Add md_asm_clobbers.
10208         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10209         (ix86_md_asm_clobbers): New.
10210         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10211         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10212         TARGET_MD_ASM_CLOBBERS.
10213
10214 2004-03-03  Stuart Hastings  <stuart@apple.com>
10215
10216         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10217
10218 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10219
10220         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10221
10222         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10223         (ASM_DOUBLE): Likewise.
10224         (ASM_LONGDOUBLE): Likewise.
10225         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10226
10227 2003-03-03  Richard Henderson  <rth@redhat.com>
10228
10229         PR opt/13862
10230         * cselib.c (cselib_record_sets): Don't record multiple sets in
10231         asm insns.
10232
10233 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10234
10235         * common.opt: Add description of the new -fgcse-after-reload flag.
10236
10237         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10238
10239         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10240         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10241         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10242         get_bb_avail_insn, hash_scan_set_after_reload,
10243         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10244         gcse_after_reload, get_bb_avail_insn): New functions to implement
10245         gcse-after-reload.
10246         (gcse_after_reload_main): New function, the main entry point to
10247         gcse-after-reload.
10248
10249         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10250
10251         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10252
10253         * toplev.c (flag_gcse_after_reload): Initialization.
10254
10255         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10256
10257         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10258         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10259         the gcse after reload optimization.
10260
10261         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10262         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10263         parameters.
10264
10265         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10266
10267 2004-03-03  Nicolas Pitre <nico@cam.org>
10268
10269         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10270         small negative values.
10271
10272 2004-03-03  Jan Hubicka  <jh@suse.cz>
10273
10274         * cselib.c (hash_table):  Remove GTY marker.
10275         (reg_values): Turn into array.
10276         (used_regs): Likewise.
10277         (n_used_regs): New static variable.
10278         (reg_values_old): Kill.
10279         (clear_table): Update uses of arrays.
10280         (cselib_lookup): Likewise.
10281         (cselib_record_set): Likewise.
10282         (cselib_init): Likewise.
10283         (cselib_finish): Likewise.
10284         (cselib_udpate_varray_sizes): Kill.
10285         * cselib.h (cselib_update_varray_sizes): Kill.
10286
10287 2004-03-03  Paul Brook  <paul@codesourcery.com>
10288
10289         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10290
10291 2004-03-03  Jan Hubicka  <jh@suse.cz>
10292
10293         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10294         Rename from ...; make statistics transparent.
10295         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10296         (loc_descriptor): New structure.
10297         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10298         add_statistics):
10299         New static function.
10300         (ggc_record_overhead, dump_statistics): New global function.
10301         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10302         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10303         from ...; accept locations
10304         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10305         ggc_realloc, ggc_alloc_typed):  ... this one.
10306         from ...; accept locations
10307         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10308         ggc_alloc_stat): Rename from ... ; pass locations
10309         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10310         ... this one.
10311         (ggc_alloc_stat): Record overehead.
10312         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10313         ggc_realloc, ggc_alloc_typed):  Turn to macros
10314         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10315         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10316         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10317         * langhooks.h (lhd_make_node): Declare.
10318         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10319         * langhooks.c (lhd_make_node): New.
10320         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10321         locations.
10322         (rtx_alloc, swallow_copy_rtx): ... this one.
10323         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10324         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10325         * toplpev.c (finalize): Dump stats.
10326         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10327         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10328         Rename from ... ; pass locators.
10329         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10330         build?,  build_decl): Declare.
10331         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10332         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10333         Declare.
10334         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10335         build?,  build_decl): New macros.
10336         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10337         * statistics.h: New file.
10338
10339 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10340             Richard Sandiford  <rsandifo@redhat.com>
10341
10342         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10343         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10344         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10345         * config/mips/mips.c (mips_output_division): Fill the branch delay
10346         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10347         TARGET_FIX_R4400.
10348         (mips_output_division): Adjust accordingly.
10349         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10350         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10351
10352 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10353
10354         * alias.c (rtx_equal_for_memref_p): Use predicates
10355         to test rtx classes and new rtx class codes, possibly
10356         splitting conditionals that tested against '<' and 'o'.
10357         * caller-save.c (save_call_clobbered_regs): Likewise.
10358         * combine.c (contains_muldiv, find_split_point, subst,
10359         combine_simplify_rtx, simplify_if_then_else,
10360         simplify_set, simplify_logical, expand_compound_operation,
10361         make_compound_operation, if_then_else_cond, known_cond,
10362         apply_distributive_law, cached_nonzero_bits,
10363         cached_num_sign_bit_copies, simplify_shift_const,
10364         gen_binary, simplify_comparison, update_table_tick,
10365         record_value_for_reg, get_lsat_value_validate): Likewise.
10366         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10367         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10368         Likewise.
10369         * emit-rtl.c (copy_insn_1): Likewise.
10370         * expr.c (force_operand): Likewise.
10371         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10372         * flow.c (notice_stack_pointer_modification_1,
10373         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10374         and_reg_cond, elim_reg_cond): Likewise.
10375         * function.c (update_epilogue_consts): Likewise.
10376         * genattrtab.c (attr_rtx_1): Likewise.
10377         * genopinit.c (gen_insn): Likewise.
10378         * integrate.c (subst_constants): Likewise.
10379         * jump.c (reversed_comparison_code_parts,
10380         reversed_comparison_code, delete_related_insns,
10381         rtx_renumbered_equal_p): Likewise.
10382         * local-alloc.c (block_alloc): Likewise.
10383         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10384         canonicalize_condition): Likewise.
10385         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10386         Likewise.
10387         * optabs.c (add_equal_node, expand_binop): Likewise.
10388         * predict.c (estimate_probability): Likewise.
10389         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10390         * recog.c (validate_replace_rtx_1, comparison_operator,
10391         offsettable_address_p, constrain_operands): Likewise.
10392         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10393         Likewise.
10394         * regclass.c (scan_one_insn): Likewise.
10395         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10396         * regrename.c (kill_autoinc_value): Likewise.
10397         * reload.c (find_reusable_reload, find_reloads,
10398         reg_overlap_mentioned_for_reload_p): Likewise.
10399         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10400         * rtl.c (copy_rtx): Likewise.
10401         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10402         * rtlanal.c (commutative_operand_precedence): Likewise.
10403         * sched-deps.c (conditions_mutex_p): Likewise.
10404         * sched-rgn.c (is_cfg_nonregular): Likewise.
10405         * simplify-rtx.c (simplify_gen_binary,
10406         simplify_gen_relational, simplify_replace_rtx,
10407         simplify_unary_operation, simplify_binary_operation,
10408         simplify_ternary_operation, simplify_rtx): Likewise.
10409         * unroll.c (reg_dead_after_loop): Likewise.
10410         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10411         print_operand): Likewise.
10412         * config/arc/arc.c (proper_comparison_operator): Likewise.
10413         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10414         Likewise.
10415         * config/avr/avr.c (_reg_unused_after): Likewise.
10416         * config/frv/frv.c (frv_ifcvt_modify_tests,
10417         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10418         * config/i386/i386.c (ix86_comparison_operator,
10419         ix86_carry_flag_operator, fcmov_comparison_operator,
10420         arith_or_logical_operator, print_operand,
10421         ix86_expand_binary_operator, ix86_binary_operator_ok):
10422         Likewise.
10423         * config/i386/i386.md: Likewise.
10424         * config/ia64/ia64.c (not_postinc_memory_operand,
10425         ia64_print_operand, update_set_flags, errata_emit_nops):
10426         Likewise.
10427         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10428         CONSTRAINT_OK_FOR_S): Likewise.
10429         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10430         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10431         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10432         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10433         Likewise.
10434         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10435         eqne_comparison_operator, signed_comparison_operator):
10436         Likewise.
10437         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10438         Likewise.
10439         * config/mmix/mmix (mmix_foldable_comparison_operator,
10440         mmix_comparison_operator): Likewise.
10441         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10442         * config/rs6000/rs6000.c (stmw_operation,
10443         branch_comparison_operator, trap_comparison_operator,
10444         ccr_bit): Likewise.
10445         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10446         * config/s390/s390.c (s390_alc_comparison,
10447         s390_slb_comparison):L Likewise.
10448         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10449         Likewise.
10450         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10451         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10452         emit_hard_tfmode_operation, reg_unused_after)
10453         * doc/md.texi, doc/rtl.texi: Likewise.
10454
10455         * ra-debug.c: Add 2004 to list of copyright years.
10456         * unroll.c: Likewise.
10457
10458         * combine.c (simplify_logical): Remove dummy test,
10459         (apply_distributive_law): Fix typo in comment.
10460         GET_CODE (x) == AND so x is a commutative binary op.
10461         * jump.c (delete_related_insns): simplify loop
10462         condition, move testing of RTX codes inside the loop.
10463         (rtx_renumbered_equal_p): do not use RTX_CODE.
10464         * rtl.c (rtx_class): Declare as enum rtx_class.
10465         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10466         Move to RTX_COMM_COMPARE class.
10467         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10468         Move to RTX_CONST_OBJ class.
10469         * rtl.h (enum rtx_class): New declaration,
10470         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10471         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10472         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10473         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10474         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10475         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10476         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10477         OBJECT_P): New macros.
10478         * config/sparc/sparc.c (noov_compare_op): Remove register
10479         from parameter.
10480
10481 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10482
10483         * target.h: Remove texi jargons in comments.
10484
10485 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10486
10487         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10488         threshold to 0x4f.
10489
10490         Revert:
10491         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10492         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10493         as well.
10494         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10495         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10496
10497 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10498
10499         * doc/md.texi (cbranchmode4): New.
10500
10501 2004-03-02  Eric Christopher  <echristo@redhat.com>
10502
10503         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10504         fix_trunc.
10505         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10506         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10507         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10508         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10509
10510 2004-03-02  Richard Henderson  <rth@redhat.com>
10511
10512         PR middle-end/11767
10513         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10514         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10515         before the compare, if flag_non_call_exceptions.
10516
10517 2004-03-02  Richard Henderson  <rth@redhat.com>
10518
10519         PR middle-end/14327
10520         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10521         emitting the label, not after.
10522
10523 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10524
10525         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10526         (m68hc11_mov_addr_mode): Likewise.
10527         (m68hc11_override_options): Initialize them based on target.
10528         (register_indirect_p): Allow a MEM for indirect addressing modes and
10529         use flags to control what is allowed.
10530         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10531         supported addressing modes.
10532         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10533         (go_if_legitimate_address_internal): Likewise.
10534         (m68hc11_indirect_p): Likewise and check the mode.
10535         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10536
10537 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10538
10539         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10540         (expand_builtin_setjmp_setup): Use
10541         targetm.builtin_setjmp_frame_value instead of
10542         BUILTIN_SETJMP_FRAME_VALUE.
10543         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10544         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10545         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10546         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10547         * targhooks.c (default_builtin_setjmp_frame_value): New.
10548         * targhooks.h: Add a prototype for
10549         default_builtin_setjmp_frame_value.
10550         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10551         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10552
10553 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10554
10555         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10556         sequences of moves.
10557         (add peepholes): New peepholes to optimize sequences adding small
10558         constants.
10559         (bset peepholes): New peepholes to transform an OR in a bset form
10560         (bclr peepholes): Likewise for bclr form.
10561         (cmp peepholes): New peepholes to avoid register copies when comparing.
10562
10563 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10564
10565         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10566         to separate push from moves.
10567         ("*pushdf_internal"): Likewise.
10568         ("*pushsf_internal"): Likewise.
10569         ("*pushsi_internal"): Likewise.
10570         ("movdi_internal"): Use define_insn_and_split; non push operand.
10571         ("movdf_internal"): Likewise.
10572         ("movsf_internal"): Likewise.
10573         ("movsi_internal"): Likewise.
10574         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10575         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10576         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10577
10578 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10579
10580         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10581         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10582         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10583         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10584         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10585         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10586         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10587         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10588         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10589         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10590         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10591
10592 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10593
10594         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10595         (SOFT_XY_REGNUM): Define.
10596         (cmp split): Use the above instead of hard coded numbers.
10597         (8-bit op split): No need to check the mode; allow Q_REG.
10598         (ashift split): Adjust the first operand if it uses the SP and we
10599         are pushing the shifted value.
10600         (plus shift split): Fix when a source is in register D+X.
10601         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10602
10603 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10604
10605         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10606         comparing with Z register.
10607
10608 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10609
10610         * cfgloop.h (struct loop_desc): Removed.
10611         (struct loop): Fields simple, desc and has_desc removed.
10612         (simple_loop_p, count_loop_iterations): Declaration removed.
10613         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10614         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10615         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10616         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10617         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10618         simple_condition_p, simple_increment, count_strange_loop_iterations,
10619         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10620         Removed.
10621         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10622
10623 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10624
10625         * genattrtab.c: Don't handle MATCH_INSN.
10626         * genrecog.c: Likewise.
10627         * gensupport.c: Likewise.
10628         * rtl.def (match_insn): Remove.
10629         * doc/md.texi (match_insn, match_insn2): Remove.
10630
10631 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10632
10633         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10634         macro results in memory allocation.
10635
10636 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10637
10638         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10639         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10640         %(fbsd_dynamic_linker),
10641         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10642         config/i386/freebsd.h
10643         * config/arm/freebsd.h: Ditto.
10644         * config/i386/freebsd.h: Ditto.
10645         * config/i386/freebsd64.h: Ditto.
10646         * config/ia64/freebsd.h: Ditto.
10647         * config/rs6000/sysv4.h: Ditto.
10648         * config/sparc/freebsd.h: Ditto.
10649
10650 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10651
10652         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10653
10654 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10655
10656         * rtl.def (define_combine): Remove.
10657
10658 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10659
10660         * config/h8300/h8300.md: Tweak formatting.
10661
10662 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10663
10664         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10665         *cmphi_h8300_znvc.
10666         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10667
10668 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10669
10670         PR bootstrap/14356
10671         * gcc.c (process_command): Remove const-qualification from argv.
10672         (main): Likewise.
10673
10674 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10675
10676         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10677         pushqi1_h8300hs_advanced.  Adjust its caller.
10678         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10679         Adjust its caller.
10680
10681 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10682
10683         * Makefile.in (install-libgcc, install-multilib): Pass
10684         mkinstalldirs var to libgcc.mk.
10685
10686 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10687
10688         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10689         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10690
10691 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10692
10693         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10694         * config/h8300/h8300.md: Split several peephole2's, each into
10695         two.
10696
10697 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10698
10699         * dominance.c (recount_dominator): Handle postdominators.
10700
10701 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10702
10703         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10704         (NUM_SYMBOL_TYPES): Likewise.
10705         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10706         (mips_unspec_address): Declare.
10707         (mips_gotoff_page, mips_gotoff_global): Delete.
10708         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10709         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10710         (mips_symbolic_constant_p, mips_symbolic_address_p)
10711         (mips_symbol_insns): Handle new symbol types.
10712         (general_symbolic_operand): New predicate.
10713         (mips_unspec_address): Make extern.
10714         (mips_gotoff_page, mips_gotoff_global): Delete.
10715         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10716         Handle new symbol types.
10717         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10718         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10719         mips_unspec_address directly.
10720         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10721         the documentation of -mexplicit-relocs.
10722
10723 2004-03-01  Jeff Law  <law@redhat.com>
10724
10725         * fold-const.c (fold): An equality comparison of a non-weak object
10726         against zero has a known result.  Similarly an equality comparison
10727         of the address of two non-weak, unaliased symbols has a known result.
10728
10729         * ggc-page.c (struct page_entry): New field PREV.
10730         (ggc_alloc): Update PREV field appropriately.
10731         (sweep_pages): Likewise.
10732         (ggc_free): Likewise.  Use PREV field rather than loop to
10733         improve ggc_free performance.
10734
10735 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10736
10737         * config/mips/mips.c (mips_output_division): Use the division
10738         instruction to fill the delay slot of a zero check.
10739         (mips_idiv_insns): Adjust accordingly.
10740
10741 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10742
10743         * config.gcc: Create a default tmake_file for linux, and use
10744         it in all but two linux clauses.  Comment those two.
10745
10746 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10747
10748         * combine.c (try_combine):  Do not refer to is_replaced.
10749         (gen_lowpart_for_combine):  Perverse subregs now have a
10750         more politically correct name.
10751         * cse.c (cse_insn): Likewise.
10752         * jump.c: Fix bogus reference to delete_insn.
10753
10754 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10755
10756         PR debug/14328
10757         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10758         constants as signed values.
10759
10760         PR middle-end/13448
10761         * c-tree.h (readonly_warning): Rename to ...
10762         (readonly_error): ... this.
10763         * c-typeck.c (build_unary_op): Adjust accordingly.
10764         (readonly_warning): Rename to ...
10765         (readonly_error): ... this and issue errors, not warnings.
10766         (build_modify_expr): Call readonly_error, not readonly_warning.
10767         (c_expand_asm_operands): Likewise.
10768         * tree-inline.c (optimize_inline_calls): Do not inline functions
10769         after errors have occurred.
10770
10771 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10772
10773         * configure.ac: Rearrange some threading code for clarity;
10774         add section comment.
10775         * configure: Regenerate.
10776
10777 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10778
10779         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10780         typos.
10781         * doc/cppopts.texi: Fix a typo.
10782
10783 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10784
10785         * config/i386/i386.md: Fix formatting.
10786
10787 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10788
10789         * configure.ac: Add some comments delineating sections of code.
10790
10791         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10792
10793         * doc/install.texi: Fix idiot typo in previous commit.
10794
10795         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10796
10797 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10798
10799         * config/h8300/h8300.md: Add comments about peephole2's.
10800
10801 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10802
10803         * config/h8300/h8300.md: Tweak operand numbers of some
10804         peephole2's.
10805
10806 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10807
10808         * config/h8300/h8300.md: Tweak comments about peephole2's.
10809
10810 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10811
10812         PR middle-end/14203
10813         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10814         instead of testing whether DECL_RTL is not NULL.
10815
10816 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10817
10818         * config/sh/sh.c: Fix formatting.
10819
10820 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10821
10822         * config/sh/sh.c: Convert to ISO-C.
10823
10824 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10825
10826         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10827         my previous patch.
10828
10829         * config/darwin.h (machopic_finish): Output stub even if the
10830         symbol is already defined.
10831
10832 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10833
10834         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10835
10836 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10837
10838         * genattr.c (main): Don't define
10839         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10840         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10841         (DFA_PIPELINE_INTERFACE): Likewise.
10842         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10843         (DFA_PIPELINE_INTERFACE): Likewise.
10844
10845 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10846
10847         * config/mips/mips.md (tstsi, tstdi): Delete.
10848
10849 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10850
10851         * config/mips/mips.c (override_options): Remove an obsolete
10852         duplicate definition of the "e" constraint.
10853         * config/mips/mips.h: Update a comment accordingly.
10854
10855 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10856
10857         * config/mips/mips.md: Complete the unfinished R4000
10858         multiply/shift errata workaround.  Improve documentation.
10859         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10860         has a hilo hazard.
10861         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10862         (muldi3, muldi3_internal): Likewise.
10863         (muldi3_internal2): Remove, replacing with...
10864         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10865         (mulsidi3): Take the errata into account.
10866         (mulsidi3_32bit): Remove, replacing with...
10867         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10868         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10869         (umulsidi3): Take the errata into account.
10870         (umulsidi3_32bit): Remove, replacing with..
10871         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10872         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10873         TARGET_FIX_R4000.
10874         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10875         (smuldi3_highpart, umuldi3_highpart): Likewise.
10876         * doc/invoke.texi: Document the errata workaround.
10877
10878 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10879
10880         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10881         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10882         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10883         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10884         * config/mips/mips.c (mips_idiv_insns): New function.
10885         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10886         (mips_output_division): Add a workaround for the R4000 divide/shift
10887         errata.
10888         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10889         the length of an "idiv" instruction.
10890         * doc/invoke.texi: Document the new switches.
10891
10892 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10893
10894         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10895         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10896
10897 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10898
10899         PR optimization/14229
10900         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10901
10902 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10903
10904         * fold-const.c (fold): Strip NOPs that change the signedness
10905         for RSHIFT too.  Expand comment.
10906
10907 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10908
10909         PR optimization/7871
10910         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10911         from or to call insns.
10912
10913 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10914
10915         PR optimization/7871
10916         * flow.c (propagate_one_insn): Interpret calls as setting global
10917         registers, not merely clobbering them.
10918
10919 2004-02-27  Dale Johannesen  <dalej@apple.com>
10920
10921         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10922         config/darwin-protos.h:  Ditto.
10923         config/darwin.h:  Remove call to it.
10924         * combine.c (distribute_notes): Do not place a REG_DEAD note
10925         when value is both set and used.
10926
10927 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10928
10929         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10930         as well.
10931         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10932         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10933
10934 2004-02-27  Andrew Pinski  <apinski@apple.com>
10935
10936         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10937         Speedup common case of the type values being in the same order.
10938
10939 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10940
10941         * config/ia64/ia64.h (no-inline-float-divide): New option.
10942         * config/ia64/ia64.h (no-inline-int-divide): New option.
10943         * config/ia64/ia64.h (no-inline-sqrt): New option.
10944         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10945         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10946         * config/ia64/ia64.c (ia64_override_options): Modify error
10947         checking for inlined division/sqrt.
10948
10949 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10950
10951         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10952         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10953         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10954         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10955         copyright.
10956
10957 2004-02-27  Paul Brook  <paul@codesourcery.com>
10958
10959         * function.c (assign_parms): Don't count pretend args for alignment.
10960
10961 2004-02-27  Richard Henderson  <rth@redhat.com>
10962
10963         * passes.c: New file.
10964         * Makefile.in (OBJS-common): Add it.
10965         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10966         * flags.h (rtl_dump_and_exit): ... here.
10967         * output.h (size_directive_output, last_assemble_variable_decl):
10968         Move from toplev.c.
10969         * rtl.h (reg_alloc): Move from toplev.c.
10970         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10971         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10972         open_dump_file, close_dump_file, rest_of_decl_compilation,
10973         rest_of_type_compilation, rest_of_handle_final,
10974         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10975         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10976         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10977         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10978         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10979         rest_of_handle_tracer, rest_of_handle_if_conversion,
10980         rest_of_handle_if_after_combine, rest_of_handle_web,
10981         rest_of_handle_branch_prob,
10982         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10983         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10984         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10985         rest_of_handle_null_pointer, rest_of_handle_combine,
10986         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10987         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10988         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10989         (decode_d_option): Use enable_rtl_dump_file.
10990         (compile_file, finalize, do_compile): Move profile+combine+graph
10991         cleanup to finish_optimization_passes.
10992         * toplev.h (init_optimization_passes, finish_optimization_passes,
10993         enable_rtl_dump_file): Declare.
10994
10995 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10996             Roger Sayle  <roger@eyesopen.com>
10997
10998         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10999         operands to build a tree with swapped operands.
11000         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11001         'unsignedp' predicate to specify the signedness.
11002
11003 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11004
11005         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11006         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11007         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11008         comment typos and formatting.  Follow spelling conventions.
11009
11010 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
11011
11012         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11013         fix_truncsfsi2.
11014
11015         * config/rs6000/spe.md: Delete spe_efsctuiz.
11016         Add spe_fixuns_truncsfsi2.
11017         Add spe_fix_truncsfsi2.
11018
11019 2004-02-26  Eric Christopher  <echristo@redhat.com>
11020
11021         * c-lex.c (c_lex_string_translate): New variable.
11022         (lex_string): Use to determine string translation.
11023         * c-pragma.h: Prototype.
11024         * c-parse.in (start_string_translation): New. Set above.
11025         (stop_string_translation): Ditto.
11026         (attribute, attribute_list, asm_def, asm_stmt,
11027         asm_operand): Use above functions.
11028         * cp/parser.c (cp_parser_declaration): Translate strings
11029         unless token is RID_EXTERN. Set c_lex_string_translate
11030         for recursive use.
11031         (cp_parser_asm_definition): Only translate argument strings
11032         to asms.
11033         (cp_parser_asm_operand_list): Ditto.
11034         (cp_parser_attribute_list): Do not translate attribute strings.
11035
11036 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11037
11038         * stmt.c (expand_start_case_dummy): Remove.
11039         * tree.h: Remove the corresponding prototype.
11040
11041 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11042
11043         * builtins.c (apply_args_register_offset): Remove.
11044         * tree.h: Remove the corresponding prototype.
11045
11046 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11047
11048         * stor-layout.c (is_pending_size): Remove.
11049         * tree.h: Remove the corresponding prototype.
11050
11051 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11052
11053         * recog.c (validate_replace_src): Remove.
11054         * recog.h: Remove the corresponding prototype.
11055
11056 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11057
11058         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11059         MAYBE_REG_PARM_STACK_SPACE.
11060         * function.c: Likewise.
11061         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11062         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11063         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11064         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11065
11066 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11067
11068         * c-decl.c (c_expand_deferred_function): Remove.
11069         * c-tree.h: Remove the corresponding prototype.
11070
11071 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
11072
11073         * postreload.c (reload_cse_move2add): Generate just a PLUS
11074         instead of an entire SET.
11075
11076 2004-02-26  Jan Hubicka  <jh@suse.cz>
11077
11078         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11079         /pentium4m.
11080         * i386.c (override_options): Add support for new CPUs.
11081         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11082         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11083         constants.
11084         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11085
11086 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
11087
11088         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11089
11090 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
11091
11092         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11093         (sparc_emit_fixunsdi): New prototype.
11094         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11095         (sparc_emit_fixunsdi): New function.
11096         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11097         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
11098         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
11099         to sparc_emit_floatunsdi.
11100         (fixuns_truncsfdi2): New expander.
11101         (fixuns_truncdfdi2): Likewise.
11102
11103 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
11104
11105         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11106         unless HAVE_cc0.
11107
11108 2004-02-25  Richard Henderson  <rth@redhat.com>
11109
11110         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11111         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11112         use (op0-op1) == 0 if op0 is a pointer.
11113         * config/alpha/alpha.md (cmpdi): Use some_operand.
11114         (three comparison combine splits): Remove.
11115
11116 2004-02-25  Richard Henderson  <rth@redhat.com>
11117
11118         PR c/12794
11119         * c-common.c (handle_alias_attribute): Reject the attribute if
11120         current_function_decl is set.
11121
11122 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11123
11124         * config.gcc: Add comment describing extra_gcc_objs.
11125         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11126         * configure.ac (extra_gcc_objs): New substitution variable.
11127         (host_extra_gcc_objs): Don't substitute.
11128         * configure: Regenerate.
11129         * Makefile.in: Use extra_gcc_objs.
11130
11131 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
11132
11133         * doc/contrib.texi: Add an entry for myself.
11134
11135 2004-02-25  Jan Hubicka  <jh@suse.cz>
11136
11137         * basic-block.h (make_eh_edge, break_superblocks): Declare.
11138         * cfgbuild.c (make_eh_edge):  Make global.
11139         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11140         * except.c (build_post_landing_pads, connect_post_landing_pads,
11141         dw2_build_landing_pads, sjlj_emit_function_enter,
11142         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11143         sjlj_build_landing_pads): Update CFG.
11144         (emit_to_new_bb_before): New function.
11145         (finish_eh_generation): Do not rebuild the CFG.
11146
11147 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11148
11149         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11150         target_cpu_default defines.
11151         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11152         * pa.h (TARGET_DEFAULT): Likewise.
11153
11154 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
11155
11156         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11157         comparisons with regard to signedness.
11158
11159 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11160
11161         * arm.c (thumb_legitimize_address): New function.
11162         * arm-protos.h: Prototype it.
11163         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11164         (LEGITIMIZE_ADDRESS): Use it.
11165
11166 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11167
11168         * reload1.c (reload): Only spill eliminable register with multiple
11169         adjacent elimination alternatives if all alternatives fail.
11170
11171 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11172
11173         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11174         is -4095...+4095 inclusive.
11175
11176 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11177
11178         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11179         the bootstrap failure with Sun CC 5.4 and 5.5.
11180
11181 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11182
11183         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11184         which modifies NEWREG.
11185         (cse_condition_code_reg): Update the mode of CC_REG in
11186         CC_SRC_INSN on our own.
11187
11188 2004-02-24  Michael Matz  <matz@suse.de>
11189
11190         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11191         regparm attributes.
11192
11193 2004-02-24  Richard Henderson  <rth@redhat.com>
11194
11195         * toplev.c (dump_file_tbl): Rename from dump_file.
11196         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11197         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11198         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11199         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11200         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11201         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11202         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11203         s/rtl_dump_file/dump_file/g.
11204
11205 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11206
11207         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11208         (spe_fixuns_truncsfsi2): Delete.
11209
11210         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11211         (fixuns_truncsfsi2): Delete.
11212
11213 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11214
11215         PR/14240
11216         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11217
11218 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11219
11220         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11221
11222 2004-02-24  Jason Merrill  <jason@redhat.com>
11223
11224         * tree.c (check_qualified_type): New fn.
11225         (get_qualified_type): Use it.  If type already has the desired
11226         quals, just return it.
11227         * tree.h: Declare it.
11228
11229 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11230
11231         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11232         TARGET_SCHED_FINISH_GLOBAL): New macros.
11233
11234         * target.h (md_init_global, md_finish_global): Function
11235         declarations corresponding to new target macros.
11236
11237         * haifa-sched.c (sched_init, sched_finish): Allow target to
11238         call the new schedular hooks.
11239
11240         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11241         call to update_life_info.
11242
11243         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11244         flag_schedule_insns for SH4.
11245
11246         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11247         find_set_regmode_weight, find_insn_regmode_weight,
11248         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11249         sh_variable_issue, high_pressure, ready_reorder,
11250         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11251         functions used to throttle the insn movement in first
11252         scheduling pass for SH.
11253
11254         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11255         TARGET_SCHED_FINISH_GLOBAL.
11256
11257 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11258
11259         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11260         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11261         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11262         symbols in sections named by the user.
11263         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11264         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11265         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11266         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11267         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11268         the above.
11269         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11270         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11271         one more pseudo to further improve code generation.
11272         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11273         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11274         inside UNSPEC.
11275         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11276         * config/frv/frv.c (frv_legitimate_address_p): Added
11277         allow_double_reg_p argument.  Adjust all callers.  Use it to
11278         decide whether to enable double-register indirect addressing.
11279         (frv_funcdesc_alias_set): Remove.
11280         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11281         register.  Emit movdi_ldd.
11282         (ldd_address_operand): New.
11283         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11284         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11285         (PREDICATE_CODES): Add ldd_address_operand.
11286         * config/frv/frv.md (movdi_ldd): New.
11287         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11288         intermediate computations if possible.
11289         (symGOTOFF2reg_i): Fix harmless typo.
11290         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11291         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11292         relocated p_vaddr to vaddr type.
11293         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11294         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11295         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11296         MEM, or use a funcdesc alias set.  Use regular move instead of
11297         ldd.
11298         (dbl_memory_one_insn_operand): Recognize function descriptors by
11299         type or by alias set, and don't split them.
11300         * config/frv/frv.md (call, call_value): Never use call_internal
11301         for fdpic.
11302         (call_internal, call_value_internal): Never match for FDPIC.
11303         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11304         call_value_fdpicsi): Require FDPIC.
11305         (ldd): Removed.
11306         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11307         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11308         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11309         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11310         FDPIC.  Compute data base address.
11311         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11312         before the other self-specs are processed.
11313         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11314         Build with -fPIC.
11315         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11316         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11317         inhibit_libc is defined.
11318         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11319         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11320         __FRV_FDPIC__.
11321         (__RELOC_POINTER): Define.
11322         (_Unwind_IteratePhdrCallback): Use it.
11323         * config/frv/frv.h (Twrite): Define.
11324         (TRANSFER_FROM_TRAMPOLINE): Use it.
11325         * config/frv/linux.h (INVOKE__main): Undefine.
11326         (Twrite): Override.
11327         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11328         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11329         (-mlibrary-pic): Emphasize that this option generates EABI code.
11330         (-mcpu): Add fr550.
11331         (-mpack): Remove.
11332         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11333         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11334         and CONSTs in FDPIC mode.
11335         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11336         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11337         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11338         constants.
11339         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11340         rather than 'i' constraint for the 2-instruction alternative.
11341         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11342         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11343         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11344         EXTRA_CONSTRAINT_FOR_Y.
11345         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11346         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11347         (addsi3): Change 'Y' constraint to 'Q'.
11348         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11349         * reload.c (CONST_POOL_OK_P): New macro.
11350         (find_reloads): Use it to decide whether a constant can be forced
11351         into memory.
11352         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11353         constant satisfies got12_operand.
11354         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11355         (frv_legitimate_address_p): Check for valid unspec offsets using
11356         got12_operand rather than frv_legitimate_fdpic_operand_p.
11357         (frv_legitimate_fdpic_operand_p): Delete.
11358         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11359         or after reload.
11360         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11361         TARGET_FDPIC.
11362         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11363         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11364         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11365         (frv_fdpic_fptr_operand): Don't declare here.
11366         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11367         rather than fdpic_got12_operand.
11368         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11369         got12_operand and const_unspec_operand.
11370         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11371         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11372         (symbolic_operand): Remove.
11373         (const_unspec_operand): New predicate.
11374         * config/frv/frv.md (*movsi_got): Use got12_operand.
11375         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11376         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11377         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11378         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11379         * config/frv/frv.c (frv_unspec): New structure.
11380         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11381         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11382         validate CONST indices.  Use frv_output_const_unspec to print them.
11383         (frv_print_operand): Update call to unspec_got_name.  Use
11384         frv_output_const_unspec to print constant unspecs.
11385         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11386         Reject UNSPECs otherwise.
11387         (unspec_got_name): Take the relocation number as argument, not an
11388         rtx containing it.
11389         (frv_output_addr_const_extra): Remove, replacing with...
11390         (frv_output_const_unspec): ...this new function.
11391         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11392         (gpr_or_int12_operand): Use fdpic_got12_operand.
11393         (dbl_memory_one_insn_operand): Likewise.
11394         (fdpic_got12_operand): Use frv_const_unspec_p.
11395         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11396         are already legitimate.  Use frv_small_data_reloc_p when deciding
11397         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11398         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11399         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11400         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11401         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11402         label, for real this time.
11403         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11404         representation of visibility.
11405         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11406         such.
11407         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11408         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11409         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11410         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11411         it was explicitly disabled.
11412         (frv_stack_info): There is no need to save the link register in every
11413         frame unless TARGET_LINKED_FP is true.
11414         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11415         frame pointer if the stack pointer might change value.
11416         (frv_return_addr_rtx): Check and process "count" argument.
11417         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11418         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11419         (frv_find_base_term): Declare.
11420         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11421         (FIND_BASE_TERM): Define.
11422         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11423         small_data_register_operand, small_data_symbolic_operand.  Add
11424         symbolic_operand.
11425         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11426         (frv_print_operand_memory_reference, output_move_single): Remove
11427         special handling for unlegitimized sdata addresses.
11428         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11429         and symbolic addresses.
11430         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11431         (frv_find_base_term): New function.
11432         (int_2word_operand): Check specifically for symbolic address constants.
11433         (pic_register_operand, pic_symbolic_operand): Delete.
11434         (small_data_register_operand, small_data_symbolic_operand): Delete.
11435         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11436         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11437         (move_source_operand): Only accept CONSTs if they're a two-insn
11438         symbolic constant.
11439         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11440         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11441         using gen_symGOTOFF2reg*.
11442         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11443         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11444         themselves a cost of 3 insns.
11445         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11446         Change predicate to symbolic_operand.
11447         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11448         (*movsi_lda_sdata): Delete.
11449         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11450         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11451         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11452         frv-*-*linux*.
11453         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11454         label.
11455         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11456         -multilib-library-pic.
11457         (LINK_SPEC): Add -z text for -mfdpic.
11458         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11459         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11460         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11461         Override.
11462         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11463         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11464         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11465         crtstuff-generated files.
11466         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11467         * config.gcc: Add frv-*-*linux*.
11468         * config/frv/linux.h, config/frv/t-linux: New.
11469         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11470         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11471         when -mfdpic even if a linker script is explicitly listed.
11472         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11473         * config/frv/frv.c (frv_override_options): Clear asm_out
11474         unaligned_op for SImode on FDPIC.
11475         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11476         argument passed to decl_readonly_section.
11477         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11478         whole block run with FDPIC even with -fno-PIC.
11479         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11480         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11481         symbol or label plus offset to memory.
11482         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11483         GOTOFF and GPREL for LABEL_REF.
11484         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11485         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11486         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11487         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11488         * doc/invoke.texi: Document them.
11489         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11490         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11491         (frv_splittable_got_operand): Removed.
11492         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11493         LO_SUM.  Add comments.
11494         (frv_override_options): Moved enabling of FDPIC to
11495         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11496         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11497         (frv_legitimize_fdpic_address): Don't duplicate logic in
11498         frv_emit_movsi.
11499         (frv_gen_GPsym2reg): New.
11500         (unspec_got_name): Added gprel.
11501         (frv_expand_fdpic_call): Add support for inlining PLTs.
11502         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11503         (gpr_or_int12_operand): Added GPREL12.
11504         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11505         (small_data_symbolic_operand): Fail if FDPIC.
11506         (fdpic_splittable_got_operand): Removed.
11507         (fdpic_got12_operand): Added GPREL12.
11508         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11509         when appropriate.  Fix sdata GOTOFF.
11510         (frv_legitimate_constant_p): Require legitimate PIC operand for
11511         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11512         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11513         flag_pic case.
11514         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11515         frv_assemble_integer fails.
11516         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11517         (SUBTARGET_DRIVER_SELF_SPECS): New.
11518         (ASM_SPEC): Don't pass -mno-fdpic.
11519         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11520         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11521         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11522         -multilib-library-pic.
11523         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11524         condexec_si_media_operator, condexec_sf_add_operator and
11525         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11526         and condexec_sf_unary_operator.
11527         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11528         New.
11529         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11530         movsi_internal.  Give them internal names.  movsi_got has type
11531         int.
11532         (fdpic got splitters): Remove.
11533         (symGPREL2reg, symGPREL2reg_hilo): New.
11534         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11535         to -mlibrary-pic.  Map -multilib-library-pic to it.
11536         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11537         Document.
11538         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11539         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11540         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11541         (frv_cannot_force_const_mem): New function.
11542         (const_small_data_p, plus_small_data_p): Update comments on sdata
11543         on FDPIC.
11544         (frv_override_options): Set flag_pie for FDPIC too.
11545         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11546         call-saved registers on FDPIC.
11547         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11548         don't force LR to be preserved.
11549         (frv_expand_prologue): Likewise.
11550         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11551         (frv_frame_pointer_required): Don't force it just because the
11552         FDPIC register is used.
11553         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11554         operand only if !condexec_p.
11555         (frv_legitimize_address): Return the FDPIC-legitimized address.
11556         Don't match small data here on FDPIC.
11557         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11558         symbols.  Use TRUE/FALSE instead of 1/0.
11559         (frv_local_funcdesc_p): New.
11560         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11561         immediates when possible.
11562         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11563         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11564         an UNSPEC_GOT.
11565         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11566         12-bit immediates when possible.
11567         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11568         are not legitimate pic operands.
11569         (frv_in_small_data_p): Re-enable for FDPIC.
11570         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11571         (FRV_GLOBAL_P): Removed.
11572         * config/frv/frv.md: Add modes to CONSTs.
11573         (movsi_got): New.
11574         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11575         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11576         (fdpic splittable operations): Match on flag_pic != 1.
11577         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11578         * config/frv/frv.c (frv_asm_out_constructor,
11579         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11580         bytes, not bits.
11581         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11582         * config/frv/frv.c (frv_assemble_integer): Reject complex
11583         expressions referencing function SYMBOL_REFs.
11584         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11585         (move_source_operand): Reject CONSTs that reference function
11586         SYMBOL_REFs on FDPIC.
11587         (frv_emit_movsi): If we get such a CONST, break it up.
11588         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11589         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11590         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11591         MEM.
11592         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11593         (frv_trampoline_size): Increase for FDPIC.
11594         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11595         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11596         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11597         Disable use of GOTOFF for now.
11598         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11599         Disable use of small data in FDPIC for now.
11600         (frv_asm_output_mi_thunk): Implement for FDPIC.
11601         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11602         * config/frv/frv.c (frv_asm_out_constructor): Use
11603         frv_assemble_integer for FDPIC pointers.
11604         (frv_asm_out_destructor): Likewise.
11605         * config/frv/frv.md (ldd): Fix order of operands.  Use
11606         address_operand for input.
11607         2003-09-18  DJ Delorie  <dj@redhat.com>
11608         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11609         (unspec_got_name): Correct typo.
11610         (frv_emit_movsi): Pre-expand splittable GOTs.
11611         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11612         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11613         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11614         * config/frv/t-frv: Add -mfdpic multilibs.
11615         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11616         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11617         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11618         flag_pic, default to 32-bit pics, require DWORD ops.
11619         (frv_override_options): Add W and Z constraints.
11620         (frv_expand_prologue): No pic prologue for -mfdpic.
11621         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11622         (frv_print_operand_memory_reference): Handle GOT constants.
11623         (frv_legitimate_address_p): Allow GOT constants.
11624         (frv_legitimize_address): Handle GOT addresses too.
11625         (frv_legitimate_fdpic_operand_p): New.
11626         (frv_legitimize_fdpic_address): New.
11627         (unspec_got_name): New.
11628         (frv_output_addr_const_extra): New.
11629         (frv_expand_fdpic_call): New.
11630         (frv_fdpic_fptr_operand): New.
11631         (gpr_or_int12_operand): Handle GOT operands.
11632         (int_2word_operand): Handle GOT operands.
11633         (fdpic_operand): New.
11634         (fdpic_splittable_got_operand): New.
11635         (fdpic_got12_operand): New.
11636         (frv_emit_movsi): Handle GOT operands.
11637         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11638         (frv_print_operand): Support 'g' code for GOT operands.
11639         * config/frv/frv-protos.h: Add prototypes as needed.
11640         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11641         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11642         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11643         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11644         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11645         R_FRV_GOTOFFLO): New.
11646         (movsi_high_got, movsi_lo_sum_got): New.
11647         (*movsi_pic): Don't use this splitter for -mfdpic.
11648         (addsi3): Allow GOT references also.
11649         (call, call_value): Handle -mfdpic separately.
11650         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11651         call_value_fdpicsi): New.
11652         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11653         symGOTOFF2reg_i): New.
11654         * config/frv/frv.h (MASK_FDPIC): New.
11655         (TARGET_FDPIC): New.
11656         (TARGET_SWITCHES): Add -mfdpic.
11657         (FDPIC_FPTR_REGNO): New.
11658         (FDPIC_REGNO): New.
11659         (OUR_FDPIC_REG): New.
11660         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11661         FDPIC_CALL_REGS.
11662         (REG_CLASS_NAMES): Likewise.
11663         (REG_CLASS_CONTENTS): Likewise.
11664         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11665         (EXTRA_CONSTRAINT): Add it here.
11666         (FRV_GLOBAL_P): New.
11667         (OUTPUT_ADDR_CONST_EXTRA): New.
11668
11669 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11670
11671         * config/sparc/sparc.h: Remove commented-out definitions of
11672         TARGET_EDOM and GEN_ERRNO_RTX.
11673
11674 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11675
11676         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11677         df_analyse with df_analyze.
11678
11679 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11680
11681         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11682         beginning of block.
11683
11684 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11685
11686         * calls.c (precompute_arguments): Update comment.
11687
11688 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11689
11690         * et-forest.c: Replace et_occurences with et_occurrences.
11691
11692 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11693
11694         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11695         with iv_analyze.
11696
11697 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11698
11699         * config/i386/i386.c: Rename pni to sse3.
11700         * config/i386/i386.h: Likewise.
11701         * config/i386/i386.md: Likewise.
11702         * config/i386/pmmintrin.h: Likewise.
11703         * doc/extend.texi: Likewise.
11704         * doc/invoke.texi: Likewise.
11705
11706 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11707             Kazu Hirata  <kazu@cs.umass.edu>
11708
11709         Remove -fwritable-strings.
11710         * c-common.c (fix_string_type): Don't check
11711         flag_writable_strings.
11712         (fix_string_type): Likewise.
11713         * c-opts.c (set_std_c89): Don't initialize
11714         flag_writable_strings.
11715         (set_std_c99): Likewise.
11716         * common.opt (fwritable-strings): Remove.
11717         * flags.h: Remove the external declaration of
11718         flag_writable_strings.
11719         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11720         Remove.
11721         * toplev.c (flag_writable_strings): Remove.
11722         (f_options): Remove an entry for writable-strings.
11723         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11724         flag_writable_strings.
11725         (compare_constant) <STRING_CST>: Likewise.
11726         (build_constant_desc): Likewise.
11727         * config/darwin.c (machopic_select_section): Likewise.
11728         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11729         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11730         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11731         * config/mips/mips.c (mips_select_section): Likewise.
11732         (mips_encode_section_info): Likewise.
11733         * config/pa/pa.c (pa_select_section): Likewise.
11734         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11735         * config/v850/v850.c (v850_select_section): Likewise.
11736         * doc/invoke.texi (-fwritable-strings): Remove.
11737         (-fno-const-strings): Don't mention -fwritable-strings.
11738         * doc/trouble.texi: Don't mention -fwritable-strings.
11739
11740 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11741
11742         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11743
11744 2004-02-23  Dale Johannesen  <dalej@apple.com>
11745
11746         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11747         (movdf_hardfloat64):  Ditto.
11748         (movdf_softfloat64):  Ditto.
11749
11750 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11751         * config/rs6000/rs6000.c (function_arg): call to
11752         rs6000_mixed_function_arg for DFmode moved to allow
11753         normal DFmode incoming register assignment.
11754
11755 2004-02-23  Dale Johannesen  <dalej@apple.com>
11756
11757         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11758         (movdf_hardfloat64):  Ditto.
11759
11760 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11761
11762         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11763         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11764         copyright.
11765
11766 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11767
11768         PR c/14156
11769         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11770         to use DECL_P instead.
11771
11772         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11773         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11774
11775 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11776
11777         * Makefile.in (opts.o): Depend on target.h.
11778         * opts.c (decode_options): Use targetm.default_short_enums
11779         instead of DEFAULT_SHORT_ENUMS.
11780         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11781         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11782         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11783         * target.h (gcc_target): Add default_short_enums.
11784         * config/cris/cris.h: Remove a comment about
11785         DEFAULT_SHORT_ENUMS.
11786         * config/ip2k/ip2k.h: Likewise.
11787         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11788         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11789
11790 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11791             Falk Hueffner  <falk@debian.org>
11792
11793         PR c/14188
11794         * builtins.c (expand_builtin_va_arg): Emit an informative message
11795         if a trap is generated.
11796         * c-typeck.c (build_function_call): Likewise.
11797
11798 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11799
11800         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11801         fopen.
11802         * libgcov.c: Include sys/stat.h.
11803         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11804         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11805         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11806         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11807
11808 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11809
11810         * reorg.c: Remove comments about dead ports.
11811
11812 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11813
11814         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11815         extra host object file when targetting cygwin rather than generic
11816         object files.
11817
11818 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11819
11820         Merge from tree-ssa:
11821         2003-11-20  Richard Henderson  <rth@redhat.com>
11822
11823                 * tree-inline.c (insert_decl_map): New.
11824                 (remap_decl, remap_type, remap_block, copy_body_r,
11825                 initialize_inlined_parameters, declare_return_variable,
11826                 remap_save_expr): Use it.
11827
11828         * function.c (copy_body_r): Add mapping from id->ret_label to
11829         id->ret_label.  Revert test for ret_label.
11830
11831 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11832
11833         * genoutput.c (process_template): Strip trailing whitespace in @
11834         templates and issue a warning if there was any.
11835
11836 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11837
11838         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11839         object file when targetting cygwin.
11840         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11841         overridden by top-level Makefile.
11842
11843 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11844
11845         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11846         the x87's load constant instructions when optimizing for size.
11847
11848 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11849
11850         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11851         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11852         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11853         * fold-const.c: Likewise.
11854         * simplify-rtx.c: Likewise.
11855
11856 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11857
11858         * combine.c (can_combine_p): Don't ignore SETs marked with
11859         REG_EH_REGION notes.
11860         (try_combine): When attemting to fix unrecognized insns, don't
11861         split a PARALLEL that contains the original i2.
11862
11863 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11864
11865         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11866         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11867         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11868         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11869         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11870         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11871         portion of header.
11872         (__altivec_link_error_invalid_argument): Remove prototype; will use
11873         __builtin_altivec_compiletime_error("vec_*") instead.
11874         (vec_*): Fix/complete set of available operation overloads given the
11875         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11876         cv-correctness of pointer arguments; in C, always check for correct
11877         argument types before macro expansion.
11878         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11879         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11880         '-W[no-]altivec-long-deprecated' switches.
11881         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11882         '__vector', '__pixel' and '__bool' macros using
11883         '__attribute__((altivec(...)))' types.
11884         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11885         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11886         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11887         New type nodes.
11888         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11889         handling '-W[no-]altivec-long-deprecated'.
11890         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11891         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11892         altivec_expand_dst_builtin): Remove casts from integer literals.
11893         (altivec_expand_builtin): Likewise; handle expansion of new
11894         '__builtin_altivec_compiletime_error' function.
11895         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11896         types, and make them distinct from other vector types; register
11897         '__builtin_altivec_compiletime_error' function.
11898         (print_operand): For 'P', print a full target register name instead of
11899         merely its number.
11900         (rs6000_attribute_table): Add "altivec" attribute.
11901         (rs6000_handle_altivec_attribute): New function.
11902         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11903         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11904         maps to).
11905         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11906         declare.
11907         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11908
11909 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11910
11911         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11912         check.
11913         (shift_mix4left+2): Delete redundant pattern.
11914
11915 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11916
11917         * alias.c (OUTGOING_REGNO): Don't define the default.
11918         * builtins.c (OUTGOING_REGNO): Likewise.
11919         (INCOMING_REGNO): Likewise.
11920         (apply_args_register_offset): Always use OUTGOING_REGNO.
11921         * combine.c (OUTGOING_REGNO): Likewise.
11922         * sibcall.c (OUTGOING_REGNO): Likewise.
11923         * defaults.h (INCOMING_REGNO): Provide the default.
11924         (OUTGOING_REGNO): Likewise.
11925
11926 2004-02-21  Jan Hubicka  <jh@suse.cz>
11927
11928         * params.def (max-peeled-insns, max-completely-peeled-insns,
11929         max-once-peeled-insns): Set to 400.
11930
11931 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11932
11933         PR c++/12007
11934         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11935         are set for parameters before outputing debugging information.
11936
11937 2004-02-20  Falk Hueffner  <falk@debian.org>
11938
11939         PR target/14201
11940         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11941         numbers.
11942
11943 2004-02-20  Per Bothner  <per@bothner.com>
11944
11945         * input.h:  Don't #include line-map.h.  It may cause link problems
11946         with undefined linemap_line_start when line-map.h is included but
11947         line-map.o is not linked, as currently happens with gengtype on
11948         compilers that don't support inline.
11949         * toplev.c:  So we do have to explicitly #include line-map.h here.
11950
11951 2004-02-20  Richard Henderson  <rth@redhat.com>
11952
11953         * doc/invoke.texi: Add -Wvariadic-macros.
11954
11955 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11956
11957         * haifa-sched.c (sched_emit_insn): Remove.
11958         * sched-int.h: Remove the corresponding prototype.
11959
11960 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11961
11962         Revert:
11963         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11964         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11965         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11966         * config/cris/cris.h: Remove a comment about
11967         DEFAULT_SHORT_ENUMS.
11968         * config/ip2k/ip2k.h: Likewise.
11969         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11970
11971 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11972             Tom Tromey  <tromey@redhat.com>
11973
11974         * doc/install.texi: Moved --disable-libgcj and
11975         --with-system-zlib documentation to new section for
11976         Java-specific options.
11977         Added explicit Cross-Compiler-Specific Options subheading.
11978         Added section for Java-specific options.
11979
11980 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11981
11982         * doc/install.texi (Building the Ada compiler): Remove
11983         example.
11984
11985 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11986
11987         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11988
11989 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11990
11991         * gcc.c (process_command): Allow translation of the copyright
11992         symbol but not the rest of the copyright message.
11993         * gcov.c (print_version): Likewise.  Allow translation of the
11994         message about warranty.
11995
11996 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11997
11998         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11999         predicate.
12000         ("*andsi_clear"): Tweak constraints to not match postincrement.
12001         Adjust the predicate to exclude a volatile memory reference.
12002         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
12003         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12004
12005 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
12006
12007         * move-if-change: Remove.
12008         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12009         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12010         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12011         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12012         (s-gtyp-gen, s-iov): Use the top level move-if-change.
12013         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12014
12015 2004-02-19  James E Wilson  <wilson@specifixinc.com>
12016
12017         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12018         for operand2.  Add condition that requires register_operand operand2
12019         before reload.
12020
12021 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
12022             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12023
12024         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12025         * config/mips/mips.md: Expand comment above unaligned loads and stores.
12026
12027 2004-02-19  Richard Henderson  <rth@redhat.com>
12028
12029         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12030         * tree.c (build0, build1, build2, build3, build4): Split out from...
12031         (build): ... here.  Call them.
12032         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12033
12034         * convert.c (convert_to_integer): Remove extra build argument.
12035         * tree-inline.c (expand_call_inline): Likewise.
12036
12037 2004-02-19  Richard Henderson  <rth@redhat.com>
12038
12039         * c-opts.c (warn_variadic_macros): New.
12040         (c_common_handle_option): Set it.
12041         (sanitize_cpp_opts): Copy it to cpp_opts.
12042         * c.opt (Wvariadic-macros): New.
12043         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12044         * cppinit.c (cpp_create_reader): Initialize it.
12045         * cppmacro.c (parse_params): Check it.
12046
12047 2004-02-19  David Daney <ddaney@avtrex.com>
12048
12049         PR preprocessor/14198
12050         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12051         builtin_assert ("machine=mips")
12052
12053 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12054
12055         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12056         * system.h (DEFAULT_SHORT_ENUMS): Poison.
12057         * config/cris/cris.h: Remove a comment about
12058         DEFAULT_SHORT_ENUMS.
12059         * config/ip2k/ip2k.h: Likewise.
12060         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12061
12062 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12063
12064         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12065         when passing single SFmode quantities in general registers,
12066         put them in the high half.
12067
12068 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12069
12070         * doc/md.texi (Standard Names): Document additional dependency on
12071         fix pattern.
12072
12073         * optabs.c (ftruncify): Remove.
12074         (expand_fix): Manually inline ftruncify above.
12075         (can_fix_p): Add FIXME note.
12076
12077 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
12078
12079         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12080         spe_fixuns_truncsfsi2.
12081
12082         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12083         fixuns_truncsfsi2.
12084
12085 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
12086
12087         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12088         * testsuite/gcc.dg/20040219-1.c: New test.
12089
12090 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
12091
12092         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12093         "*subsf3_cconly"): Subtraction is not commutative.
12094
12095 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
12096
12097         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12098         (sdbout_symbol): If called before sdbout_init, queue DECL for
12099         later and return.
12100         (sdbout_init): Set sdbout_initialized true, process decls
12101         queued earlier by sdbout_symbol.
12102         (sdbout_finish): Use size_t for index variable.
12103
12104 2004-02-19  Jeff Law  <law@redhat.com>
12105
12106         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12107         for unordered comparison codes.
12108
12109 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
12110
12111         * reload1.c (reload): Correct comment.
12112         (scan_paradoxical_subregs): Remove #if 0 and old comment.
12113         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12114         register variables are not used by reload.
12115
12116 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
12117
12118         PR target/14209
12119         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12120         constraints to not match postincrement.  Adjust the predicate to
12121         exclude a volatile memory reference.
12122
12123 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12124
12125         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12126
12127 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12128
12129         * hooks.c (hook_void_tree_int): Remove.
12130         (hook_void_constcharptr): Likewise.
12131         (hook_int_void_0): Likewise.
12132         * hooks.h: Remove the prototypes for the above three
12133         functions.
12134         * targhooks.c (hook_bool_machine_mode_true): Remove.
12135         * targhooks.h: Remove the prototype for
12136         hook_bool_machine_mode_true.
12137
12138 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12139
12140         * emit-rtl.c (subreg_realpart_p): Remove.
12141         (reorder_insns_with_line_notes): Likewise.
12142         (end_full_sequence): Likewise.
12143         * rtl.h: Remove the prototype for the above functions.
12144
12145 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12146
12147         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12148         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12149         config/iq2000/iq2000.h, config/m32r/m32r.h,
12150         config/pdp11/pdp11.h, config/sparc/sparc.h,
12151         config/xtensa/xtensa.h: Remove commented-out or useless
12152         definitions of CASE_VECTOR_PC_RELATIVE.
12153
12154 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12155
12156         * loop.c (all_sets_invariant_p): Remove.
12157
12158 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12159
12160         PR target/12916
12161         * config/sparc/sparc.h (NPARM_REGS): Delete.
12162         (BASE_RETURN_VALUE_REG): Likewise.
12163         (BASE_OUTGOING_VALUE_REG): Likewise.
12164         (BASE_PASSING_ARG_REG): Likewise.
12165         (BASE_INCOMING_ARG_REG): Likewise.
12166         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12167         TARGET_ARCH64, not TARGET_V9.
12168         (function_arg_slotno): Dispatch based on the mode class.
12169         Handle vector modes like floating-point modes.
12170         (function_arg_record_value_1): Handle vector types like
12171         floating-point types.
12172         (function_arg_record_value_2): Likewise.
12173         Calculate regno after mode transformation.
12174         (function_arg): Handle vector modes like floating-point modes.
12175         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12176         If ARCH64, do not recheck alignment.
12177         (function_arg_pass_by_reference): Reorder the conditions.
12178         (sparc_return_in_memory): Move after function_arg_padding.
12179         Implement calling conventions for vector modes.
12180         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12181         (function_value): Move scope of 'regbase'.
12182         Implement calling conventions for vector modes.
12183         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12184         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12185         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12186         the argument is passed by reference.
12187         (sparc_type_code): Handle vector types.
12188
12189 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12190
12191         * function.c (assign_parms): When building decl_rtl for
12192         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12193
12194 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12195
12196         * expr.c (is_aligning_offset): Check if we are aligning the
12197         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12198         in bits.
12199
12200 2003-02-18  Matt Austern  <austern@apple.com>
12201
12202         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12203         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12204         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12205         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12206         spec string.
12207         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12208
12209 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12210
12211         * dwarf2out.c (loclabel_num): Move outside #ifdef
12212         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12213         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12214         Mark with GTY(()).
12215         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12216         Allocate memory with ggc_alloc.  No need to copy anything.
12217         (ia64_hpux_file_end): Update to match.
12218
12219 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12220
12221         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12222         by default.
12223
12224 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12225
12226         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12227         ("divmodtisi3"): Likewise.
12228         ("udivmoddi4", "udivmodtidi3"): Likewise.
12229         ("divmodsi4", "divmoddisi3"): Likewise.
12230         ("udivmodsi4", "udivmoddisi3"): Likewise.
12231         ("udivsi3", "umodsi3"): Likewise.
12232
12233 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12234
12235         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12236         placeholder insn when chunkifying the pool.
12237
12238 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12239
12240         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12241         generating PIC code.
12242
12243 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12244
12245         * config/h8300/h8300-protos.h: Add a prototype for
12246         h8300_expand_branch.
12247         * config/h8300/h8300.c (h8300_expand_branch): New.
12248         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12249         bgtu, beq, bne): Call h8300_expand_branch().
12250
12251 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12252
12253         * config/h8300/h8300-protos.h: Add prototypes for
12254         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12255         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12256         (h8300_hard_regno_mode_ok): Likewise.
12257         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12258         h8300_hard_regno_nregs().
12259         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12260
12261 2004-02-18  Per Bothner  <per@bothner.com>
12262
12263         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12264         partly reverts my 2003-10-01 change, because we're back to logically
12265         including <command line> inside the main line.
12266         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12267         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12268         Fixes PR preprocessor/14103.
12269
12270         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12271         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12272         (cpp_push_include):  Don't need to increment pfile's line field.
12273         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12274
12275         * c-ppoutput.c (print struct):  New first_time field.
12276         (init_pp_output):  Set print.first_time.
12277         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12278         which is set also for (say) <command line>.  Clear print.first_time.
12279
12280         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12281         does not match the code, so fix both.
12282         (should_stack_file):  Inline include_pch_p function.
12283         (include_pch_p):  Remove pointless function.
12284
12285         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12286
12287 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12288
12289         * config/h8300/h8300.md (four define_peephole2's): Use
12290         h8300_regs_ok_for_stm().
12291
12292 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12293
12294         * config/h8300/h8300-protos.h: Update the prototype for
12295         expand_a_rotate().
12296         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12297         argument.
12298         * config/h8300/h8300.md: Update all callers.
12299
12300 2004-02-18  Jan Hubicka  <jh@suse.cz>
12301
12302         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12303         floats.
12304         (simplify_binary_operation): Deal with logicals on floats.
12305
12306         * i386.md (SSE fabs splitters): Emit new patterns.
12307         (SSE cmov splitters): Likewise.
12308         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12309         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12310         subregs.
12311         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12312         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12313
12314 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12315
12316         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12317         by hand.
12318         (output_a_rotate): Tweak a comment.
12319         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12320         (*rotlhi3_1): Change to rotlhi3_1.
12321         (*rotlsi3_1): Change to rotlsi3_1.
12322
12323 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12324
12325         PR target/13866
12326         * arm.c (load_multiple_operation): Don't insist that the source reg
12327         of a post-increment component is the same as the destination.
12328         (store_multiple_operation): Likewise.
12329
12330 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12331
12332         * config/h8300/h8300.md: Move movsf patterns into one section
12333         of the file.
12334
12335 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12336
12337         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12338         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12339         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12340         config/mips/linux64.h, config/pa/pa-64.h,
12341         config/rs6000/aix51.h, config/rs6000/aix52.h,
12342         config/rs6000/spe.md, config/sparc/linux.h,
12343         config/sparc/linux64.h: Update copyright.
12344
12345 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12346
12347         * config/h8300/h8300.md: Move push patterns into one
12348         section of the file.
12349
12350 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12351
12352         PR c++/11326
12353         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12354         fntype.
12355
12356 2004-02-18  Paul Brook  <paul@codesourcery.com>
12357
12358         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12359
12360 2004-02-18  Paul Brook  <paul@codesourcery.com>
12361
12362         PR debug/12934
12363         * dwarf2out.c (loc_descriptor_from_tree): Handle
12364         EXPR_WITH_FILE_LOCATION.
12365
12366 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12367
12368         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12369         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12370         trailing whitespace from instructions.
12371
12372 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12373
12374         * configure.ac: When generating auto-build.h, pass
12375         --enable-languages to the sub-configure.
12376         Put quotes around ${program_transform_name} when generating
12377         name of as, ld, nm, objdump.
12378         * configure: Regenerate.
12379
12380 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12381
12382         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12383         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12384         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12385         (s-preds, s-iov): Do not depend on move-if-change.
12386
12387 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12388
12389         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12390         (insert_save): Likewise.
12391
12392 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12393
12394         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12395         warning.
12396
12397 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12398
12399         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12400         *one_cmplsi2_h8300.
12401         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12402
12403 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12404
12405         * config/h8300/h8300-protos.h: Update the prototype of
12406         fix_bit_operand().
12407         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12408         argument "what".
12409         * config/h8300/h8300.md: Update all callers.
12410
12411 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12412
12413         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12414         the last argument to "code" from "type".
12415
12416 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12417
12418         * config/h8300/h8300.c: Remove an extern declaration of
12419         rtx_equal_function_value_matters.
12420
12421 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12422
12423         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12424         by hand.
12425         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12426         (*iorqi3_1): Change to iorqi3_1.
12427         (*xorqi3_1): Change to xorqi3_1.
12428
12429 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12430
12431         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12432         typos.
12433
12434 2004-02-17  Jan Hubicka  <jh@suse.cz>
12435
12436         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12437
12438 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12439
12440         PR optimization/14119
12441         * combine.c (try_combine): When attemting to fix unrecognized insns,
12442         don't delete SETs marked with REG_EH_REGION notes.
12443
12444 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12445
12446         * combine.c (simplify_if_then_else): Do not replace
12447         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12448         modes differ.
12449
12450 2004-02017  Steven Bosscher  <stevenb@suse.de>
12451
12452         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12453         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12454         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12455         * ada/utils.c: Likewise.
12456         * cp/decl.c: Likewise.
12457         * f/com.c: Likewise.
12458         * java/class.c: Likewise.
12459
12460 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12461
12462         * config/h8300/h8300.md: Fix comment typos.
12463
12464 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12465
12466         * config/mips/t-iris6gld: Renamed to ...
12467         * config/mips/t-irix-gld: ... this.
12468         * config.gcc (mips-sgi-irix6*): Reflect this
12469         (mips-sgi-irix5*): Use it with GNU ld.
12470
12471         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12472         to ...
12473         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12474         * config/mips/t-irix-gld: Reflect this.
12475         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12476
12477         * config/mips/iris5gld.h: New file.
12478         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12479         Only use collect2 without gas.
12480
12481         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12482         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12483         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12484         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12485
12486         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12487         * config/mips/iris5.h: ... here.
12488
12489         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12490         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12491         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12492
12493         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12494         using irix_startfile_spec, irix_endfile_spec.
12495
12496 2004-02-16  Gunther Nikl  <gni@gecko.de>
12497
12498         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12499
12500 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12501
12502         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12503         insns by hand.
12504
12505 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12506
12507         * cfghooks.c (split_edge): Speed up updating of dominators.
12508
12509 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12510
12511         PR c++/11326
12512         * c-common.c (flag_abi_version): Remove.
12513         * c-common.h (flag_abi_version): Likewise.
12514         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12515         * c.opt (fabi-version): Remove.
12516         * calls.c (expand_call): Always pass a function type to
12517         struct_value_rtx.  Use convert_memory_address.
12518         * common.opt (fabi-version): Add it.
12519         * flags.h (flag_abi_version): Likewise.
12520         (abi_version_at_least): New macro.
12521         * opts.c (common_handle_option): Add OPT_fabi_version.
12522         * toplev.c (flag_abi_version): Define it.
12523         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12524         New function.
12525         (ia64_output_mi_thunk): Use it.
12526         (ia64_struct_value_rtx): Likewise.
12527
12528 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12529
12530         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12531         Don't generate insns by hand.
12532
12533 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12534
12535         PR c++/14178
12536         * doc/invoke.texi (fabi-version): The default is 2 now.
12537
12538 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12539
12540         * loop-iv.c: New file.
12541         * Makefile.in (loop-iv.o): New.
12542         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12543         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12544         num_loop_branches): New functions.
12545         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12546         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12547         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12548         get_simple_loop_desc, free_simple_loop_desc): Declare.
12549         (simple_loop_desc): New inline function.
12550         (struct rtx_iv, struct niter_desc): New.
12551         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12552         * expr.c (force_operand): Handle subregs of expressions created by
12553         loop unroller.
12554         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12555         parts of the initialization to toplev.c
12556         * loop-unroll.c (loop_exit_at_end_p): New.
12557         (unroll_and_peel_loops): Call iv_analysis_done.
12558         (decide_peel_once_rolling, decide_peel_completely,
12559         decide_unroll_stupid, decide_unroll_constant_iterations,
12560         decide_unroll_runtime_iterations, decide_peel_simple,
12561         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12562         unroll_loop_runtime_iterations): Use new simple loop analysis.
12563         * loop-unswitch.c (compare_and_jump_seq): New.
12564         (may_unswitch_on_p): Renamed to ...
12565         (may_unswitch_on): Use new iv analysis.
12566         (reversed_condition): Export.
12567         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12568         * predict.c (estimate_probability): Use new simple loop analysis.
12569         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12570         canon_condition, simplify_using_condition): Declare.
12571         * stor-layout.c (get_mode_bounds): New.
12572         * toplev.c (rest_of_handle_loop2): Some parts of
12573         initialization/finalization moved here from loop-init.c.
12574
12575 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12576
12577         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12578         pointer.
12579         (CALL_USED_REGISTERS): Likewise.
12580         (REG_ALLOC_ORDER): Likewise.
12581         (REG_CLASS) <GENERAL_REGS>: Likewise.
12582
12583 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12584
12585         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12586         in associative operators.
12587         * rtlanal.c (commutative_operand_precedence): Create some new
12588         variables.  Prefer a commutative operand on the left, then
12589         binary expressions, then NEG and NOT.
12590
12591 2004-02-16  Matthias Klose  <doko@debian.org>
12592
12593         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12594         in terms of SHLIB_SOVERSION.
12595         * config/m68k/t-slibgcc-elf-ver: New file.
12596         * config/pa/t-slibgcc-elf-ver: New file.
12597         * config.gcc (m68k-linux, parisc-linux): Use them when not
12598         sjlj exceptions are not configured.
12599
12600 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12601
12602         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12603
12604 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12605
12606         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12607
12608 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12609
12610         * doc/sourcebuild.texi: Mention backends.html.
12611
12612 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12613
12614         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12615         line-map.c, line-map.h, var-tracking.c: Fix comment
12616         formatting.
12617
12618 2004-02-16  Richard Henderson  <rth@redhat.com>
12619
12620         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12621
12622         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12623
12624 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12625
12626         * config/h8300/h8300.md: Remove unnecessary parallels from
12627         all define_insn and define_split patterns.
12628
12629 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12630
12631         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12632         "clobber").
12633
12634 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12635
12636         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12637         '%#'.
12638
12639 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12640
12641         * config/ia64/ia64.c, config/mips/mips.c,
12642         config/mmix/mmix-modes.def: Fix comment typos.
12643
12644 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12645
12646         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12647         (get_directive_line): Remove unused function prototype.
12648
12649 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12650
12651         * tree-inline.c (copy_body_r): Do not replace ret_label.
12652
12653 2004-02-14  Jan Hubicka  <jh@suse.cz>
12654
12655         * i386.c (x86_four_jump_limit): New variable.
12656         (k8_avoid_jump_misspredicts): Rename to ...
12657         (ix86_avoid_jump_misspredicts): .. this one.
12658         (ix86_pad_returns): Break out from ...
12659         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12660         to.
12661         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12662
12663 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12664
12665         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12666         PARALLEL is NULL.
12667
12668 2004-02-14  Per Bothner  <per@bothner.com>
12669
12670         * fix-header.c (line_table):  Move local variable in main to global.
12671         * scan.h (line_table):  Use it.
12672         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12673         line (recently renamed to src_loc) before calling recognized_function.
12674
12675 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12676
12677         * Makefile.in: Fix comment typos.
12678
12679 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12680
12681         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12682         for start_value when it is directly moved into reg, and factorize
12683         the retrieval of GET_MODE (reg).
12684
12685 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12686
12687         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12688         (mips_load_got_global): Delete.
12689         (mips_gotoff_page): Declare.
12690         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12691         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12692         UNSPEC_LOAD_GOT pattern rather than a MEM.
12693         (*load_got[sd]i): New patterns.
12694         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12695         (mips_load_got_page, mips_load_got_global): Delete.
12696         (mips_gotoff_page): New function.
12697         (override_options): Don't initialize mips_got_alias_set.
12698
12699 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12700
12701         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12702         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12703         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12704         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12705         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12706         * config/mips/mips.c: Fix some overly-long lines.
12707         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12708         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12709
12710 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12711
12712         * configure.ac: Search for as, ld below libexec/gcc.
12713         * configure: Regenerate.
12714
12715 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12716
12717         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12718         __builtin_arm_setwcx ().
12719         * config/arm/arm.c (arm_expand_builtin): Generate operands
12720         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12721
12722 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12723
12724         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12725         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12726         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12727         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12728         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12729         (_mm_mulhi_pu16): Likewise.
12730
12731 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12732
12733         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12734         DECL_NAME != 0 before dereferencing.
12735
12736 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12737
12738         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12739         (s390_output_addr_const_extra): Declare.
12740         (s390_output_pool_entry): Remove FILE * argument.
12741         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12742         (s390_output_addr_const_extra): New function.
12743         (print_operand_address): Call output_addr_const instead of
12744         s390_output_symbolic_const.
12745         (print_operand): Likewise.
12746         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12747         Remove FILE * argument.
12748         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12749         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12750         call.
12751
12752 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12753
12754         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12755         (struct edge, struct vertex, struct graph): New.
12756         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12757         free_graph): New functions.
12758
12759 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12760
12761         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12762         Use ".set macro" to avoid warnings about multi-instruction
12763         macros, since they're intentional.
12764
12765 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12766
12767         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12768         comment about STANDARD_EXEC_PREFIX.
12769
12770         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12771         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12772         for installing .1 manpages.  Add rules for installing cpp
12773         and gcov manpages under their installed names.
12774
12775 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12776
12777         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12778         host, but try LD_FOR_TARGET first.
12779         * configure: Rebuilt.
12780
12781 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12782
12783         * dbxout.c: Move declaration of dbxout_type_decl outside
12784         #ifdef DBX_DEBUGGING_INFO.
12785         * c-parse.in: Don't give the asmdef production a type.
12786
12787 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12788
12789         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12790         (debug_nothing_tree_int): Prototype.
12791         (dwarf_debug_hooks): Delete, unused.
12792         * debug.c (do_nothing_debug_hooks): Update.
12793         (debug_nothing_tree_int): New function.
12794         * langhooks.h (struct lang_hooks_for_decls):
12795         Remove builtin_type_decls field.
12796         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12797         (LANG_HOOKS_DECLS): Update.
12798         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12799         Use debug_hooks->type_decl.
12800         * dbxout.c (preinit_symbols): New static.
12801         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12802         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12803         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12804         for symbols to output.
12805         (dbxout_type_decl): New function.
12806         (dbxout_symbol): If called before dbxout_init has run, queue
12807         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12808         to TYPE_DECLs before emitting them.
12809         * xcoffout.c (assign_type_number): Delete.
12810         (xcoff_type_numbers): New static table.
12811         (xcoff_assign_fundamental_type_number): New function.
12812         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12813         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12814         * sdbout.c: Include varray.h.
12815         (deferred_global_decls): New static.
12816         (sdb_debug_hooks): Update.
12817         (sdbout_global_decl): If we can't emit something right now,
12818         remember it in deferred_global_decls.
12819         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12820         (sdbout_init): Initialize deferred_global_decls.
12821         * Makefile.in: Update dependencies of sdbout.o.
12822         * dwarf2out.c (dwarf2out_type_decl): New function.
12823         (dwarf2_debug_hooks): Update.
12824         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12825         * c-decl.c (getdecls): Just return 0.
12826         (check_for_loop_decls): Don't use getdecls.
12827         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12828         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12829
12830 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12831
12832         * config/s390/s390.c (s390_sched_reorder2): Remove.
12833         (TARGET_SCHED_REORDER2): Do not redefine.
12834
12835 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12836
12837         * c-parse.in (maybe_type_qual): Delete.
12838         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12839         (asm_argument): New grammar rules.
12840         (extdef_1): Use asmdef.
12841         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12842         (xexpr): Move up with other expression rules.
12843         (stmt): Use asm_stmt.
12844
12845         * c-typeck.c (build_asm_expr): New function - body mostly
12846         pulled from build_asm_stmt.
12847         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12848         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12849
12850 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12851
12852         PR bootstrap/13617
12853         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12854         (mips_declare_object): Make variadic.
12855         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12856         mips_output_aligned_decl_common.
12857         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12858         (mips_declare_object): Make variadic.
12859
12860 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12861
12862         * function.c (update_epilogue_consts): Teach about binary operations.
12863
12864         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12865         previous MEM_VOLATILE in REF.
12866         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12867         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12868
12869 2004-02-12  Gunther Nikl  <gni@gecko.de>
12870
12871         * config.gcc: Restore support for m68k-openbsd.
12872
12873 2004-02-12  Jan Hubicka  <jh@suse.cz>
12874
12875         * tree-optimize.c (tree_rest_of_compilation): Do not release
12876         DECL_ARGUMENTS.
12877
12878 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12879
12880         * doc/install.texi: Fix the spelling of "explicitly".
12881
12882 2004-02-11  Eric Christopher  <echristo@redhat.com>
12883
12884         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12885         duplicate argument structure of cpp_interpret_string.
12886         * cpphash.h: Move prototype...
12887         * cpplib.h: Here.
12888         * cpplib.c: Fix calls to match new function signature.
12889
12890 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12891
12892         PR c/456
12893         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12894         constant expressions at all outside C99 mode if pedantic.
12895
12896 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12897
12898         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12899         (log10_optab, log2_optab): Define corresponding macros.
12900         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12901         * genopinit.c (optabs): Implement log10_optab and log2_optab
12902         using log10?f2 and log2?f2 patterns.
12903         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12904         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12905         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12906         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12907
12908         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12909         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12910         log2, log2f and log2l built-ins as inline x87 intrinsics.
12911
12912 2004-02-11  Richard Henderson  <rth@redhat.com>
12913
12914         PR target/1532
12915         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12916         dead insn after reload.
12917
12918 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12919
12920         * tree.h (frame_base_decl): Add GTY marker.
12921         * var-tracking.c (frame_base_decl): Likewise.
12922
12923 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12924
12925         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12926         incorrect, hunk.
12927         (add_location_or_const_value_attribute): Use text_section_label,
12928         not TEXT_SECTION_NAME.
12929
12930 2004-02-11  Per Bothner  <per@bothner.com>
12931
12932         Represent column numbers using line-map's source_location.
12933         The "next available source_location" is now managed internally by
12934         line-maps.c rather than by clients.
12935         * line-map.h (struct line_map):  New field column_bits.
12936         <from_line>:  Rename field to start_location.
12937         (struct line_maps):  New fields highest_location and max_column_hint.
12938         (linemap_check_files_exited):  New declaration.
12939         (linemap_line_start):  New declaration.
12940         (linemap_add):  Remove from_line parameter; use highest_location field.
12941         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12942         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12943         (CURRENT_LINE_MAP):  Remove macro.
12944         (linemap_position_for_column):  New inline function.
12945         * line-map.c (linemap_init):  Clear new fields.
12946         (linemap_check_files_exited):  New function, extracted from ...
12947         (linemap_free):  Use linemap_check_files_exited.
12948         (linemap_add):  Remove from_line parameter.  Various updates.
12949         (linemap_line_start):  New function.
12950         (linemap_lookeup):  Update for new field names.
12951         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12952         linemap_position_for_column may unpredictably change the current map,
12953         it is cleaner and simpler for us to not cache it in cpp_reader.
12954         (struct cpp_buffer):  New sysp field.
12955         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12956         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12957         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12958         current map using linemap_lookup.
12959         (do_linemarker):  Also set buffer's sysp field.
12960         (destringize_and_run):  No longer need to decrement current line.
12961         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12962         (search_path_head, open_file_failed):  Use buffer's sysp.
12963         (cpp_make_system_header):  Get current map using linemap_lookup.
12964         Also set buffer's sysp flag.
12965         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12966         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12967         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12968         (struct cpp_reader):  ... and adding saved_line_base field.
12969         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12970         Update accordingly.  Don't adjust line.
12971         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12972         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12973         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12974         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12975         * cpplex.c (_cpp_lex_direct):  Likewise.
12976         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12977         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12978         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12979         Remove col field as it is now subsumed by src_loc.
12980         * cpperror.c:  Update various field, parameter, and macro names.
12981         (print_location):  If col==0, try SOURCE_COLUMN of line.
12982         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12983         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12984         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12985         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12986         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12987         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12988         (_cpp_lex_direct):  Use linemap_position_for_column.
12989         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12990         parameter.  Instead get it from the line_table global.  Adjust callers.
12991         (print):  Remove map field.  Replace line field to src_line.
12992         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12993         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12994         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12995         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12996         * cpptrad.c (copy_comment):  Rename variable.
12997         * c-lex.c (map):  Remove static variable, for same reason we removed
12998         cpp_reader's map field.
12999         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
13000         to call linemap_lookup.
13001         (cb_line_change):  Token's line field replaced by src_loc.
13002         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
13003         Don't save new_map.
13004
13005         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
13006         source_location.
13007
13008 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13009
13010         * config/rs6000/altivec.md (*movv4si_internal): At least one
13011         operand must be register_operand.
13012         (*movv8hi_internal1): Likewise.
13013         (*movv16qi_internal1): Likewise.
13014         (*movv4sf_internal1): Likewise.
13015
13016 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
13017
13018         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13019         operand.
13020         (movv4hi_internal): Same.
13021         (movv2sf_internal): Same.
13022         (movv1di_internal): Same.
13023
13024 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
13025
13026         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13027         TARGET_OLDABI consistently.
13028         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13029         mips_va_arg,override_options,compute_frame_size,
13030         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13031         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13032         and TARGET_OLDABI consistently.
13033         * config/mips/mips.md (exception_receiver): Likewise.
13034         * config/mips/linux64.h: Likewise.
13035
13036 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
13037
13038         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13039         Set AltiVec ABI and vrsave as default for ppc64 linux.
13040         (init_cumulative_args): Post error, if try to return
13041         value in AltiVec register without enable AltiVec.
13042         (function_arg_advance): Ditto for passing arguments.
13043
13044 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
13045
13046         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13047         a label before updating its usage count.
13048
13049 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
13050
13051         * doc/install.texi: Remove extra cd.
13052
13053 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
13054
13055         * c-common.c (vector_size_helper): Remove; call
13056         reconstruct_complex_type() instead.
13057         * tree.c (reconstruct_complex_type): New function
13058         (formerly vector_size_helper() in c-common.c).
13059         (make_vector): Make externally visible.
13060         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13061
13062 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13063
13064         * config/h8300/h8300-protos.h: Add a prototype for
13065         h8300_regs_ok_for_stm.
13066         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13067         * config/h8300/h8300.md (stm_h8300s_2_advanced,
13068         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13069         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13070         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13071         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13072         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13073         ldm_h8300s_4_normal, ldm_h8300s_4): Use
13074         h8300_regs_ok_for_stm().
13075
13076 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13077
13078         PR c/14088
13079         * real.c (real_from_string): Look for 'X' as well as 'x' in
13080         hexfloat strings.
13081
13082 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
13083
13084         * config/h8300/h8300.md: Remove an incorrect comment about
13085         peephole2.  Add comments.
13086
13087 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
13088
13089         PR/14058
13090         * emit-rtl.c (set_decl_incoming_rtl): New.
13091         * tree.h (set_decl_incoming_rtl): New.
13092         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13093         DECL_INCOMING_RTL.
13094         * ada/misc.c (adjust_decl_rtl): Likewise.
13095
13096 2004-02-10  Per Bothner  <per@bothner.com>
13097
13098         * c-opts.c (c_common_post_options):   Don't emit working directory
13099         in cpp output if -P was specified.
13100
13101 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13102
13103         PR c/14092
13104         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13105         negate_expr back to the original type.
13106
13107 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
13108
13109         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13110         bump retaddr here.
13111
13112 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
13113
13114         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13115         gen_lowpart_SUBREG): Move under the file in which they
13116         are actually declared.
13117
13118 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
13119
13120         * doc/sourcebuild.texi: Add libada documentation.
13121
13122         * doc/install.texi: Update documentation on Ada build, now
13123         that the GNAT lib and tools are built automatically.
13124
13125 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
13126
13127         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13128         && TARGET_IRIX.
13129
13130 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
13131
13132         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13133         boundaries outside build_component_ref() call (a macro in ObjC++).
13134
13135 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
13136
13137         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13138         (init_cumulative_args): Likewise.
13139         (a7_overlap_mentioned_p): Delete prototype.
13140         * config/xtensa/xtensa.c (struct machine_function): Replace
13141         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13142         Add set_frame_ptr_insn field.
13143         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13144         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13145         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
13146         at the function entry and replace the operand with the pseudo.
13147         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
13148         argument and record this flag in CUMULATIVE_ARGS.
13149         (function_arg): Remove result_mode and special-case code to handle
13150         arguments in a7.  Instead, set need_a7_copy flag when there is an
13151         incoming argument in a7.
13152         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13153         and use the value recorded in cfun->machine->set_frame_ptr_insn.
13154         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
13155         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
13156         special-case code.
13157         (a7_overlap_mentioned_p): Delete.
13158         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13159         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13160         arguments to init_cumulative_args and pass "incoming" flag instead.
13161         (BLOCK_REG_PADDING): Delete.
13162         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13163         checks for reload_in_progress and reload_completed.  Update calls to
13164         xtensa_copy_incoming_a7.
13165         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13166         to call xtensa_copy_incoming_a7.
13167
13168 2004-02-09  DJ Delorie  <dj@redhat.com>
13169
13170         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13171         longer modify standard_exec_prefix, standard_bindir_prefix, or
13172         standard_startfile_prefix.
13173
13174 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13175
13176         PR c++/11295
13177         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13178         to expand_expr_real call, and pass in alt_rtl as last argument.
13179
13180         PR libstdc++/5625
13181         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13182         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13183         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13184         * except.c (expand_builtin_extend_pointer): New.
13185         * except.h (expand_builtin_extend_pointer): Declare.
13186
13187 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13188
13189         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13190         unaligned loads and stores.
13191
13192 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13193
13194         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13195         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13196
13197         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13198         * config/mips/iris5.h: ... here.
13199         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13200
13201         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13202         * config/mips/iris5.h: ... here.
13203
13204 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13205
13206         * configure.ac: Remove default executable files before AC_PROG_CC.
13207         * configure: Regenerate.
13208
13209 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13210
13211         PR target/13721
13212         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13213         print a operand other than a register.
13214
13215 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13216
13217         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13218         tree code rather than call fold_convert, which doesn't specify a
13219         default floating point to integer conversion.
13220
13221 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13222
13223         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13224         code to support SGS assembler.  Reformat adjacent code where possible.
13225         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13226         definition.
13227         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13228         for '%#'.
13229         * config/m68k/linux.h, config/m68k/m68k.c,
13230         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13231         macros and asm_printf() format strings.
13232         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13233         * config/m68k/linux.h: Update copyright.
13234         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13235
13236 2004-02-08  Andreas Schwab  <schwab@suse.de>
13237             Bernardo Innocenti  <bernie@develer.com>
13238
13239         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13240         REGISTER_PREFIX.
13241         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13242         frame pointer register, overridable by OS targets.
13243         * (M68K_REGNAME): Macro to obtain register name for asm output,
13244         eventually replacing %a6 with M68K_FP_REG_NAME.
13245         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13246         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13247         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13248         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13249         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13250
13251 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13252
13253         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13254         hook_rtx_tree_int_null.
13255         * targhooks.c (default_struct_value_rtx): Remove.
13256         * targhooks.h: Remove the prototype for
13257         default_struct_value_rtx.
13258         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13259         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13260         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13261         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13262         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13263         config/rs6000/rs6000.c, config/s390/s390.c,
13264         config/stormy16/stormy16.c, config/v850/v850.c,
13265         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13266         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13267
13268 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13269
13270         * README.Portability: Change "ISO C89" to "ISO C90".
13271         * c-parse.in (primary, initelt): Likewise.
13272
13273 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13274
13275         * real.c (encode_ibm_extended): Normalize the input value before
13276         converting it to a double.  Handle the case where a normal value
13277         rounds to infinity.
13278
13279 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13280
13281         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13282         warning.
13283         * cse.c (preferrable): Change to preferable. Update all of its
13284         callers.
13285         * genautomata.c (ainsn): Change
13286         first_ainsn_with_given_equialence_num to
13287         first_ainsn_with_given_equivalence_num.  Update all of its
13288         references.
13289
13290 2004-02-08  Jan Hubicka  <jh@suse.cz>
13291
13292         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13293
13294 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13295
13296         * function.c (assign_parms): Fix formatting.
13297
13298 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13299
13300         * default.h (PROMOTE_PROTOTYPES): Remove.
13301         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13302         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13303         EXPAND_BUILTIN_SAVEREGS): Poison.
13304         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13305         hook_bool_tree_false.
13306         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13307         * target.h: Replace SETUP_INCOMING_VARARGS with
13308         targetm.calls.setup_incoming_varargs().
13309         * targhooks.c (default_promote_function_return): Remove.
13310         (default_promote_prototypes): Likewise.
13311         (default_struct_value_rtx): Always abort().
13312         (default_expand_builtin_saveregs): Always print an error
13313         message.
13314         (default_setup_incoming_varargs): Do nothing.
13315         (default_pretend_outgoing_varargs_named): Don't depend on
13316         SETUP_INCOMING_VARARGS.
13317         * targhooks.h: Remove the prototype for
13318         default_promote_function_return and
13319         default_promote_prototypes.
13320
13321 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13322
13323         * system.h (SHARED_SECTION_ASM_OP): Poison.
13324         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13325         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13326
13327 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13328
13329         Bug 13856
13330         * c-decl.c (diagnose_mismatched_decls): Only give special
13331         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13332         is also true.
13333         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13334         DECL_FUNCTION_CODE when defining a built-in function.
13335         Don't update DECL_ESTIMATED_INSNS.
13336         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13337         FUNCTION_DECLs.
13338         * tree.h: Delete DECL_ESTIMATED_INSNS.
13339         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13340         (expand_call_inline, optimize_inline_calls): Don't update
13341         DECL_ESTIMATED_INSNS nor inlined_insns.
13342         * cgraphunit.c (cgraph_analyze_function): Don't update
13343         DECL_ESTIMATED_INSNS.
13344
13345 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13346
13347         * c-common.c (shadow_warning): Delete.
13348         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13349         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13350         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13351         * c-parse.in (free_parser_stacks): Delete.
13352
13353 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13354
13355         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13356         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13357         Use the top level mkinstalldirs, not the one in the gcc subdir.
13358         * mkinstalldirs: Remove (from the gcc subdir).
13359
13360 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13361
13362         PR middle-end/13696
13363         * fold-const.c (fold_convert): New function to provide type
13364         conversion to the middle-end without using convert.
13365         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13366         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13367         invert_truthvalue, optimize_bit_field_compare, range_binop,
13368         decode_field_reference, make_range, build_range_check, unextend,
13369         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13370         fold_binary_op_with_conditional_arg, fold_inf_compare,
13371         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13372         convert with calls to fold_convert.
13373
13374 2004-02-07  Jan Hubicka  <jh@suse.cz>
13375
13376         * genrecog.c (find_operand): add extra argument stop.
13377         (validate_pattern): Verify that mach_dup is duplicating operand
13378         defined lexically earlier.
13379
13380 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13381
13382         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13383         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13384         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13385         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13386         config/ia64/ia64.h, config/ip2k/ip2k.h,
13387         config/iq2000/iq2000.h, config/mips/iris5.h,
13388         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13389         config/rs6000/aix51.h, config/rs6000/aix52.h,
13390         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13391         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13392         config/sparc/linux.h, config/sparc/linux64.h,
13393         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13394         config/xtensa/xtensa.h: Remove the definitions of
13395         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13396         MAX_WCHAR_TYPE_SIZE.
13397         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13398         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13399
13400 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13401
13402         PR bootstrap/13990
13403         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13404         gen_rtx_NE.
13405
13406 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13407
13408         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13409         #ifdef ENABLE_CHECKING and #endif.
13410
13411 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13412
13413         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13414         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13415         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13416         integer types and floating point with unsafe_math_optimizations.
13417         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13418         Optimize A - B as A + (-B), if B is easily negated.
13419
13420 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13421
13422         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13423         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13424         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13425         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13426         Update copyright.
13427
13428 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13429
13430         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13431
13432 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13433
13434         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13435         glibc 2.3 or better.
13436
13437 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13438
13439         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13440         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13441
13442 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13443
13444         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13445         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13446         (SHLIB_MKMAP_OPTS): Delete.
13447         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13448         (bispecs): Add rule.
13449         * config/rs6000/libgcc-ppc64.ver: New file.
13450         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13451         (__floatdidf, __floatdisf): Optimize multiply.
13452         (__fixunstfdi): New function.
13453         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13454         real and imag parts larger than one register.
13455         (function_arg): Correct type of reg used when fp arg split partially
13456         to stack.
13457         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13458         and __MACH__ or __powerpc64__.
13459
13460 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13461             Ulrich Weigand  <uweigand@de.ibm.com>
13462
13463         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13464         of gen_highpart or gen_lowpart when the floating point format is
13465         wider than the result mode.
13466
13467 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13468
13469         * dwarf2out.c (loclabel_num): Move into #ifdef
13470         DWARF2_DEBUGGING_INFO.
13471
13472 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13473
13474         * objc/objc-act.c (build_super_template) the 'class' field of
13475         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13476         (get_super_receiver): Likewise.
13477
13478 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13479
13480         * reload1.c (check_eliminable_occurrences): Optimize the reset
13481         of can_eliminate.
13482         (eliminate_regs_in_insn): Likewise.
13483
13484 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13485             Josef Zlomek  <zlomekj@suse.cz>
13486
13487         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13488         at the beginning of function, call dwarf2out_var_location for
13489         NOTE_INSN_VAR_LOCATION note.
13490         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13491         decl_loc_table): New.
13492         (lookup_decl_loc): New function.
13493         (add_var_loc_to_decl): New function.
13494         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13495         only if can_use_fbreg.
13496         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13497         functions.
13498         (loc_descriptor): Likewise. Process VAR_LOCATION.
13499         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13500         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13501         can_use_fbreg == true.
13502         (add_location_or_const_value_attribute): Added parameter enum
13503         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13504         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13505         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13506         with attr == DW_AT_location.
13507         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13508         if frame_base_decl is defined and has a location list.
13509         (gen_variable_die): Call add_location_or_const_value_attribute with
13510         attr == DW_AT_location.
13511         (dwarf2out_var_location): New function.
13512         (dwarf2out_begin_function): New function.
13513         (dwarf2out_init): Create decl_loc_table.
13514
13515 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13516
13517         * loop.c (force_movables): Transitively increase the priorities of
13518         all insns forces by an insn, not just the first one.
13519
13520 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13521             Daniel Berlin <dberlin@dberlin.org>
13522
13523         Josef Zlomek  <zlomekj@suse.cz>
13524         * Makefile.in (var-tracking.o): New.
13525         * common.opt (fvar-tracking): New.
13526         * flags.h (flag_var_tracking): New.
13527         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13528         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13529         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13530         * rtl.c (note_insn_name): Likewise.
13531         * rtl.def (VAR_LOCATION): New.
13532         * rtl.h (NOTE_VAR_LOCATION): New.
13533         (NOTE_VAR_LOCATION_DECL): New.
13534         (NOTE_VAR_LOCATION_LOC): New.
13535         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13536         (variable_tracking_main): New exported function.
13537         * timevar.def (TV_VAR_TRACKING): New.
13538         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13539         (dump_file): "vartrack" was added (-dV).
13540         (flag_var_tracking): New.
13541         (f_options): "var-tracking" was added.
13542         (rest_of_handle_variable_tracking): New function.
13543         (rest_of_compilation): Run variable tracking.
13544         (process_options): If user has not specified flag_var_tracking set it
13545         according to optimize, debug_info_level and debug_hooks.
13546         * tree.h (frame_base_decl): New.
13547         * var-tracking.c: New file.
13548         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13549         (ia64_override_options): Set flags to run variable tracking in machine
13550         dependent reorg instead of toplev.c.
13551         (ia64_reorg): Run variable tracking if wanted.
13552         * doc/invoke.texi: Mention variable tracking in -dV,
13553         add and -fvar-tracking.
13554         * doc/passes.texi: Added variable tracking pass.
13555
13556         Daniel Berlin <dberlin@dberlin.org>
13557         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13558         * dbxout.c (dbx_debug_hooks): Likewise.
13559         (xcoff_debug): Likewise.
13560         * debug.c (do_nothing_debug_hooks): Likewise.
13561         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13562         * dwarfout.c (dwarf_debug_hooks): Likewise.
13563         * sdbout.c (sdb_debug_hooks): Likewise.
13564         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13565         * final.c (final_scan_insn): Call var_location debug hook for each
13566         NOTE_INSN_VAR_LOCATION.
13567
13568 2004-02-06  Jan Hubicka  <jh@suse.cz>
13569
13570         * flow.c (update_life_info): Allocate reg_deaths when called from
13571         scheudler.
13572         (attempt_auto_inc):  Update life ranges accordingly.
13573
13574 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13575
13576         PR debug/11816
13577         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13578
13579 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13580
13581         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13582
13583 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13584
13585         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13586         a separate line info table in use.
13587         Use the correct size for terminators.
13588         (output_die): Use offset, not delta.
13589
13590 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13591
13592         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13593
13594 2004-02-06  Jan Hubicka  <jh@suse.cz>
13595
13596         * recog.c (split_all_insns): Do not update reg info.
13597         * regrename.c (regrename_optimize): Likewise.
13598         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13599         * flow.c (struct propagate_block_info): Add insn_num field.
13600         (reg_deaths): New array.
13601         (life_analysis): Free reg_deaths info.
13602         (allocate_reg_life_data): Allocate reg_deaths array.
13603         (propagate_one_insn): Use new array.
13604         (init_propagate_block): Initialize it.
13605         (free_propagate_block_info): Finish compuation of
13606         REG_LIVE_LENGTH
13607         (attempt_auto_inc): Sanity check that REG_INFO is not
13608         computed at same time.
13609         (mark_used_regs): Update new array.
13610
13611         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13612         substitution.
13613
13614 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13615
13616         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13617         *extendqisi2_short_displ.
13618
13619 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13620
13621         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13622         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13623         (emit_library_call_value_1): Likewise pass nargs.
13624         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13625         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13626         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13627         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13628         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13629         prototype.
13630         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13631         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13632         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13633         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13634         INIT_CUMULATIVE_ARGS.
13635         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13636         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13637         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13638         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13639         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13640         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13641         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13642         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13643         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13644         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13645         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13646         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13647
13648 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13649
13650         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13651         possible.
13652
13653 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13654
13655         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13656         note containing (plus (reg) (const_int)), where reg is an
13657         eliminable reg, then perform the register elimination without
13658         depending on eliminate_regs().
13659
13660 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13661
13662         * config/arc/arc.c (arc_return_in_memory): Check the return
13663         value of int_size_in_bytes against -1.  Don't check
13664         TREE_ADDRESSABLE.
13665         * config/avr/avr.c (avr_return_in_memory): Check the return
13666         value of int_size_in_bytes against -1.
13667         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13668         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13669         Likewise.
13670         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13671         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13672         Likewise.
13673
13674 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13675
13676         * config/frv/frv-protos.h: Remove the prototype for
13677         frv_setup_incoming_varargs.
13678         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13679         (frv_setup_incoming_varargs): Make it static.
13680         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13681
13682 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13683
13684         * config/fr30/fr30-protos.h: Remove the prototype for
13685         fr30_setup_incoming_varargs.
13686         Update the prototypes for fr30_num_arg_regs and
13687         fr30_function_arg_partial_nregs.
13688         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13689         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13690         (fr30_setup_incoming_varargs): Make it static.
13691         Add argument second_time.  Don't do anything when second_time
13692         is nonzero.
13693         (fr30_num_arg_regs): Change the type of the first argument to
13694         enum machine_mode.
13695         (fr30_function_arg_partial_nregs): Change the type of the
13696         second argument to enum machine_mode.
13697         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13698         (SETUP_INCOMING_VARARGS): Remove.
13699
13700 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13701
13702         * config/arc/arc-protos.h: Remove the prototype for
13703         arc_setup_incoming_varargs.
13704         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13705         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13706         (arc_setup_incoming_varargs): Make it static.
13707         (arc_external_libcall): Likewise.
13708         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13709         Remove the commented-out definition of
13710         ASM_OUTPUT_EXTERNAL_LIBCALL.
13711
13712 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13713
13714         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13715         to $$(slibdir) in the installation commands.
13716
13717 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13718
13719         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13720         with inner_regno, not regno.
13721         * rtlanal.c (refers_to_regno_p): Same.
13722
13723 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13724
13725         * config.gcc: Remove i370 support.
13726
13727 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13728
13729         * doc/install.texi:  Update automake and autoconf version
13730         requirements.  Note where to find gcj automake version.
13731
13732 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13733
13734         * Makefile.in (generate-manpages): Move dependencies to ...
13735         (man): here.
13736         * doc/makefile.texi: Document new targets.
13737         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13738
13739 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13740
13741         PR/13485
13742         Makefile.in (srcextra):  Add a level of indirection to ...
13743         (gcc.srcextra): ... here.
13744         (po-generated): Delete.
13745         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13746         options.c.
13747         (start.encap): Remove superfluous lang.srcextra dependency.
13748         objc/Make-lang.in (po-generated):  Delete.
13749
13750 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13751
13752         * config/ia64/ia64.c (REG_GP): Remove.
13753
13754 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13755
13756         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13757
13758 2004-02-05  Devang Patel  <dpatel@apple.com>
13759
13760         * dwarf2out.c (force_type_die): Look up input type itself
13761         instead of root_type() of type.
13762
13763 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13764
13765         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13766         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13767         pre-reload splitters are transformed to post-reload
13768         define_insn_and_split patterns.
13769         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13770
13771 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13772
13773         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13774         TARGET_PROMOTE_PROTOTYPES.
13775
13776 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13777
13778         PR middle-end/13750
13779         Revert:
13780         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13781         PR pch/13361
13782         * c-typeck.c (constructor_asmspec): Delete.
13783         (struct initializer_stack): Delete field 'asmspec'.
13784         (start_init): Delete saving of asmspec.
13785         (finish_init): Don't update constructor_asmspec.
13786         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13787         * stmt.c (expand_asm): Duplicate strings from tree.
13788         (expand_asm_operands): Likewise.
13789         * tree.c (tree_size): Update computation of size of STRING_CST.
13790         (make_node): Don't make STRING_CST nodes.
13791         (build_string): Allocate string with tree node.
13792         * tree.def (STRING_CST): Update comment.
13793         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13794         (tree_string): Place contents of string in tree node.
13795         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13796         from tree.
13797
13798 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13799
13800         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13801         msgid.
13802
13803 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13804
13805         * config/rs6000/altivec.md (*movv4si_internal): At least one
13806         operand must be altivec_register_operand.
13807         (*movv8hi_internal1): Likewise.
13808         (*movv16qi_internal1): Likewise.
13809         (*movv4sf_internal1): Likewise.
13810
13811 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13812
13813         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13814         * configure: Regenerate.
13815
13816 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13817
13818         * doc/install.texi: Update description of --gxx-include-dir to
13819         give correct default value.
13820
13821 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13822
13823         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13824         8 with MAC_REG.
13825
13826 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13827
13828         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13829         gen_rtx_PARALLEL.
13830
13831 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13832
13833         * emit-rtl.c: Update the comment about the file.
13834
13835 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13836
13837         * sourcebuild.texi (Test Idioms): Update testcase naming
13838         conventions.
13839
13840 2004-02-04  Per Bothner  <per@bothner.com>
13841
13842         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13843         * c-ppoutput.c (pp_dir_change):  New function.
13844         * c-common.h (pp_dir_change):  New declaration.
13845         * cpplib.h (struct cpp_options):  Remove working_directory field.
13846         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13847         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13848         Don't handle -fworking_directory here, but in c_common_post_options.
13849         (read_original_directory): Don't back up when done.
13850         Don't clear no-longer used working_directory flag.
13851         * cpplib.h:  Update declarations to match.
13852         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13853         (init_c_lex):  Don't set dir_change callback here, since we want
13854         to set it even if flag_preprocess_only.
13855         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13856         (c_common_post_options):  Set dir_change callback.
13857         Call pp_dir_change if approporiate.
13858         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13859         unneeded parameter and result. Do LC_RENAME for <built-in>.
13860         (c_common_post_options):  Call cpp_read_main_file here instead.
13861         (c_common_init):  Update accordingly.
13862         (push_command_line_include):  Don't cpp_push_main_file.
13863         Do LC_RENAME rather than LC_LEASE to get back to main file.
13864         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13865         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13866         files, but call finish_options for all files.
13867         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13868         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13869         cpp_find_main_file + cpp_push_main_file.
13870         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13871         * opts.c (handle_options):  Only set main_input_filename first time.
13872
13873 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13874
13875         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13876
13877 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13878
13879         * reload.c (find_equiv_reg): When checking for register overlap,
13880         don't index hard_regno_nregs with a pseudo-reg.
13881
13882 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13883
13884         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13885
13886 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13887
13888         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13889         against FIRST_PSEUDO_REGISTER.
13890
13891 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13892
13893         * Makefile.in: Move target, host overrides after per-language
13894         fragments.
13895
13896         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13897         (GNATLIBCFLAGS): Remove -g.
13898
13899 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13900
13901         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13902         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13903         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13904         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13905         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13906         config/sparc/sparc.c, config/vax/vax.c: Revert the
13907         replacements of "FALLTHRU" with "Fall through" done in the
13908         previous patch.
13909
13910 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13911
13912         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13913         config/arm/arm.c, config/arm/arm.md,
13914         config/cris/cris-protos.h, config/fr30/fr30.c,
13915         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13916         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13917         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13918         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13919         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13920         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13921         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13922         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13923         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13924         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13925         config/s390/s390.md, config/sparc/netbsd-elf.h,
13926         config/sparc/openbsd.h, config/sparc/sparc.c,
13927         config/xtensa/lib2funcs.S: Fix comment formatting.
13928
13929 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13930
13931         * config/alpha/alpha.c, config/arc/arc.c,
13932         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13933         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13934         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13935         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13936         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13937         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13938         config/iq2000/iq2000.c, config/m32r/m32r.c,
13939         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13940         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13941         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13942         config/rs6000/rs6000.h, config/sparc/sparc.c,
13943         config/vax/vax.c: Fix comment typos.  Follow spelling
13944         conventions.
13945
13946 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13947
13948         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13949         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13950         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13951         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13952         config/arm/fpa.md, config/arm/iwmmxt.md,
13953         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13954         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13955         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13956         config/sparc/netbsd-elf.h: Update copyright.
13957
13958 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13959
13960         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13961         for all modes whose size is greater than 8 bytes if ARCH32.
13962         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13963         by reference if ARCH32.
13964
13965 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13966
13967         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13968
13969 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13970
13971         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13972         to before adddi3 insn patterns.
13973         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13974         "reload_insi"): Move to before addsi3 insn patterns.
13975
13976 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13977
13978         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13979         parameter.  Use it instead of current_function_is_thunk.
13980         * function.h (struct function): Update documentation for is_thunk.
13981         * tree.h (CALL_FROM_THUNK_P): New macro.
13982         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13983         no_new_pseudos when testing current_function_is_thunk.
13984         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13985
13986 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13987
13988         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13989         TARGET_SETUP_INCOMING_VARARGS.
13990
13991 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13992
13993         * emit-rtl.c (gen_rtx): Remove.
13994         * genattrtab.c: Don't mention gen_rtx in a comment.
13995         * rtl.h: Remove the prototype for gen_rtx.
13996         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13997
13998 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13999
14000         * config/arc/arc.h, config/fr30/fr30.h
14001         (SETUP_INCOMING_VARARGS): Remove the target-independent
14002         comments.
14003         * doc/tm.texi: Don't mention deprecated target macros.
14004
14005 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14006
14007         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14008         target-independent comment.
14009
14010 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14011
14012         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14013         mention deprecated target macros.
14014
14015 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
14016
14017         * config.gcc: Remove obsolete ports and configurations.
14018         * config/linux-aout.h, config/netware.h,
14019         config/t-linux-gnulibc1, config/d30v/abi,
14020         config/d30v/d30v-protos.h, config/d30v/d30v.c,
14021         config/d30v/d30v.h, config/d30v/d30v.md,
14022         config/d30v/libgcc1.asm, config/d30v/t-d30v,
14023         config/dsp16xx/dsp16xx-modes.def,
14024         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14025         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14026         config/i370/README, config/i370/i370-c.c,
14027         config/i370/i370-protos.h, config/i370/i370.c,
14028         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14029         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14030         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14031         config/i386/moss.h, config/i386/netware.h,
14032         config/i386/svr3.ifile, config/i386/svr3dbx.h,
14033         config/i386/svr3gas.h, config/i386/svr3z.ifile,
14034         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14035         config/i960/i960-c.c, config/i960/i960-coff.h,
14036         config/i960/i960-modes.def, config/i960/i960-protos.h,
14037         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14038         config/i960/rtems.h, config/i960/t-960bare,
14039         config/m68k/hp310.h, config/m68k/hp320.h,
14040         config/m68k/hp320base.h, config/m68k/m68kv4.h,
14041         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14042         Remove.
14043         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14044         doc/md.texi: Remove mentions of obsolete ports.
14045
14046 2004-02-04  Jan Hubicka  <jh@suse.cz>
14047
14048         * alias.c (find_base_term, get_addr):  Do not dereference NULL
14049         pointer when all VALUE's locations has been invalidated.
14050         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14051
14052 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
14053
14054         * doc/invoke.texi (x86 options): Fix spelling/wording.
14055
14056 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
14057
14058         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14059         put the original string in a comment.
14060         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14061         * config/mips/mips.c (mips_output_ascii): Likewise.
14062         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14063
14064 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14065
14066         * system.h (GIV_SORT_CRITERION): Poison.
14067         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14068         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14069
14070 2004-02-03  Roger Sayle  <roger@eyesopen.com>
14071
14072         PR target/9348
14073         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
14074         multiplies with a multiplication of the wrong signedness, its the
14075         signedness of the multiplication that we've performed that needs to
14076         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
14077         if expand_mult_highpart_adjust places the result in target.
14078
14079 2004-02-03  Richard Henderson  <rth@redhat.com>
14080
14081         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14082
14083 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
14084
14085         * config.gcc (sh[234]l): Use little endian fragments.
14086
14087 2004-02-03  Paul Koning  <pkoning@equallogic.com>
14088
14089         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14090         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14091         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14092         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14093         floating point format.
14094         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14095         the above functions.
14096         (output_move_quad): Output float values in correct target format.
14097         (legitimate_const_double_p): New function.
14098         * config/pdp11/pdp11.h: Fix typos.
14099         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14100         (TARGET_FLOAT_FORMAT): Ditto.
14101         (pdp11_f_format, pdp11_d_format): Add external declarations.
14102         (MAX_REGS_PER_ADDRESS): Corrected.
14103         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14104         (PRINT_OPERAND): Output float literals in target format.
14105
14106 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
14107
14108         PR c++/13975
14109         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14110         TI_PRIVATE.
14111         (access_public_node): Redefine.
14112         (access_protected_node): Likewise.
14113         (access_private_node): Likewise.
14114         * tree.c (build_common_tree_nodes): Create access_public_node,
14115         access_protected_node, and access_private_node.
14116
14117 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
14118
14119         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14120         (MASK_INLINE_INT_DIV_THR): Ditto.
14121         (MASK_INLINE_SQRT_LAT): Ditto.
14122         (MASK_INLINE_SQRT_THR): Ditto.
14123         (MASK_DWARF2_ASM): Ditto.
14124         (MASK_EARLY_STOP_BITS): Ditto.
14125
14126 2004-02-02  Paul Brook  <paul@codesourcery.com>
14127
14128         Merge from csl-arm-branch.
14129
14130         2004-01-30  Paul Brook  <paul@codesourcery.com>
14131
14132         * aof.h (REGISTER_NAMES): Add vfp reg names
14133         (ADDITIONAL_REGISTER_NAMES): Ditto.
14134         * aout.h (REGISTER_NAMES): Ditto.
14135         (ADDITIONAL_REGISTER_NAMES): Ditto.
14136         * arm-protos.h: Update/Add Prototypes.
14137         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14138         Only allow 0.0 for VFP.
14139         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
14140         (values_fp): Rename from values_fpa.  Update Users.
14141         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14142         Update users.  Only check valid constants for this hardware.
14143         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
14144         Only allow consts for FPA.
14145         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
14146         Only allow consts for FPA.
14147         (use_return_insn): Check for saved VFP regs.
14148         (arm_legitimate_address_p): Handle VFP DFmode addressing.
14149         (arm_legitimize_address): Ditto.
14150         (arm_general_register_operand): New function.
14151         (vfp_mem_operand): New function.
14152         (vfp_compare_operand): New function.
14153         (vfp_secondary_reload_class): New function.
14154         (arm_float_compare_operand): New function.
14155         (vfp_print_multi): New function.
14156         (vfp_output_fstmx): New function.
14157         (vfp_emit_fstm): New function.
14158         (arm_output_epilogue): Output VPF reg restore code.
14159         (arm_expand_prologue): Output VFP reg save code.
14160         (arm_print_operand): Add 'P'.
14161         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14162         (arm_regno_class): Return classes for VFP regs.
14163         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14164         (arm_get_frame_size): Ditto.
14165         * arm.h (FIXED_REGISTERS): Add VFP regs.
14166         (CALL_USED_REGISTERS): Ditto.
14167         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14168         (FIRST_VFP_REGNUM): Define.
14169         (LAST_VFP_REGNUM): Define.
14170         (IS_VFP_REGNUM): Define.
14171         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14172         (HARD_REGNO_NREGS): Handle VFP regs.
14173         (REG_ALLOC_ORDER): Add VFP regs.
14174         (enum reg_class): Add VFP_REGS.
14175         (REG_CLASS_NAMES): Ditto.
14176         (REG_CLASS_CONTENTS): Ditto.
14177         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14178         (REG_CLASS_FROM_LETTER): Add 'w'.
14179         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14180         (EXTRA_MEMORY_CONSTRAINT): Define.
14181         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14182         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14183         (REGISTER_MOVE_COST): Ditto.
14184         (PREDICATE_CODES): Add arm_general_register_operand,
14185         arm_float_compare_operand and vfp_compare_operand.
14186         * arm.md (various): Rename as above.
14187         (divsf3): Enable when TARGET_VFP.
14188         (divdf3): Ditto.
14189         (movdfcc): Ditto.
14190         (sqrtsf2): Ditto.
14191         (sqrtdf2): Ditto.
14192         (arm_movdi): Disable when TARGET_VFP.
14193         (arm_movsi_insn): Ditto.
14194         (movsi): Only split with general regs.
14195         (cmpsf): Use arm_float_compare_operand.
14196         (push_fp_multi): Restrict to TARGET_FPA.
14197         (vfp.md): Include.
14198         * vfp.md: New file.
14199         * fpa.md (various): Rename as above.
14200         * doc/md.texi: Document ARM w and U constraints.
14201
14202         2004-01-15  Paul Brook  <paul@codesourcery.com>
14203
14204         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14205         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14206         Break out of loop when we find a float-abi.  Fix typo.
14207         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14208         Set -mfloat-abi=.
14209         * doc/install.texi: Document --with-fpu.
14210
14211         2003-01-14  Paul Brook  <paul@codesourcery.com>
14212
14213         * config.gcc (with_arch): Add armv6.
14214         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14215         * config/arm/arm.c (arm_overrride_options): Ditto.
14216
14217         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14218
14219         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14220         (FL_ARCH6): Renamed from FL_ARCH6J.
14221         (arm_arch3m): Renamed from arm_fast_multiply.
14222         (arm_arch6): Renamed from arm_arch6j.
14223         * arm.h: Update all uses of above.
14224         * arm-cores.def: Likewise.
14225         * arm.md: Likewise.
14226
14227         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14228         not arm6j.  Add entry for arch armv6.
14229
14230         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14231
14232         * arm.c (arm_emit_extendsi): Delete.
14233         * arm-protos.h (arm_emit_extendsi): Delete.
14234         * arm.md (zero_extendhisi2): Also handle zero-extension of
14235         non-subregs.
14236         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14237         (thumb_zero_extendhisi2): Only match if not v6.
14238         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14239         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14240         (thumb_extendqisi2): Likewise.
14241         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14242         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14243         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14244         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14245         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14246         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14247         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14248         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14249         (arm_extendqisi2addsi): Likewise.
14250
14251         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14252
14253         Revert this change:
14254         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14255         + REG addressing modes.
14256
14257         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14258         + REG addressing modes.
14259
14260         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14261
14262         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14263         CONSTANT_P_RTX.
14264
14265         2003-30-12  Paul Brook  <paul@codesourcery.com>
14266
14267         * longlong.h: protect arm inlines with !defined (__thumb__)
14268
14269         2003-30-12  Paul Brook  <paul@codesourcery.com>
14270
14271         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14272
14273         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14274
14275         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14276         change.
14277
14278         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14279
14280         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14281         to the virtual incoming args pointer for downward stacks.
14282
14283         2003-12-29  Paul Brook  <paul@codesourcery.com>
14284
14285         * config/arm/arm-cores.def: Add cost function.
14286         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14287         (arm_rtx_costs): Remove
14288         (struct processors): Add rtx_costs field.
14289         (all_cores, all_architectures): Ditto.
14290         (arm_override_options): Set targetm.rtx_costs.
14291         (thumb_rtx_costs): New function.
14292         (arm_rtx_costs_1): Remove cases handled elsewhere.
14293         * config/arm/arm.h (processor_type): Add COSTS parameter.
14294
14295         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14296
14297         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14298         (arm926ejs.md): Include it.
14299         * config/arm/arm926ejs.md: New pipeline description.
14300
14301         2003-12-24  Paul Brook  <paul@codesourcery.com>
14302
14303         * config/arm/arm.c (arm_arch6j): New variable.
14304         (arm_override_options): Set it.
14305         (arm_emit_extendsi): New function.
14306         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14307         * config/arm/arm.h (arm_arch6j): Declare.
14308         * config/arm/arm.md: Add sign/zero extend insns.
14309
14310         2003-12-23  Paul Brook  <paul@codesourcery.com>
14311
14312         * config/arm/arm.c (all_architectures): Add armv6.
14313         * doc/invoke.texi: Document it.
14314
14315         2003-12-19  Paul Brook  <paul@codesourcery.com>
14316
14317         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14318         insn patterns to match.
14319         * config/arm/arm-generic.md: Ditto.
14320         * config/arm/cirrus.md: Ditto.
14321         * config/arm/fpa.md: Ditto.
14322         * config/amm/iwmmxt.md: Ditto.
14323         * config/arm/arm1026ejs.md: Ditto.
14324         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14325         for 11_loadb.
14326
14327         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14328
14329         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14330         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14331         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14332         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14333         arm_no_early_mul_dep): Correctly deal with conditional execution,
14334         parallels and single shift operations.
14335         (arm_no_early_alu_shift_value_dep): Define.
14336         * arm.md (attr type): Replace 'normal' with 'alu',
14337         'alu_shift' and 'alu_shift_reg'.
14338         (attr core_cycles): Adjust.
14339         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14340         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14341         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14342         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14343         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14344         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14345         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14346         attribute appropriately.
14347         * config/arm/arm1026ejs.md (alu_op): Adjust.
14348         (alu_shift_op, alu_shift_reg_op): New.
14349         * config/arm/arm1136.md: Add better bypasses for early
14350         registers. Remove load[234] and store[234] bypasses.
14351         (11_alu_op): Adjust.
14352         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14353
14354         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14355
14356         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14357         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14358         * config/arm/arm.c (arm_no_early_store_addr_dep,
14359         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14360         * config/arm/arm1026ejs.md: Add load-store bypass.
14361         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14362         Add bypasses between instructions.
14363
14364         2003-12-10  Paul Brook  <paul@codesourcery.com>
14365
14366         * config/arm/arm.c (arm_fpu_model): New variable.
14367         (arm_fload_abi): New variable.
14368         (target_fpe_name): Rename from target_fp_name.
14369         (target_fpu_name): New variable.
14370         (arm_is_cirrus): Remove.
14371         (fpu_desc): New struct.
14372         (all_fpus): Define.
14373         (pf_model_for_fpu): Define.
14374         (all_loat_abis): Define.
14375         (arm_override_options): Set fp arch flags based on -mfpu=
14376         and -float-abi=.
14377         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14378         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14379         (*): Use new TARGET_* flags.
14380         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14381         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14382         (TARGET_SOFT_FLOAT): Ditto.
14383         (TARGET_SOFT_FLOAT_ABI): New.
14384         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14385         TARGET_HARD_FLOAT.
14386         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14387         (TARGET_OPTIONS): Add -mfpu=.
14388         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14389         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14390         (arm_pf_model): Define.
14391         (arm_float_abi_type): Define.
14392         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14393         * config/arm/arm.md: Use new TARGET_* flags.
14394         * config/arm/cirrus.md: Ditto.
14395         * config/arm/fpa.md: Ditto.
14396         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14397         * config/arm/semi.h (ASM_SPEC): Ditto.
14398         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14399         (FPUTYPE_DEFAULT): Set to VFP.
14400         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14401
14402         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14403
14404         PR target/12476
14405         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14406         'bx' instead of 'b' to avoid branch range restrictions.  Output
14407         the thunk immediately before the thunked-to function.
14408         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14409         .thumb_func if a thunk is being generated.  Emit .code 16 along
14410         with .thumb_func if a thunk is not being generated.
14411
14412         2003-11-15  Nicolas Pitre <nico@cam.org>
14413
14414         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14415         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14416         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14417         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14418         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14419
14420         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14421             Ian Lance Taylor  <ian@wasabisystems.com>
14422
14423         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14424         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14425
14426         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14427
14428         * config/arm/arm.md (insn):  Add new V6 instruction names.
14429         (generic_sched):  New attr.
14430         * config/arm/arm-generic.md:  Use generic_sched here.
14431         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14432         stages of pipeline.  Adjust latency counts accordingly.
14433         * config/arm/arm1136jfs.md:  New file.
14434
14435         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14436
14437         * config/arm/arm.h (processor_type): New enumeration type.
14438         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14439         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14440         (CPP_CPU_ARCH_SPEC): Likewise.
14441         * config/arm/arm.c (arm_tune): New variable.
14442         (all_cores): Use cores.def.
14443         (all_architectures): Add representative processor.
14444         (arm_override_options): Restructure way in which tuning
14445         information is deduced.
14446         * arm.md: Update "insn" and "type" attributes throughout.
14447         (insn): New attribute.
14448         (type): Compute "mult" from "insn" attribute.  Add load2,
14449         load3, load4 alternatives.
14450         (arm automaton): Move to arm-generic.md.
14451         * config/arm/arm-cores.def: New file.
14452         * config/arm/arm-generic.md: Likewise.
14453         * config/arm/arm1026ejs.md: Likewise.
14454
14455 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14456
14457         * doc/invoke.texi (SPARC options): Remove -mflat and
14458         all -mxxx (xxx:chip) options.
14459         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14460         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14461         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14462         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14463         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14464         * config/sparc/sparc.c: Likewise.
14465         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14466         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14467         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14468         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14469         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14470         (sparc_flat_must_save_register_p): Likewise.
14471         (sparc_flat_compute_frame_size): Likewise.
14472         (sparc_flat_save_restore): Likewise.
14473         (sparc_flat_function_prologue): Likewise.
14474         (sparc_flat_function_epilogue): Likewise.
14475         (sparc_flat_epilogue_delay_slots): Likewise.
14476         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14477         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14478         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14479         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14480         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14481         (CONDITIONAL_REGISTER_USAGE): Likewise.
14482         (FRAME_POINTER_REQUIRED): Likewise.
14483         (INITIAL_ELIMINATION_OFFSET): Likewise.
14484         (BASE_RETURN_VALUE_REG): Likewise.
14485         (BASE_OUTGOING_VALUE_REG): Likewise.
14486         (BASE_PASSING_ARG_REG): Likewise.
14487         (BASE_INCOMING_ARG_REG): Likewise.
14488         (INCOMING_REGNO): Likewise.
14489         (OUTGOING_REGNO): Likewise.
14490         (LOCAL_REGNO): Likewise.
14491         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14492         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14493         (EPILOGUE_USES): Likewise.
14494         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14495         ("flat" attribute): Delete.
14496         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14497         handling.
14498         (call followed by jump define_peephole's): Delete.
14499         (exception_receiver): Likewise.
14500         (builtin_setjmp_receiver): Likewise.
14501         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14502
14503 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14504
14505         PR c/11658
14506         PR c/13994
14507         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14508         on langhooks.h.
14509         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14510         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14511         Include langhooks.h.  Replace c_common_truthvalue_conversion
14512         with the truthvalue_conversion language hook throughout.
14513         (expr_no_commas): Call default_conversion before save_expr
14514         for the first term of the production 'x ? : y'.
14515         * c-common.c (c_common_truthvalue_conversion): Remove
14516         obsolete block.  Invoke recursively the hook instead
14517         of this function.
14518         * c-convert.c (convert): handle ERROR_MARK_NODE.
14519         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14520         returned by the truthvalue_conversion language hook.
14521         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14522         c_objc_common_truthvalue_conversion.
14523         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14524         New function.
14525         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14526         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14527         c_objc_common_truthvalue_conversion.
14528
14529 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14530
14531         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14532         of gen_rtx.
14533         (LIBCALL_VALUE): Likewise.
14534         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14535         gen_rtx_CC0 instead of gen_rtx.
14536         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14537         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14538         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14539         gen_rtx.
14540         (m68hc11_emit_logical): Likewise.
14541
14542 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14543
14544         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14545         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14546         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14547         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14548         config/mips/mips.md, config/mmix/mmix.c,
14549         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14550         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14551         config/rs6000/altivec.md, config/s390/s390.c,
14552         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14553         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14554         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14555         constants that are readily available.
14556
14557 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14558
14559         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14560         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14561         instead of GEN_INT (0).  Do the same for other constants that
14562         are readily available.
14563
14564 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14565
14566         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14567         gen_rtx.
14568         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14569         instead of gen_rtx.
14570         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14571         gen_rtx.
14572         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14573         gen_rtx_ASHIFT instead of gen_rtx.
14574         (udivmodqi4): Likewise.
14575
14576 2004-02-02  Richard Henderson  <rth@redhat.com>
14577
14578         PR target/13789
14579         * expr.c (store_expr): Use force_operand before emit_move_insn.
14580
14581 2004-02-02  Jeff Law  <law@redhat.com>
14582             Roger Sayle  <roger@eyesopen.com>
14583
14584         * tree.c (commutative_tree_code, associative_tree_code): New
14585         functions.
14586         (iterative_hash_expr): Use commutative_tree_code.
14587         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14588         * fold-const.c (operand_equal_p): Use commutative_tree_code
14589         rather than inlining the commutativity check.
14590         (fold): Likewise.
14591
14592 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14593
14594         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14595         * config/frv/frv-protos.h: Remove the prototype for
14596         frv_function_arg_keep_as_reference.
14597         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14598         Remove.
14599         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14600         * config/stormy16/stormy16.h: Remove the commented-out
14601         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14602
14603 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14604
14605         PR target/13914
14606         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14607         for retaddr_column.
14608
14609 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14610
14611         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14612         gen_rtx.
14613
14614 2004-02-02  Eric Christopher  <echristo@redhat.com>
14615             Zack Weinberg  <zack@codesourcery.com>
14616
14617         * c-opts.c (c_common_handle_option): Add -finput-charset.
14618         * c.opt: Ditto.
14619         * cppcharset.c (one_iso88591_to_utf8): Remove.
14620         (convert_iso88591_utf8): Ditto.
14621         (conversion_tab): Remove 8859-1 converter.
14622         (_cpp_input_to_utf8): Remove.
14623         (_cpp_init_iconv_buffer): Ditto.
14624         (_cpp_close_iconv_buffer): Ditto.
14625         (_cpp_convert_input): New function.
14626         (_cpp_default_encoding): Ditto.
14627         * cpphash.h: Add/remove prototypes for above.
14628         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14629         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14630         for narrow execution and input character sets.
14631         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14632         * doc/cppopts.texi: Document -finput-charset.
14633
14634 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14635
14636         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14637         against FIRST_PSEUDO_REGISTER.
14638
14639 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14640
14641         * doc/invoke.texi (SPARC options): Further improve.
14642
14643 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14644
14645         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14646         config/h8300/h8300.c, config/ip2k/ip2k.md,
14647         config/iq2000/iq2000.c, config/mips/mips.c,
14648         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14649         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14650         config/v850/v850.md: Fix indentation.
14651
14652 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14653
14654         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14655         arguments on a 16-byte boundary in the parameter array if ARCH64.
14656         Split handling of TFmode.
14657
14658 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14659
14660         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14661         Don't test CONSTANT_P (x).
14662         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14663         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14664         Fix misindentation.
14665
14666 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14667
14668         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14669
14670 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14671
14672         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14673         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14674         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14675         config/iq2000/iq2000.c, config/m32r/m32r.c,
14676         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14677         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14678         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14679         config/stormy16/stormy16.c, config/v850/v850.md,
14680         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14681
14682 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14683
14684         * config/mcore/mcore.c (block_move_sequence): Replace
14685         gen_rtx_CONST_INT with GEN_INT.
14686
14687 2004-02-02  Jan Hubicka  <jh@suse.cz>
14688
14689         * alias.c (record_set): Use hard_regno_nregs.
14690         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14691         * builtins.c (apply_args_size): Likewise.
14692         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14693         mark_set_regs, add_stored_regs, mark_referenced_regs,
14694         insert_restore, insert_save, insert_one_insn): Likewise.
14695         * cfgcleanup.c: Include regs.h
14696         (mark_effect, mentions_nonequal_regs): Likewise.
14697         * cfgrtl.c (mark_killed_regs): Likewise
14698         * combine.c (update_table_tick, record_value_for_reg,
14699         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14700         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14701         reg_bitfield_target_p, distribute_notes): Likewise.
14702         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14703         exp_equiv_p, cse_insn): Likewise.
14704         * cselib.c (cselib_lookup): Likewise.
14705         (cselib_invalidate_regno, cselib_record_set): Likewise.
14706         * df.c (df_ref_record): Likewise.
14707         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14708         Likewise.
14709         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14710         count_or_remove_death_notes_bb): Likewise.
14711         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14712         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14713         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14714         * integrate.c (mark_stores): Likewise.
14715         * jump.c (delete_prior_computation): Likewise.
14716         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14717         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14718         * loop.c (LOOP_REGNO_NREGS): Likewise.
14719         * postreload.c (reload_combine, reload_combine_note_store,
14720         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14721         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14722         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14723         try_recolor_web, insert_coalesced_conflicts, check_colors,
14724         break_precolored_alias): Likewise.
14725         * ra-debug.c: Include regs.h
14726         (ra_print_rtx_object): Likewise.
14727         * ra-rewrite (choose_spill_colors): Likewise.
14728         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14729         * ra.c (init_ra): Likewise.
14730         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14731         peep2_find_free_register): Likewise.
14732         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14733         * regclass.c (hard_regno_nregs): New array.
14734         (init_reg_modes_once): Initialize it.
14735         (choose_hard_reg_mode): Use it.
14736         (record_reg_classes): Likewise.
14737         * regmove.c (mark_flags_life_zones): Likewise.
14738         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14739         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14740         copy_value, maybe_mode_change, find_oldest_value_reg,
14741         copyprop_hardreg_forward_1):
14742         * regs.h (hard_regno_nregs): Declare.
14743         * realod.c (reload_inner_reg_of_subreg): Use it.
14744         (push_reload, combine_reloads, find_dummy_reload,
14745         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14746         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14747         reload_adjust_reg_for_mode): Likewise.
14748         * reload1.c (compute_use_by_pseudos, count_pseudo,
14749         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14750         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14751         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14752         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14753         delete_output_reload): Likewise.
14754         * resource.c (update_live_status, mark_referenced_resources,
14755         mark_set_resources, mark_target_live_regs): Likewise.
14756         * rtlanal.c:  Include regs.h
14757         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14758         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14759         subreg_regno_offset, subreg_offset_representable_p,
14760         hoist_test_store): Likewise.
14761         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14762         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14763         * stmt.c: Include regs.h
14764         (decl_conflicts_with_clobbers_p): Likewise.
14765         * varasm.c (make_decl_rtl): Likewise.
14766         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14767
14768 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14769
14770         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14771         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14772         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14773         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14774         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14775         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14776         config/iq2000/iq2000.h, config/m32r/m32r.c,
14777         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14778         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14779         config/mcore/mcore.c, config/mcore/mcore.h,
14780         config/mcore/mcore.md, config/mips/mips.c,
14781         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14782         config/rs6000/rs6000.c, config/s390/s390.c,
14783         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14784         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14785         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14786
14787 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14788
14789         * config/h8300/h8300.md (two peephole2's): New.
14790
14791 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14792
14793         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14794         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14795         (ASM_CPU_SPEC): Likewise
14796         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14797         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14798
14799 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14800
14801         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14802         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14803         (expand_builtin): Always call expand_builtin_pow.
14804
14805 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14806
14807         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14808         BUILT_IN_SIGNBITL): New GCC builtins.
14809         * builtins.c (expand_builtin_signbit): New function to RTL expand
14810         calls to signbit, signbitf and signbitl as inline intrinsics.
14811         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14812         (fold_builtin_signbit): New function to perform constant folding
14813         of signbit, signbitf and signbitl.
14814         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14815
14816         * doc/extend.texi: Document new signbit{,f,l} builtins.
14817
14818 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14819
14820         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14821
14822 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14823
14824         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14825         "mips_const_double_ok" and "simple_memory_operand", which were
14826         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14827         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14828         for removal of simple_memory_operand.
14829
14830 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14831
14832         * config/c4x/c4x.md: Use GEN_INT instead of
14833         gen_rtx (CONST_INT, ...).
14834
14835 2004-01-31  Richard Henderson  <rth@redhat.com>
14836
14837         * varasm.c (output_constant_pool): Don't zap the pool.
14838
14839 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14840
14841         * genrecog.c (decision_type): Add DT_const_int.
14842         (write_cond) [DT_const_int]: Print a comparison against small
14843         constant.
14844         (write_node): Simplify comparisons against small constants
14845         before printing tests.
14846
14847 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14848
14849         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14850         instead of gen_rtx_CONST_INT.
14851
14852 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14853
14854         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14855         instead of gen_rtx_CONST_INT.
14856
14857 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14858
14859         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14860         hook_bool_CUMULATIVE_ARGS_false.
14861         * targhooks.c (default_strict_argument_naming): Rename to
14862         hook_bool_CUMULATIVE_ARGS_false.
14863         * targhooks.h: Update the prototype for
14864         default_strict_argument_naming.
14865
14866 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14867
14868         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14869         * config/sh/sh.h: Likewise.
14870         * config/sh/sh.md: Likewise.
14871
14872 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14873
14874         * doc/invoke.texi (SPARC options): Restructure and update.
14875
14876 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14877
14878         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14879         STRICT_ARGUMENT_NAMING): Poison.
14880         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14881         hook_bool_tree_false.
14882         * targhooks.c (default_promote_function_args): Remove.
14883         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14884         Don't check incoming.
14885         (default_strict_argument_naming): Don't use
14886         STRICT_ARGUMENT_NAMING.
14887         * targhooks.h: Remove the prototype for
14888         default_promote_function_args.
14889
14890 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14891
14892         * config/i386/i386-protos.h: Remove the prototype for
14893         ix86_setup_incoming_varargs.
14894         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14895         (ix86_setup_incoming_varargs): Make it static.
14896         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14897
14898 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14899
14900         * alloc-pool.c: Fix comment typos.
14901         * builtin-types.def: Likewise.
14902         * builtins.def: Likewise.
14903         * c-pretty-print.c: Likewise.
14904         * df.h: Likewise.
14905         * reload1.c: Likewise.
14906
14907 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14908
14909         * doc/invoke.texi: Follow spelling conventions.
14910         * doc/tm.texi: Likewise.
14911
14912 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14913
14914         * doc/install.texi: Fix typos.
14915         * doc/invoke.texi: Likewise.
14916
14917 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14918
14919         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14920         registers as pointers.
14921         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14922
14923 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14924
14925         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14926         and restore it to gen_lowpart_general on exit.
14927         (gen_lowpart_for_combine): Adjust all callers to go through
14928         gen_lowpart.
14929         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14930         and restore it to gen_lowpart_general on exit.
14931         (gen_lowpart_if_possible): Adjust all callers to go through
14932         gen_lowpart.
14933         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14934         (gen_lowpart): Declare as pointer to function, initialized to
14935         gen_lowpart_general.
14936         * rtl.h (gen_lowpart): Declare as pointer to function.
14937
14938 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14939
14940         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14941         * calls.c: Likewise.
14942         * emit-rtl.c: Likewise.
14943         * function.c: Likewise.
14944         * reload1.c: Likewise.
14945         * config/i386/cygming.h: Likewise.
14946         * config/i386/i386.c: Likewise.
14947         * config/i386/winnt.c: Likewise.
14948
14949 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14950
14951         PR bootstrap/9249
14952         * doc/install.texi: document --enable-__cxa_atexit option.
14953         * configure.ac: Disable __cxa_atexit if not supported.
14954         * configure: Regenerate.
14955
14956 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14957
14958         * ggc-zone.c (ggc_free): New function.
14959
14960 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14961
14962         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14963         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14964         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14965         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14966         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14967         config/alpha/alpha.c, config/alpha/alpha.h,
14968         config/alpha/alpha.md, config/alpha/unicosmk.h,
14969         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14970         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14971         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14972         config/frv/frvend.c, config/i386/cygming.h,
14973         config/i386/djgpp.h, config/i386/emmintrin.h,
14974         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14975         config/i386/i386-protos.h, config/i386/openbsd.h,
14976         config/i386/winnt.c, config/i386/xm-mingw32.h,
14977         config/i386/xmmintrin.h, config/ia64/ia64.md,
14978         config/iq2000/iq2000.md, config/m32r/m32r.md,
14979         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14980         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14981         config/mips/iris5gas.h, config/mips/iris6.h,
14982         config/mips/iris6gas.h, config/mips/linux.h,
14983         config/mips/mips.md, config/mips/netbsd.h,
14984         config/mips/openbsd.h, config/mips/windiss.h,
14985         config/pa/fptr.c, config/rs6000/aix.h,
14986         config/rs6000/altivec.h, config/rs6000/darwin.h,
14987         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14988         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14989         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14990         config/sparc/sol2.h: Update copyright.
14991
14992 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14993
14994         * Makefile.in (abs_docdir, abs_srcdir): Define.
14995         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14996
14997 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14998
14999         * genconfig.c (main): Have CC0_P check its operand even on a
15000         target without cc0.
15001
15002 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15003
15004         * config/alpha/alpha.c: Remove mentions of deprecates macros
15005         in comments, remove some target-independent comments about target
15006         macros, and/or add minimal function comments for target hook
15007         implementations.
15008         * config/avr/avr.c: Likewise.
15009         * config/ia64/ia64.h: Likewise.
15010         * config/ip2k/ip2k.c: Likewise.
15011         * config/iq2000/iq2000.c: Likewise.
15012         * config/m32r/m32r.h: Likewise.
15013         * config/m68hc11/m68hc11.c: Likewise.
15014         * config/mcore/mcore.c: Likewise.
15015         * config/mmix/mmix.c: Likewise.
15016         * config/mn10300/mn10300.c: Likewise.
15017         * config/pa/pa.c: Likewise.
15018         * config/pdp11/pdp11.c: Likewise.
15019         * config/rs6000/rs6000.h: Likewise.
15020         * config/sh/sh.c: Likewise.
15021         * config/sh/sh.h: Likewise.
15022         * config/sparc/sparc.c: Likewise.
15023         * config/sparc/sparc.h: Likewise.
15024         * config/stormy16/stormy16.c: Likewise.
15025         * config/xtensa/xtensa.c: Likewise.
15026
15027 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15028
15029         PR optimization/12147
15030         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15031         RELOAD_FOR_OPADDR_ADDR.
15032         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15033         might be reused as RELOAD_FOR_OPADDR_ADDR register.
15034
15035 2004-01-30  Jan Hubicka  <jh@suse.cz>
15036
15037         * reload.c (get_secondary_mem): Fix updating of
15038         secondary_memlocs_elim_used.
15039
15040 2004-01-30  Richard Henderson  <rth@redhat.com>
15041
15042         * varasm.c (struct rtx_const, struct pool_constant): Remove.
15043         (MAX_RTX_HASH_TABLE): Remove.
15044         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15045         (first_pool, last_pool, pool_offset): Remove.
15046         (struct rtx_constant_pool): Split out from ...
15047         (struct varasm_status): ... here.  Reference one via pointer.
15048         (struct constant_descriptor_rtx): Merge struct pool_constant.
15049         (SYMHASH): Remove.
15050         (decode_rtx_const): Remove.
15051         (const_hash_rtx, compare_constant_rtx): Remove.
15052         (record_constant_rtx): Remove.
15053         (const_desc_rtx_hash, const_desc_rtx_eq): New.
15054         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15055         (const_rtx_hash_1, const_rtx_hash): New.
15056         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15057         (simplify_subtraction): Use simplify_rtx.
15058         (force_const_mem): Rewrite to use new data structures.
15059         (find_pool_constant): Likewise.
15060         (get_pool_constant, get_pool_constant_mark,
15061         get_pool_constant_for_function, get_pool_mode,
15062         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15063         (output_constant_pool_2): Split out from output_constant_pool.
15064         (output_constant_pool_1): Likewise.  Use new pool datastructures.
15065         (output_constant_pool): Zap entire pool datastructure.
15066         (mark_constant): Use new pool datastructures.
15067         (mark_constants): Use for_each_rtx.
15068         (mark_constant_pool): Use new pool datastructures.
15069
15070 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
15071
15072         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15073         Copy operands[1] to pseudo for simplify_gen_subreg.
15074
15075 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15076
15077         * gcse.c (bypass_block): Fix a typo in the previous check-in
15078         to the file.
15079
15080 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
15081
15082         * toplev.c: Include alloc-pool.h.
15083         * Makefile.in (toplev.c): Update dependencies.
15084
15085 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15086
15087         * combine.c (simplify_shift_const, case XOR): Be careful when
15088         commuting XOR with ASHIFTRT.
15089
15090 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15091             Eric Botcazou  <ebotcazou@libertysurf.fr>
15092
15093         * config/sparc/sparc-protos.h: Remove the prototype for
15094         sparc_builtin_saveregs.
15095         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15096         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15097         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15098         (TARGET_STRUCT_VALUE_RTX): Likewise.
15099         (TARGET_RETURN_IN_MEMORY): Likewise.
15100         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15101         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15102         (sparc_builtin_saveregs): Make it static.
15103         (sparc_promote_prototypes): New.
15104         (sparc_struct_value_rtx): Likewise.
15105         (sparc_return_in_memory): Likewise.
15106         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15107         (PROMOTE_FUNCTION_RETURN): Likewise.
15108         (RETURN_IN_MEMORY): Likewise.
15109         (STRUCT_VALUE): Likewise.
15110         (STRUCT_VALUE_INCOMING): Likewise.
15111         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15112         (STRICT_ARGUMENT_NAMING): Likewise.
15113         (PROMOTE_PROTOTYPES): Likewise.
15114
15115         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15116
15117 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15118
15119         PR c/12818
15120         * varasm.c (const_hash_1) <STRING_CST>: Use the
15121         address to compute the hash value if flag_writable_strings.
15122         (compare_constant) <STRING_CST>: Compare the addresses
15123         if flag_writable_strings.
15124         (build_constant_desc): Do not copy the expression for a
15125         STRING_CST if flag_writable_strings.
15126
15127 2004-01-30  Jan Hubicka  <jh@suse.cz>
15128
15129         * alloc-pool.c: Include hashtab.h
15130         (alloc_pool_descriptor): New structure
15131         (alloc_pool_hash): New global variable.
15132         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15133         (create_alloc_pool): Update statistics.
15134         (free_alloc_pool): Likewise.
15135         (pool_alloc): Likewise.
15136         (output_info): New structure
15137         (print_statistics, dump_alloc_pool_statistics): New function.
15138         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15139         (dump_alloc_pool_statistics): Declare.
15140         * toplev.c (finalize):  Dump statistics.
15141
15142         * reload.c (secondary_memlocs_elim_used): New static variable.
15143         (get_secondary_mem): Update it.
15144         (find_reloads): Use it.
15145
15146 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
15147
15148         * toplev.c: Fix broken checkin of 2003-12-30, again.
15149
15150 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
15151
15152         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15153         s390*-*-* targets by specifying a 'nop' insn.
15154         * configure: Regenerate.
15155
15156 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15157
15158         PR target/11475
15159         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15160
15161 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15162
15163         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15164         of addr when creating MEM copy.
15165
15166 2004-01-29  Devang Patel  <dpatel@apple.com>
15167
15168         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15169
15170 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15171
15172         PR inline-asm/6162
15173         * reload.c (find_reloads): Only support one pair of commutative
15174         operands.
15175
15176 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15177
15178         PR java/13824
15179         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15180         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15181         recursion.
15182
15183 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15184
15185         * config/frv/frv.c: Don't mention deprecated macros in
15186         comments.  Remove some target-independent comments about
15187         target macros.
15188         * config/frv/frv.h: Likewise.
15189
15190 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15191
15192         * cfghooks.c (split_block): Set probability and count of the
15193         new edge.
15194
15195 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
15196
15197         * dwarf2out.c (struct die_struct): Added field decl_id.
15198         (decl_die_table): Changed to hash table.
15199         (decl_die_table_allocated): Deleted.
15200         (decl_die_table_in_use): Deleted.
15201         (DECL_DIE_TABLE_INCREMENT): Deleted.
15202         (decl_die_table_hash): New function.
15203         (decl_die_table_eq): New function.
15204         (lookup_decl_die): Lookup in a hash table.
15205         (equate_decl_number_to_die): Insert into a hash table.
15206         (dwarf2out_init): Init hash table decl_die_table.
15207
15208 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15209
15210         PR optimization/13424
15211         * expr.c (store_constructor): Revert 2003-12-03 change.
15212
15213         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15214         expected before returning early.  Avoid sharing RTL if they
15215         need to be changed.
15216
15217         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15218         handling so that memory attributes are preserved.  Don't call
15219         ix86_set_move_mem_attrs.
15220         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15221         (ix86_expand_clrstr): Rename src argument to
15222         dst.  Rework rep_stos and strset handling so that memory attributes
15223         are preserved.
15224         (ix86_expand_strlen): Pass src argument to
15225         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15226         memory attributes are preserved.
15227         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15228         change_address instead of gen_rtx_MEM.
15229         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15230         expanders.
15231         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15232         strmovqi, strmovqi_rex64): Remove.
15233         (rep_mov*, strmov*): Prefix insn names with *.
15234         (strset, strset_singleop, rep_stos): New expanders.
15235         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15236         strsetqi, strsetqi_rex64): Remove.
15237         (rep_stos*, strset*): Prefix insn names with *.
15238         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15239         to SImode.
15240         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15241         are preserved.
15242         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15243         Prefix insn names with *.
15244         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15245         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15246         (strlenqi_1): New expander.
15247         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15248
15249 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15250
15251         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15252         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15253         verify_flow_info): Declaration removed.
15254         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15255         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15256         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15257         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15258         instead of delete_block.
15259         * cfghooks.c: Include timevar.h and toplev.h.
15260         (cfg_hooks): Define here.
15261         (verify_flow_info, dump_bb): Moved from cfg.c.
15262         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15263         split_block, split_block_after_labels, move_block_after,
15264         delete_basic_block, split_edge, create_basic_block,
15265         create_empty_bb, can_merge_blocks_p, merge_blocks,
15266         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15267         New functions.
15268         * cfghooks.h (struct cfg_hooks): Added fields name,
15269         make_forwarder_block, tidy_fallthru_edge and
15270         move_block_after. Changed type of verify_flow_info, dump_bb,
15271         split_block fields. Renamed cfgh_split_edge and delete_block
15272         fields.
15273         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15274         split_block, delete_block, split_edge, create_basic_block,
15275         can_merge_blocks_p, merge_blocks): Macros removed.
15276         (cfg_hooks): Do not export.
15277         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15278         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15279         move_block_after, delete_basic_block, split_edge, create_basic_block,
15280         create_empty_bb, can_merge_blocks_p, merge_blocks,
15281         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15282         Declare.
15283         (cfg_layout_rtl_cfg_hooks): Declare.
15284         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15285         New functions.
15286         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15287         (redirect_edge_with_latch_update): Removed.
15288         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15289         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15290         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15291         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15292         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15293         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15294         cfghooks.c.
15295         (rtl_create_basic_block): Coding style fix.
15296         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15297         rtl_make_forwarder_block): New functions.
15298         (update_cfg_after_block_merging): Removed.
15299         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15300         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15301         to dump_bb.
15302         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15303         find_if_case_2): Don't update dominators.
15304         * timevar.def (TV_CFG_VERIFY): New.
15305         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15306         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15307         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15308         (remove_bbs): Don't call remove_bbs.
15309         (create_preheader): Use make_forwarder_block.
15310         (mfb_keep_just, mfb_update_loops): New static functions.
15311
15312 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15313
15314         * config/avr/avr.h: Remove target-independent comments about
15315         target macros.
15316
15317 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15318
15319         * timevar.c (timevar_print): Mention when checking is enabled.
15320
15321 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15322
15323         * c-lex.c (c_lex): Rename to...
15324         (c_lex_with_flags): Add new parameter to get CPP flags.
15325         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15326         * c-pragma.h (c_lex_with_flags): Declare.
15327
15328 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15329
15330         * config/mcore/mcore.c (mcore_external_libcall): Add a
15331         comment.
15332         (mcore_return_in_memory): Likewise.
15333
15334 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15335
15336         * config/mcore/mcore-protos.h: Remove the prototype for
15337         mcore_setup_incoming_varargs.
15338         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15339         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15340         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15341         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15342         (TARGET_STRUCT_VALUE_RTX): Likewise.
15343         (TARGET_RETURN_IN_MEMORY): Likewise.
15344         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15345         (mcore_setup_incoming_varargs): Make it static.  Receive the
15346         first argument by reference.  Add argument second_time.
15347         (mcore_external_libcall): New.
15348         (mcore_return_in_memory): Likewise.
15349         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15350         (PROMOTE_FUNCTION_RETURN): Likewise.
15351         (STRUCT_VALUE): Likewise.
15352         (RETURN_IN_MEMORY): Likewise.
15353         (SETUP_INCOMING_VARARGS): Likewise.
15354         (PROMOTE_PROTOTYPES): Likewise.
15355         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15356
15357 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15358
15359         * config/m32r/m32r-protos.h: Remove the prototype for
15360         m32r_setup_incoming_varargs.
15361         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15362         (TARGET_STRUCT_VALUE_RTX): Likewise.
15363         (TARGET_RETURN_IN_MEMORY): Likewise.
15364         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15365         (m32r_return_in_memory): New.
15366         (m32r_setup_incoming_varargs): Make it static.
15367         * config/m32r/m32r.h: Remove #undef of
15368         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15369         definitions of PROMOTE_FUNCTION_ARGS and
15370         PROMOTE_FUNCTION_RETURN.
15371         (PROMOTE_PROTOTYPES): Remove.
15372         (RETURN_IN_MEMORY): Likewise.
15373         (STRUCT_VALUE): Likewise.
15374
15375 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15376
15377         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15378         (TARGET_STRUCT_VALUE_RTX): Likewise.
15379         (m68k_struct_value_rtx): Likewise.
15380         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15381         STRUCT_VALUE_REGNUM.
15382         (PROMOTE_PROTOTYPES): Remove.
15383         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15384         STRUCT_VALUE_REGNUM.
15385         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15386         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15387
15388 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15389
15390         * config/stormy16/stormy16.c
15391         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15392         TARGET_BUILD_BUILTIN_VA_LIST.
15393
15394 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15395
15396         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15397         (TARGET_STRUCT_VALUE_RTX): Likewise.
15398         (TARGET_RETURN_IN_MEMORY): Likewise.
15399         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15400         (v850_return_in_memory): Likewise.
15401         (v850_setup_incoming_varargs): Likewise.
15402         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15403         (SETUP_INCOMING_VARARGS): Likewise.
15404         (RETURN_IN_MEMORY): Likewise.
15405         (STRUCT_VALUE): Likewise.
15406
15407 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15408
15409         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15410         (fr30_setup_incoming_varargs): Don't use
15411         STRICT_ARGUMENT_NAMING.
15412         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15413         (STRICT_ARGUMENT_NAMING): Likewise.
15414
15415 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15416
15417         * config/frv/frv-protos.h: Remove the prototype for
15418         frv_expand_builtin_saveregs.
15419         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15420         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15421         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15422         STRUCT_VALUE_REGNUM.
15423         (frv_expand_builtin_saveregs): Make it static.
15424         (frv_struct_value_rtx): New.
15425         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15426
15427 2004-01-29  Jan Hubicka  <jh@suse.cz>
15428
15429         PR c++/12850
15430         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15431         initial pointers.
15432         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15433         for functions that will be only inlined.
15434         (cgraph_mark_function_to_output): Likewise.
15435         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15436         do not clear function body.
15437         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15438         (tree_rest_of_compilation): Reorganize the logic releasing function
15439         body to use callgraph datastructure.
15440
15441 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15442
15443         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15444         to register_operand.
15445
15446 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15447
15448         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15449         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15450         match_operand expressions so that all match_dups appear
15451         lexically after their corresponding match_operands.
15452
15453 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15454
15455         * config/h8300/h8300.c (WORD_REG_USED): Use
15456         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15457         (compute_saved_regs): Likewise.
15458         (h8300_expand_prologue): Likewise.  Allocate locals after
15459         saving registers.
15460         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15461         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15462         registers.
15463         (h8300_initial_elimination_offset): Adjust for the new frame
15464         layout, which swaps flips the order of locals and saved
15465         registers.
15466         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15467         (HARD_FRAME_POINTER_REGNUM): New.
15468         (ELIMINABLE_REGS): Add an elimination rule from
15469         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15470         (REGISTER_NAMES): Add fp.
15471         * config/h8300/h8300.md (FP_REG): Change to 11.
15472         (HFP_REG): New.
15473
15474 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15475
15476         * genrecog.c (write_node): Remove a useless local variable.
15477
15478 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15479
15480         * Makefile.in (options.c options.h): Use stamp file s-options to
15481         avoid unnecessary rebuilds.
15482         (options.o): New target listing dependencies.
15483         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15484         (STAGESTUFF): Add s-gtyp-gen.
15485
15486 2004-01-28  Richard Henderson  <rth@redhat.com>
15487
15488         * ggc.h (ggc_free): Declare.
15489         * ggc-common.c (ggc_realloc): Use it.
15490         * ggc-page.c: Remove lots of inline markers.
15491         (globals): Add free_object_list.
15492         (ggc_alloc): Tidy.
15493         (ggc_free, validate_free_objects): New.
15494         (poison_pages): Provide default.
15495         (ggc_collect): Call validate_free_objects; emit markers to
15496         the debug file.
15497
15498 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15499             Jim Wilson  <wilson@specifixinc.com>
15500
15501         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15502         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15503         scratch pointer.
15504         (ia64_secondary_reload_class): Delete case GR_REGS.
15505         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15506         Do not allocate a scratch register.
15507         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15508
15509 2004-01-28  Jan Hubicka  <jh@suse.cz>
15510
15511         * gcse.c (bypass_block): Prevent edges to be unified when we are
15512         about to emit compenstation code.
15513
15514 2004-01-28  Nick Clifton  <nickc@redhat.com>
15515
15516         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15517         the setcwx insn into a register.
15518
15519 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15520
15521         * config/fp-bit.c (pack_d): When using paired doubles to implement
15522         a long double, round the high part separately.
15523         (unpack_d): Fix the case in which the high part is a power of two
15524         and the low part is a nonzero value of the opposite sign.
15525
15526 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15527
15528         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15529         (TARGET_STRUCT_VALUE_RTX): Likewise.
15530         (c4x_external_libcall): Likewise.
15531         (c4x_struct_value_rtx): Likewise.
15532         * config/c4x/c4x.h: Remove.
15533         (STRUCT_VALUE_REGNUM): Likewise.
15534         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15535
15536 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15537
15538         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15539         (TARGET_STRUCT_VALUE_RTX): Likewise.
15540         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15541         (STRUCT_VALUE): Likewise.
15542         (PROMOTE_PROTOTYPES): Likewise.
15543
15544 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15545
15546         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15547         CONST_INT before using INTVAL.
15548
15549 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15550
15551         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15552         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15553         frame if !TARGET_BACKCHAIN.
15554         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15555         TARGET_BACKCHAIN.
15556         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15557
15558 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15559
15560         * ia64.c (ia64_function_arg): When placing HFAs in integer
15561         registers, do not special case the mode used for complex
15562         types.  Do not advance int_regs until the current register
15563         is full.
15564
15565 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15566
15567         PR target/7297
15568         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15569
15570 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15571
15572         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15573         slow, unaligned loads and stores while debugging.  Fix formatting.
15574
15575 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15576
15577         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15578         of computing wmode.
15579         (restore_stack_nonlocal): Same.
15580
15581 2004-01-27  Devang Patel <dpatel@apple.com>
15582
15583         * Makefile.in (dwarf2out.o): Depend on input.h
15584         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15585         imported_module_or_decl.
15586         (xcoff_debug_hooks): Same.
15587         * sdbout.c (sdb_debug_hooks): Same.
15588         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15589         * debug.c (do_nothing_debug_hooks): Same.
15590         (debug_nothing_tree_tree): New function.
15591         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15592         * dwarf2out.c: Include input.h.
15593         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15594         (remove_child_TAG): New function.
15595         (dwarf_tag_name): Handle DW_TAG_imported_module.
15596         (gen_subprogram_die): Equate decl number to declaration die. Do not
15597         remove all children dies while reusing declaration die for definition.
15598         Instead, selectively remove only formal parameters.
15599         (gen_variable_die): Equate variable decl to declaration die.
15600         (gen_field_die): Equate field decl to line number.
15601         (force_namespace_die): Replace it with ...
15602         (force_decl_die): ... this.
15603         (force_type_die): New function.
15604         (setup_namespace_context): Replace use of force_namespace_die() with
15605         force_decl_die().
15606         (gen_namespace_die): Same.
15607         (dwarf2out_imported_module_or_decl): New function.
15608
15609 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15610
15611         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15612         on CQImode and CHImode incoming arguments in register a7.
15613         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15614         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15615         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15616         xtensa_copy_incoming_a7 before reload.
15617
15618 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15619
15620         * coverage.c (get_coverage_counts): Give a different message
15621         if flag_guess_branch_prob is set.
15622         * predict.c (counts_to_freqs): Return an int.
15623         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15624         calculate estimates.
15625
15626 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15627
15628         * config/iq2000/iq2000-protos.h: Remove the prototype for
15629         iq2000_setup_incoming_varargs.
15630         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15631         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15632         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15633         (TARGET_STRUCT_VALUE_RTX): Likewise.
15634         (TARGET_RETURN_IN_MEMORY): Likewise.
15635         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15636         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15637         (iq2000_return_in_memory): Likewise.
15638         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15639         first argument by reference.
15640         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15641         (PROMOTE_FUNCTION_RETURN): Likewise.
15642         (PROMOTE_PROTOTYPES): Likewise.
15643         (RETURN_IN_MEMORY): Likewise.
15644         (STRUCT_VALUE): Likewise.
15645         (SETUP_INCOMING_VARARGS): Likewise.
15646         (STRICT_ARGUMENT_NAMING): Likewise.
15647
15648 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15649
15650         * fixinc/fixinc.c (test_test): Initialize res.
15651         (start_flexer): Initialize pz_cmd_save.
15652
15653 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15654
15655         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15656         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15657
15658 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15659
15660         PR 7198
15661         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15662         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15663         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15664         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15665         Possibly rename pattern for consistency.
15666         Remove ??? comments suggesting that this be done.
15667         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15668         New patterns.
15669         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15670         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15671         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15672         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15673         Update to match.
15674
15675 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15676
15677         * config/arm/arm.c (output_return_instruction): Only restore IP
15678         into SP if frame_pointer_needed.
15679
15680 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15681
15682         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15683         for SCmode and DCmode if ARCH32.
15684         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15685         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15686         if ARCH32.
15687         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15688         if ARCH32.
15689         (BASE_OUTGOING_VALUE_REG): Likewise.
15690
15691 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15692
15693         PR target/10904
15694         PR target/13058
15695         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15696         Forbid mode changes from SImode for lower FP regs if ARCH64.
15697
15698 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15699
15700         * Makefile.in (bt-load.o): Depend on except.h.
15701         * bt-load.c (except.h): #include.
15702         (compute_defs_uses_and_gen): If insn at end of BB can throw
15703         within this function, consider registers used by it unavailable for
15704         btr migration.
15705         (move_btr_def): If insn at end of BB can throw, insert before rather
15706         than after.
15707
15708         * flags.h (flag_btr_bb_exclusive): Declare.
15709         * toplev.c (flag_btr_bb_exclusive): New variable.
15710         (f_options): Add btr-bb-exclusive.
15711         * bt-load.c (augment_live_range): Restore old behaviour if
15712         flag_btr_bb_exclusive is set.
15713         * common.opt: Add entry for -fbtr-bb-exclusive.
15714         * opts.c (common_handle_options): Same.
15715         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15716
15717         * bt-load.c (btrs_live_at_end): New variable.
15718         (compute_defs_uses_and_gen): Compute its pointed-to array.
15719         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15720         (augment_live_range): When augmenting with a new dominator,
15721         use only its btrs_live_at_end set, but also add in the full set
15722         of the old dominator.
15723         (btr_def_live_range): Use btrs_live_at_end.
15724         (move_btr_def): Set other_btr_uses_before_def, and move new set
15725         to the end of the basic block, if appropriate.
15726         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15727
15728         * bt-load.c (basic_block_freq): Remove outdated comment.
15729
15730 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15731
15732         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15733         (PREDICATE_CODES): Remove duplicate.
15734         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15735         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15736         (MASK_PROFILE_KERNEL): Adjust define.
15737
15738 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15739
15740         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15741         of long string literals from 32 bytes to sizeof (void *) when !-Os
15742         and to 1 with -Os.
15743
15744 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15745
15746         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15747         constant addresses in the normal mode.
15748
15749 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15750
15751         * system.h (CHAR_BITFIELD): Delete.
15752         (BOOL_BITFIELD): New.
15753         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15754         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15755
15756 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15757
15758         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15759         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15760         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15761         (TARGET_STRUCT_VALUE_RTX): Likewise.
15762         (TARGET_RETURN_IN_MEMORY): Likewise.
15763         (arc_return_in_memory): Likewise.
15764         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15765         (PROMOTE_FUNCTION_RETURN): Likewise.
15766         (RETURN_IN_MEMORY): Likewise.
15767         (STRUCT_VALUE): Likewise.
15768
15769 2004-01-26  Richard Henderson  <rth@redhat.com>
15770
15771         * c-parse.in (extension): Use itype.
15772         (SAVE_EXT_FLAGS): Don't allocate a tree.
15773         (RESTORE_EXT_FLAGS): Don't read a tree.
15774
15775 2004-01-26  Jan Hubicka  <jh@suse.cz>
15776
15777         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15778         to datastructure to be recycled.
15779
15780 2004-01-25  Jan Hubicka  <jh@suse.cz>
15781
15782         * genextract.c (main): Do not output the memset when not checking.
15783
15784 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15785
15786         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15787         switch statement instead of a chain of if statements.
15788
15789 2004-01-26  Jeff Law  <law@redhat.com>
15790
15791         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15792         acute accents for Petur Runolfsson's entry.
15793
15794 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15795
15796         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15797         (TARGET_RETURN_IN_MEMORY): Likewise.
15798         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15799         (RETURN_IN_MEMORY): Likewise.
15800
15801 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15802
15803          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15804          unaligned load/store into smaller loads and stores.
15805
15806 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15807
15808         * function.c (assign_parms): Do not assign
15809         long long argument to memory in prologue if
15810         is it loaded into register.
15811
15812 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15813
15814          PR middle-end/13779
15815          * expr.c (emit_group_load): split constant
15816          correctly into register components of PARALLEL insn.
15817
15818 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15819
15820         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15821         Use adjust_address_nv directly with appropriate mode.
15822         (restore_stack_nonlocal): Ditto.
15823
15824 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15825
15826         * config/xtensa/xtensa-protos.h: Remove the prototype for
15827         xtensa_builtin_saveregs.
15828         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15829         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15830         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15831         (TARGET_STRUCT_VALUE_RTX): Likewise.
15832         (TARGET_RETURN_IN_MEMORY): Likewise.
15833         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15834         (xtensa_builtin_saveregs): Make it static.
15835         (xtensa_return_in_memory): New.
15836         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15837         (PROMOTE_FUNCTION_RETURN): Likewise.
15838         (PROMOTE_PROTOTYPES): Likewise.
15839         (STRUCT_VALUE): Likewise.
15840         (RETURN_IN_MEMORY): Likewise.
15841         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15842
15843 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15844
15845         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15846         (arm_setup_incoming_varargs): Likewise.
15847         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15848
15849 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15850
15851         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15852         (cris_setup_incoming_varargs): Likewise.
15853         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15854
15855 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15856
15857         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15858         (ns32k_struct_value_rtx): Likewise.
15859         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15860         NS32K_STRUCT_VALUE_REGNUM.
15861
15862 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15863
15864         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15865         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15866         (TARGET_STRUCT_VALUE_RTX): Likewise.
15867         (arm_struct_value_rtx): Likewise.
15868         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15869         (STRUCT_VALUE): Likewise.
15870         (STRUCT_VALUE_REGNUM): Likewise.
15871         (PROMOTE_PROTOTYPES): Likewise.
15872
15873 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15874
15875         * config/ia64/ia64-protos.h: Remove the prototype for
15876         ia64_setup_incoming_varargs and ia64_return_in_memory.
15877         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15878         (TARGET_RETURN_IN_MEMORY): Likewise.
15879         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15880         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15881         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15882         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15883         (ia64_return_in_memory): Make it static.  Change the return
15884         type to bool from int.  Add an argument.
15885         (ia64_struct_value_rtx): New.
15886         * config/ia64/ia64.h: Remove commented-out definitions of
15887         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15888         PROMOTE_PROTOTYPES.
15889         (RETURN_IN_MEMORY): Remove.
15890         (STRUCT_VALUE_REGNUM): Likewise.
15891         (STRICT_ARGUMENT_NAMING): Likewise.
15892
15893 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15894
15895         PR target/13666
15896         * config/sparc/sparc.c (function_arg_union_value): New function.
15897         (function_arg): Use it to deal with unions.
15898         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15899         Replace a conditional statement by a simpler one.
15900
15901 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15902
15903         * config/mips/mips.c (mips16_optimize_gp): Delete.
15904         (mips_reorg): Don't call it.
15905
15906 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15907
15908         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15909         (floatunsqihf2): Remove operand 6.
15910         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15911         fix patterns.
15912         (ldi_conditional, ldf_conditional): Validate operands.
15913
15914 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15915
15916         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15917         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15918
15919 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15920
15921         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15922         memory references if TARGET_EXPOSE_LDP nonzero.
15923
15924 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15925
15926         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15927
15928 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15929
15930         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15931         invalid operand combinations.
15932
15933 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15934
15935         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15936         c4x_legitimate_address_p.  Fix post_modify check.
15937
15938         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15939         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15940
15941 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15942
15943         * config/pa/pa-protos.h: Remove the prototype for
15944         hppa_builtin_saveregs.  Add a prototype for
15945         pa_return_in_memory.
15946         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15947         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15948         (TARGET_STRUCT_VALUE_RTX): Likewise.
15949         (TARGET_RETURN_IN_MEMORY): Likewise.
15950         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15951         (pa_struct_value_rtx): Likewise.
15952         (pa_return_in_memory): Likewise.
15953         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15954         PA_STRUCT_VALUE_REGNUM.
15955         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15956         (EXPAND_BUILTIN_SAVEREGS): Remove.
15957         (PROMOTE_PROTOTYPES): Likewise.
15958         (PROMOTE_FUNCTION_RETURN): Likewise.
15959
15960 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15961
15962         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15963         (TARGET_STRUCT_VALUE_RTX): Likewise.
15964         (vax_struct_value_rtx): Likewise.
15965         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15966         VAX_STRUCT_VALUE_REGNUM.
15967         (PROMOTE_PROTOTYPES): Remove.
15968
15969 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15970
15971         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15972
15973 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15974
15975         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15976         and MIPS64 have HI/LO interlocks.  Update comment.
15977
15978 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15979
15980         * config/stormy16/stormy16-protos.h: Remove the prototype for
15981         xstormy16_setup_incoming_varargs.
15982         * config/stormy16/stormy16.c
15983         (xstormy16_setup_incoming_varargs): Remove.
15984         (xstormy16_return_in_memory): New.
15985         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15986         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15987         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15988         (TARGET_STRUCT_VALUE_RTX): Likewise.
15989         (TARGET_RETURN_IN_MEMORY): Likewise.
15990         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15991         (PROMOTE_FUNCTION_RETURN): Likewise
15992         (PROMOTE_PROTOTYPES): Likewise
15993         (RETURN_IN_MEMORY): Likewise
15994         (STRUCT_VALUE): Likewise
15995         (SETUP_INCOMING_VARARGS): Likewise
15996
15997 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15998
15999         * config/mips/mips.c (mips_offset_within_object_p): New function.
16000         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16001         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
16002         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16003
16004 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16005
16006         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16007         (PROMOTE_FUNCTION_RETURN): Likewise.
16008
16009 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16010
16011         * config/mn10300/mn10300-protos.h: Remove the prototype for
16012         mn10300_builtin_saveregs.
16013         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16014         (TARGET_STRUCT_VALUE_RTX): Likewise.
16015         (TARGET_RETURN_IN_MEMORY): Likewise.
16016         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16017         (mn10300_return_in_memory): Likewise.
16018         (mn10300_builtin_saveregs): Make it static.
16019         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16020         (RETURN_IN_MEMORY): Likewise.
16021         (STRUCT_VALUE): Likewise.
16022         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16023
16024 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
16025
16026         PR bootstrap/13853
16027         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16028
16029 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16030
16031         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16032         using ccr.
16033
16034 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16035
16036         * config/i860/i860-protos.h: Remove the prototype for
16037         i860_saveregs.
16038         * config/i860/i860.c (i860_saveregs): Make it static.
16039         (i860_struct_value_rtx): New.
16040         (TARGET_STRUCT_VALUE_RTX): Likewise.
16041         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16042         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16043         I860_STRUCT_VALUE_REGNUM.
16044         (EXPAND_BUILTIN_SAVEREGS): Remove.
16045
16046 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16047
16048         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16049         (TARGET_RETURN_IN_MEMORY): Likewise.
16050         (m68hc11_struct_value_rtx): Likewise.
16051         (m68hc11_return_in_memory): Likewise.
16052         * config/m68hc11/m68hc11.h: Remove a commented-out definition
16053         of PROMOTE_PROTOTYPES.
16054         (RETURN_IN_MEMORY): Remove.
16055         (STRUCT_VALUE_REGNUM): Likewise.
16056
16057 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16058
16059         * config/mmix/mmix-protos.h: Remove the prototype for
16060         mmix_setup_incoming_varargs.
16061         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16062         (TARGET_STRUCT_VALUE_RTX): Likewise.
16063         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16064         (mmix_setup_incoming_varargs): Make it static.
16065         (mmix_struct_value_rtx): New.
16066         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16067         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16068         (STRUCT_VALUE_REGNUM): Remove.
16069         (SETUP_INCOMING_VARARGS): Likewise.
16070
16071 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16072
16073         * config/mips/mips-protos.h: Remove the prototypes for
16074         mips_setup_incoming_varargs and mips_return_in_memory.
16075         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16076         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16077         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16078         (TARGET_STRUCT_VALUE_RTX): Likewise.
16079         (TARGET_RETURN_IN_MEMORY): Likewise.
16080         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16081         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16082         (mips_setup_incoming_varargs): Match the prototype for
16083         TARGET_SETUP_INCOMING_VARARGS.
16084         (mips_return_in_memory): Make it static.  Add argument fntype.
16085         (mips_strict_argument_naming): New.
16086         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16087         (PROMOTE_FUNCTION_ARGS): Likewise.
16088         (PROMOTE_FUNCTION_RETURN): Likewise.
16089         (STRUCT_VALUE): Likewise.
16090         (RETURN_IN_MEMORY): Likewise.
16091         (SETUP_INCOMING_VARARGS): Likewise.
16092         (STRICT_ARGUMENT_NAMING): Likewise.
16093
16094 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16095
16096         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16097         (TARGET_RETURN_IN_MEMORY): Likewise.
16098         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16099         (ip2k_return_in_memory): Likewise.
16100         (ip2k_setup_incoming_varargs): Likewise.
16101         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16102         (STRUCT_VALUE): Likewise.
16103         (STRUCT_VALUE_INCOMING): Likewise.
16104         (SETUP_INCOMING_VARARGS): Likewise.
16105
16106 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16107
16108         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16109         (TARGET_RETURN_IN_MEMORY): Likewise.
16110         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16111         (avr_return_in_memory): Remove.
16112         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16113         (STRUCT_VALUE): Likewise.
16114         (STRUCT_VALUE_INCOMING): Likewise.
16115         (STRICT_ARGUMENT_NAMING): Likewise.
16116
16117 2004-01-25  Jan Hubicka  <jh@suse.cz>
16118
16119         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16120
16121 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
16122
16123         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16124         (mips_regno_mode_ok_for_base_p): Declare.
16125         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16126         (FRAME_POINTER_REGNUM): Renumber to 78.
16127         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16128         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16129         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16130         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16131         (REG_MODE_OK_FOR_BASE_P): Likewise.
16132         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16133         entry for 77 to "$arg" and entry for 78 to "$frame".
16134         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16135         (mips_reg_mode_ok_for_base_p): Remove.
16136         (mips_regno_mode_ok_for_base_p): New function, derived from old
16137         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
16138         restrictions unless we're being strict.
16139         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16140
16141 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16142
16143         * c-common.h: Fix comment typos.
16144         * c-decl.c: Likewise.
16145         * cgraphunit.c: Likewise.
16146         * combine.c: Likewise.
16147         * et-forest.c: Likewise.
16148         * flow.c: Likewise.
16149         * function.c: Likewise.
16150         * ifcvt.c: Likewise.
16151         * integrate.c: Likewise.
16152         * jump.c: Likewise.
16153         * postreload.c: Likewise.
16154         * varray.c: Likewise.
16155
16156 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16157
16158         * doc/frontends.texi: Update copyright.
16159         * doc/gcov.texi: Likewise.
16160         * doc/gty.texi: Likewise.
16161         * doc/sourcebuild.texi: Likewise.
16162         * doc/standards.texi: Likewise.
16163
16164 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16165
16166         PR target/12978
16167         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16168         Remove movstrqi_small because it conflicts with movstrqi_large.
16169
16170 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16171
16172         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16173         (TARGET_STRUCT_VALUE_RTX): Likewise.
16174         (cris_struct_value_rtx): Likewise.
16175         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16176         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16177         STRUCT_VALUE_REGNUM.
16178         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16179
16180 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16181
16182         PR bootstrap/13848
16183         * cse.c (cse_cc_succs): Change the mode of the source expression
16184         as soon as decide we need a new mode.  Don't permit changing modes
16185         if we found a match in a successor block.
16186         (cse_condition_code_reg): Save original mode of source expression
16187         so that we know whether we have to change the mode in other
16188         insns.
16189
16190 2004-01-24  Jan Hubicka  <jh@suse.cz>
16191
16192         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16193         widen_memory_access):  Return early when there is nothing to change.
16194
16195 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16196
16197         * simplify-rtx.c (simplify_relational_operation): Don't
16198         simplify address == constant into address + -constant == 0.
16199
16200 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16201
16202         * gcc.c (process_command): Don't internationalize the
16203         Copyright message.
16204         * mips-tfile.c (main): Likewise.
16205
16206 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16207
16208         * cse.c: (cse_cc_succs) Fix comparison warning.
16209
16210 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16211
16212         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16213
16214 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16215
16216         * config/h8300/h8300-protos.h: Provide prototypes for
16217         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16218         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16219         (h8300_rtx_ok_for_base_p): Likewise.
16220         (h8300_legitimate_address_p): Likewise.
16221         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16222         h8300_legitimate_constant_p.
16223         (RTX_OK_FOR_BASE_P): Remove.
16224         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16225
16226 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16227
16228         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16229         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16230         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16231         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16232         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16233         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16234         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16235         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16236
16237 2004-01-24  Jan Hubicka  <jh@suse.cz>
16238
16239         * cselib.c (remove_useless_values):  Do not access discarded values.
16240
16241 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16242
16243         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16244         arrays.
16245
16246 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16247
16248         * recog.c: Fix a typo in copyright.
16249
16250 2004-01-23  Andrew Pinski  <apinski@apple.com>
16251
16252         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16253         (call_value): Likewise.
16254
16255 2004-01-23  Richard Henderson  <rth@redhat.com>
16256
16257         PR opt/12941
16258         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16259         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16260         if SHIFT_COUNT_TRUNCATED is set.
16261
16262 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16263
16264         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16265         separate real and imaginary parts.
16266         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16267
16268 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16269
16270         PR target/13674
16271         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16272         loading into GPR.
16273
16274 2004-01-23  Jan Hubicka  <jh@suse.cz>
16275
16276         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16277         change.
16278
16279         * alloc-pool.c (align_four): Kill.
16280         (create_alloc_pool): Align size to eight.
16281         (free_alloc_pool, free_pool): Invalidate deallocated data.
16282
16283 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16284
16285         PR gcc/1532
16286         * cse.c (cse_change_cc_mode): New static function.
16287         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16288         (cse_condition_code_reg): New function.
16289         * rtl.h (cse_condition_code_reg): Declare.
16290         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16291         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16292         cc_modes_compatible.
16293         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16294         (TARGET_CC_MODES_COMPATIBLE): Define.
16295         (TARGET_INITIALIZER): Add new initializers.
16296         * targhooks.c (default_cc_modes_compatible): New function.
16297         * targhooks.c (default_cc_modes_compatible): Declare.
16298         * hooks.c (hook_bool_intp_intp_false): New function.
16299         * hooks.h (hook_bool_intp_intp_false): Declare.
16300         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16301         (TARGET_CC_MODES_COMPATIBLE): Define.
16302         (ix86_fixed_condition_code_regs): New static function.
16303         (ix86_cc_modes_compatible): Likewise.
16304         * doc/tm.texi (Condition Code): Document new hooks.
16305
16306 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16307
16308         * fixinc/inclhack.def (bad_lval): Renamed to ...
16309         (alpha_bad_lval): ... this.
16310         Removed file list.
16311         Restrict to alpha*-dec-osf*.
16312         * fixinc/fixincl.x: Regenerate.
16313         * fixinc/tests/base/dirent.h: Remove, moving test ...
16314         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16315
16316 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16317
16318         PR c/13814
16319         * c-decl.c (diagnose_mismatched_decls): Also discard a
16320         built-in if we encounter an old-style definition with the
16321         same name.
16322
16323 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16324
16325         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16326         set to default{32,64}.
16327
16328 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16329
16330         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16331         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16332
16333 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16334             Olivier Hainque  <hainque@act-europe.fr>
16335
16336         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16337         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16338
16339 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16340
16341         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16342         size for minipool references.
16343
16344 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16345
16346         * real.c (real_floor, real_ceil): Tweak to allow input and output
16347         arguments to overlap.
16348         (real_round): New function to implement round(3m) semantics.
16349         * real.h (real_round): Prototype here.
16350         * builtins.c (fold_builtin_round): New function to constant fold
16351         round, roundf and roundl.
16352         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16353
16354 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16355
16356         PR optimization/13819
16357         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16358         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16359         (sh_handle_sp_switch_attribute): Remove warning.
16360
16361 2003-11-30  Jan Hubicka  <jh@suse.cz>
16362
16363         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16364
16365 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16366
16367         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16368         may or may not return non-NIL.
16369         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16370         check CANNOT_CHANGE_MODE_CLASS
16371
16372 2004-01-23  Jan Hubicka  <jh@suse.cz>
16373
16374         * basic-block.h (PROP_POSTRELOAD): New macro.
16375         (CLEANUP_LOG_LINKS): New.
16376         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16377         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16378
16379         * cselib.c (value_pool): New.
16380         (new_cselib_val): Use pool.
16381         (cselib_init): Initialize value_pool
16382         (cselib_finish): Free pool.
16383
16384 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16385
16386         * config/sparc/sparc.c (scan_record_type): New function.
16387         (function_arg_slotno): Use it to determine which kinds of
16388         registers the record can be passed in.
16389
16390 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16391
16392         * config/pa/fptr.c: Fix old-style definition.
16393
16394 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16395
16396         PR optimization/13724
16397         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16398         represents the zero bits produced by a ZERO_EXTEND operation.
16399
16400 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16401
16402         PR optimization/13821
16403         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16404         correctly calculate the lowpart offset of the contracted subreg.
16405
16406 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16407
16408         * doc/invoke.texi (Optimize Options): Note that --param arguments
16409         are subject to change without notice.
16410
16411 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16412
16413         * config.gcc (mips-sgi-irix6*o32): Removed.
16414         * config/mips/iris6-o32-as.h: Likewise.
16415         * config/mips/iris6-o32-gas.h: Likewise.
16416         * config/mips/iris6-o32.h: Likewise.
16417
16418 2004-01-22  Jan Hubicka  <jh@suse.cz>
16419
16420         * cfgcleanup.c (first_pass): New static variable.
16421         (try_forward_edges):  Add work limiting check for threading.
16422         (try_crossjump_bb):  Add work limiting check for crossjumping.
16423         (try_optimize_cfg):  Maintain first pass variable.
16424
16425 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16426
16427         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16428         handles complex and vector modes.
16429
16430 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16431
16432         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16433         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16434         (STRICT): Likewise.
16435
16436 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16437
16438         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16439         (genrtl_for_stmt): Remove emit_nop calls.
16440
16441 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16442
16443         PR target/13713
16444         PR target/13324
16445         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16446         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16447         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16448
16449 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16450
16451         * config/arm/arm.c: Include "debug.h".
16452         (thumb_pushpop): Take two new arguments.  Add some commentary.
16453         Output frame information when pushing.
16454         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16455         thumb_pushpop.
16456         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16457         offset, and pass it to thumb_pushpop.  Output CFI information.
16458         (thumb_expand_prologue): Add some frame-related markers and notes.
16459
16460 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16461
16462         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16463         for TARGET_64BIT.
16464         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16465         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16466
16467 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16468             Paolo Bonzini  <bonzini@gnu.org>
16469
16470         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16471         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16472         * rtl.h (subreg_lsb_1): Prototype here.
16473         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16474         sign extensions.
16475
16476 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16477
16478         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16479         macro need not be defined if jump-tables should contain
16480         relative addresses only when -fPIC or -fPIC is in effect.
16481
16482 2004-01-22  Jan Hubicka  <jh@suse.cz>
16483
16484         * alias.c (reg_base_value): Turn into varray.
16485         (reg_base_value_size): Kill.
16486         (old_reg_base_value): New deletable varray.
16487         (alias_invariant_size): New variable.
16488         (REG_BASE_VALUE): Update to use varray.
16489         (find_base_value): Likewise.
16490         (record_set): Likewise.
16491         (record_base_value): Likewise.
16492         (memrefs_conflict_p): Likewise.
16493         (record_set): Likewise
16494         (record_base_value): Likewise.
16495         (memrefs_conflict_p): Use alias_invariant_size.
16496         (init_alias_analysis): Use varray; set alias_invariant_size;
16497         rescale other arrays to be sized by maxreg.
16498         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16499
16500 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16501
16502         * config/sparc/sparc.c (function_arg_slotno): Use
16503         FLOAT_TYPE_P to detect FP fields in structures.
16504         (function_arg_record_value_1): Likewise.
16505         (function_arg_record_value_2): Likewise.
16506
16507 2004-01-22  Jan Hubicka  <jh@suse.cz>
16508
16509         * function.c (allocate_struct_function): Do not initialize expr, emit
16510         and varasm.
16511         (prepare_function_start): Do it here.
16512         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16513
16514 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16515
16516         PR target/13559
16517         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16518         to 'word_mode' once the first slot has been filled.
16519
16520 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16521
16522         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16523         computation of the number of integer registers required.
16524
16525 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16526
16527         * config/i386/i386.md: Simplify certain comparisons of
16528         const_int.
16529
16530 2004-01-21  Andrew Pinski  <apinski@apple.com>
16531
16532         PR target/13785
16533         * config/rs6000/rs6000.md (call_value): Force operand
16534         1 not operand 0 into a register.
16535
16536 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16537
16538         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16539         unwind-dw2-fde.h: Update copyright.
16540
16541 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16542
16543         * pa-protos.h: Update copyright.
16544         * pa.h: Likewise.
16545         * pa.md: Likewise.
16546
16547 2004-01-21  Caroline Tice  <ctice@apple.com>
16548
16549         PR target/12308
16550         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16551         flags register.
16552         (fix_truncdfdi2): Likewise.
16553         (fix_truncsfdi2): Likewise.
16554         (*fix_truncdi_1): Likewise.
16555         (fix_truncxfsi2): Likewise.
16556         (fix_truncdfsi2): Likewise.
16557         (fix_truncsfsi2): Likewise.
16558         (*fix_truncsi_1): Likewise.
16559         (fix_truncxfhi2): Likewise.
16560         (fix_truncdfhi2): Likewise.
16561         (fix_truncsfhi2): Likewise.
16562         (*fix_trunchi_1): Likewise.
16563
16564 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16565
16566         * alias.c, basic-block.h, c-common.c, c-common.h,
16567         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16568         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16569         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16570         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16571         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16572         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16573         genautomata.c, genconditions.c, genemit.c, genflags.c,
16574         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16575         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16576         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16577         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16578         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16579         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16580         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16581         unwind.h, varray.c, varray.h: Update copyright.
16582
16583 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16584
16585         * config/h8300/coff.h: Update copyright.
16586         * config/h8300/elf.h: Likewise.
16587         * config/h8300/h8300-protos.h: Likewise.
16588         * config/h8300/h8300.c: Likewise.
16589         * config/h8300/h8300.h: Likewise.
16590         * config/h8300/h8300.md: Likewise.
16591
16592 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16593
16594         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16595         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16596         ultrix_unistd): New hacks.
16597         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16598         ULTRIX_CONST2_CHECK): Add checks.
16599         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16600         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16601         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16602         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16603         * fixinc/tests/base/locale.h: New file.
16604         * fixinc/fixincl.x: Rebuilt.
16605
16606 2004-01-21  Andreas Jaeger  <aj@suse.de>
16607             Michael Matz  <matz@suse.de>
16608
16609         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16610
16611 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16612
16613         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16614         _Jv_RegisterClasses through a function pointer.
16615
16616 2004-01-21  Falk Hueffner  <falk@debian.org>
16617
16618         PR target/12898
16619         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16620         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16621         which need multiple instructions to emit.
16622
16623 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16624
16625         * config/m32r/m32r.h (CPP_SPEC): Define.
16626
16627 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16628
16629         * c-decl.c (merge_decls): Kill different_binding_level and
16630         different_tu arguments; simplify throughout.
16631         (duplicate_decls): Likewise.
16632         (pushdecl, merge_translation_unit_decls): Update calls to
16633         duplicate_decls.
16634
16635 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16636
16637         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16638         $(SYSTEM_H).
16639         (print-rtl1.o): Depend on $(SYSTEM_H).
16640
16641 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16642
16643         PR bootstrap/12730
16644         * configure.ac: Delete definition and subsitution of docdir.
16645         Add info, man, srcman and srcinfo to target hooks. Create doc/
16646         directory.
16647         * configure: Regenerate.
16648         * Makefile.in: Don't substitute docdir and delete all references
16649         throughout.
16650         (MAKEINFOFLAGS): Define.
16651         (stmp-docobjdir): Delete.
16652         (INFOFILES, MANFILES): Define.
16653         (info): Call lang.info, srcinfo and lang.srcinfo.
16654         (generated-manpages): Call lang.man, srcman and lang.srcman.
16655         (srcinfo, srcman): New rules to copy back files to source directory.
16656         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16657         (install-man): Revamp rule.
16658         (clean): Update dvi directory.
16659         (distclean): Delete TAGS from front end directorys.
16660         (maintainer-clean): Delete all document files in source directory.
16661
16662         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16663         (objc.srcman, objc.srcinfo): Likewise.
16664
16665 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16666
16667         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16668         (matherr_decl): rename & relocate as exception_structure.
16669         This fix must precede the math_exception fix.
16670
16671 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16672
16673         * fold-const.c (fold_convert): Rename to fold_convert_const.
16674         (fold_convert_const): Change arguments to take a tree_code,
16675         a type and the operand/expression to be converted.  Return
16676         NULL_TREE if no simplification is possible.  Add support for
16677         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16678         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16679         Adjust call to fold_convert to match new fold_convert_const.
16680         Avoid modifying the tree passed to fold in-place.
16681
16682 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16683
16684         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16685         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16686         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16687
16688 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16689
16690         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16691         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16692         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16693         (emit_move_sequence): Check scratch_reg first in various if statements.
16694         Extend source simplification to handle all 64-bit CONST_INTs.
16695         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16696         frame size.
16697         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16698         frame offset calculations.
16699         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16700         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16701         LEGITIMATE_64BIT_CONST_INT_P): Define.
16702         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16703         any CONST_INT as legitimate during and after reload.
16704         (VAL_32_BITS_P, INT_32_BITS): Define.
16705         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16706
16707 2004-01-20  Jan Hubicka  <jh@suse.cz>
16708
16709         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16710         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16711         containing hard regs are shared.
16712         (gen_hard_reg_clobber): New function.
16713         (hard_reg_clobbers): New array.
16714         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16715         (copy_rtx): Do not copy clobbers containing hard regs.
16716         * rtl.h (gen_hard_reg_clobber): Declare.
16717
16718 2004-01-20  Jan Hubicka  <jh@suse.cz>
16719
16720         * varray.c:  Include hashtab.h
16721         (varray_descriptor): New structure.
16722         (hash_descriptor, eq_descriptor, varray_descriptor,
16723         print_statistics): New static functions
16724         (varray_init, varray_grow): Update statistics
16725         (dump_varray_statistics): New function.
16726         * varray.h (dump_varray_statistics): Declare.
16727         * toplev.c (finalize): Call it.
16728         * Makefile.in (varray.o): Add dependency.
16729
16730 2004-01-20  Jan Hubicka  <jh@suse.cz>
16731
16732         * cselib.c: Include alloc-pool.h
16733         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16734         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16735         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16736         unchain_one_elt_loc_list_pool, unchain_one_value,
16737         new_cselib_val): Simplify using allocpool.
16738         (cselib_init): Initialize allocpools.
16739         (cselib_finish): Finish allocpools.
16740         * Makefile.in (cselib.o): Depend on alloc-pool.h
16741
16742 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16743
16744         * config/mips/mips.c (mips_load_call_address): Make the call insn
16745         use $gp if it could be calling a lazy binding stub.
16746
16747 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16748
16749         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16750         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16751         (TARGET_STRUCT_VALUE_RTX): Likewise.
16752         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16753         (PROMOTE_FUNCTION_RETURN): Remove.
16754         (STRUCT_VALUE): Remove.
16755
16756 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16757
16758         PR bootstrap/13735
16759         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16760         register as pointer after reload.
16761
16762 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16763
16764         PR optimization/12440
16765         * loop.c: Include ggc.h.
16766         (loop_optimize): Run garbage collector between optimization of loops.
16767         * Makefile.in (loop.o): Add GGC_H dependency.
16768
16769 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16770
16771         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16772         vector register special in function without prototype.
16773         (function_arg_advance): Vector parameters get always
16774         GPRs allocated for the linux64 target.
16775
16776 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16777
16778         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16779         not TARGET_M32RX_MASK.
16780
16781 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16782
16783         PR target/13557
16784         * config/sparc/sparc.c (function_arg): Reorder the cases.
16785
16786 2004-01-19  Per Bothner  <per@bothner.com>
16787
16788         Move cpp_reader's line_maps field to a shared global.
16789         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16790         and change the type to a pointer rather than a struct.
16791         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16792         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16793         Likewise.
16794         * cppfiles.c (validate_pch):  Likewise.
16795         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16796         Likewise.
16797         * cpperror.c (print_location):  Likewise.
16798         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16799         * cppinit.c (cpp_create_reader):  Handle new parameter.
16800         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16801         * input.h (line_table):  New variable.
16802         * toplev.c (line_table):  Declare variable.
16803         (general_init):  Initialize line_table.
16804         * c-opts.c (c_common_init_options):  Pass line_table to
16805         cpp_create_reader.
16806         * fix-header.c (read_scan_file):  New local variable line_table.
16807         Initialize, and pass it to cpp_create_reader.
16808         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16809         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16810
16811 2004-01-19  Per Bothner  <per@bothner.com>
16812
16813         Implement a cache for linemap_lookup.
16814         * line-map.h (struct_line_maps):  Add cache field.
16815         * line-map.c (linemap_init):  Zero cache field.
16816         (linemap_add):  Set cache field to offset of newly allocated map.
16817         (linemap_lookup):  Use and set cache field.
16818
16819 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16820
16821         PR optimization/13567
16822         * cse.c (cse_basic_block): Call cse_insn with a non-null
16823         libcall_insn for the last SET insn of a no-confilict block.
16824
16825 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16826
16827         * Makefile.in (target_noncanonical, program_transform_name): Use
16828         immediate define instead of deferred.
16829         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16830         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16831         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16832         deferred backquote.
16833
16834 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16835
16836         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16837         true unconditionally.
16838         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16839         Remove.
16840         (build_unary_op, build_modify_expr): Don't handle extended
16841         lvalues.
16842         (build_component_ref, build_conditional_expr): Call non_lvalue
16843         instead of pedantic_non_lvalue.
16844         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16845         * fold-const.c (fold): Don't check pedantic directly for
16846         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16847         passed to pedantic_non_lvalue.
16848         * doc/extend.texi: Remove documentation of extended lvalues.
16849
16850 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16851
16852         PR optimization/5263
16853         * simplify-rtx.c (associative_constant_p): Delete.
16854         (simplify_associative_operation): Rewrite to linearize terms, and
16855         attempt to simplify new term against both left and right subterms.
16856         (simplify_binary_operation): Call swap_commutative_operands_p on
16857         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16858         trueop0 and trueop1 down to where first needed.
16859         (simplify_relational_operation): Likewise.
16860         * rtlanal.c (commutative_operand_precedence): Also order constant
16861         operands using avoid_constant_pool_reference.
16862
16863 2004-01-19  Richard Henderson  <rth@redhat.com>
16864
16865         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16866         don't check memory mode.
16867         (unaligned_memory_operand): Likewise.
16868         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16869         abort for op0 not MEM.
16870
16871         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16872         is not a reg, copy to a scratch first.
16873         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16874         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16875         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16876         (reload_inqi, reload_inhi): Fix mode of op0.
16877         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16878         reload_outhi_help): Likewise.  Use define_insn_and_split.
16879
16880         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16881         as well as $29 dead.
16882
16883 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16884
16885         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16886         "tls_object" for thread-local objects.
16887         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16888         "#tls" for thread-local sections.
16889         * configure.ac (thread-local checks): Specify --fatal-warnings in
16890         every binutils-specific checks.  For sparc*-*-*, test whether the
16891         OS is Solaris and the tools are native and act accordingly.
16892         * configure: Rebuild.
16893
16894 2004-01-19  Jeff Law  <law@redhat.com>
16895
16896         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16897         Jerry Quinn and Petur Runolfsson.
16898
16899 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16900
16901         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16902         size, don't use the larger zero-extending loads.
16903
16904 2004-01-19  Richard Henderson  <rth@redhat.com>
16905
16906         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16907         * alpha.md (UNSPEC_NT_LDA): Remove.
16908         (UNSPEC_CVTLQ, cvtlq): New.
16909         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16910         (extendsidi2_fix): Remove.
16911         (extendsidi2 splitter): Use cvtlq.
16912         (extendsidi2 fp peepholes): Remove.
16913         (cvtql): Use SFmode instead of SImode.
16914         (fix_trunc?fsi): Update to match.
16915         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16916         (movsi): Rename from movsi_nofix, remove f alternatives.
16917         (movsi_nt_vms): Similarly.
16918         (movsi_fix, movsi_nt_vms_fix): Remove.
16919         (nt_lda): Remove.
16920         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16921
16922 2004-01-19  Jan Hubicka  <jh@suse.cz>
16923
16924         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16925         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16926         list.
16927         (cgraph_remove_unreachable_nodes): New function
16928         (cgraph_decide_inlining_of_small_function): Fix pasto.
16929         (cgraph_decide_inlining_incrementally): Fix pasto.
16930         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16931
16932 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16933
16934         * gengtype.c (header_file): Make it static.
16935         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16936         * gengtype.h (header_file): No longer extern.
16937
16938 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16939
16940         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16941         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16942         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16943
16944 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16945
16946         * stmt.c (HAVE_casesi): Define it not already defined.
16947         (HAVE_tablejump): Likewise.
16948         (expand_end_case_type): Resort to the binary tree method if
16949         neither casesi or tablejump is available.
16950
16951 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16952
16953         * final.c (final_scan_insn): Make non-static again.
16954         * output.h (final_scan_insn): Re-add prototype.
16955         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16956         to final_scan_insn call.
16957         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16958         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16959         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16960         * config/sh/sh.c (print_slot): Likewise.
16961         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16962         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16963
16964 2004-01-18  Jan Hubicka  <jh@suse.cz>
16965
16966         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16967         * cfgcleanup.c (try_optimize_cfg): Use it.
16968         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16969         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16970         Kill hack.
16971         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16972
16973         Revert:
16974         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16975
16976                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16977                 even after reload, just don't remove the actual jump tables.
16978
16979 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16980
16981         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16982
16983 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16984
16985         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16986         the size of a pointer in bytes.
16987
16988 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16989
16990         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16991         live "next" variable, which could lead to an infinite loop.
16992
16993 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16994
16995         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16996         block.
16997
16998         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16999         Check for NULL in the chain and remove repeated code.
17000
17001 2004-01-18  Jan Hubicka  <jh@suse.cz>
17002
17003         * coverage.c (checksum_string): Rename to ...
17004         (coverage_checksum_string): ... this one, Use crc32_string; recognize
17005         names containing random number and zero the number out in order to get
17006         match.
17007
17008 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17009
17010         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17011
17012 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17013
17014         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17015         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17016         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17017         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17018         doc/trouble.texi: Remove trailing whitespace.
17019
17020 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
17021
17022         PR target/7618
17023         * config/mips/mips.c: Include cfglayout.h.
17024         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17025         (mips_unspec_offset_high): Add temporary register argument.
17026         (mips_load_call_address): New function, split out from...
17027         (mips_expand_call): ...here.
17028         (mips_output_cplocal): New function.
17029         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17030         (mips_emit_loadgp): New function, split out from...
17031         (mips_expand_prologue): ...here.
17032         (mips_output_mi_thunk): New function.
17033
17034 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
17035
17036         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17037         mcpu32): Remove redundant checks for implied target predefines.
17038
17039 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
17040
17041         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17042         Return type is unsigned int not int.
17043         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17044         Likewise.
17045
17046 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17047
17048         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17049         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17050         "GNU/Linux" and "Microsoft Windows" terminology.
17051
17052 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
17053
17054         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17055         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17056         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17057         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17058         @smallexample instead of @example.
17059
17060 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
17061
17062         * objc/objc-act.c (build_objc_method_call): Use target
17063         hooks instead of macros to determine if ..._stret
17064         dispatchers should be used (NeXT runtime only).
17065
17066 2004-01-17  Roger Sayle  <roger@eyesopen.com>
17067
17068         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17069         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17070
17071 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17072
17073         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17074         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17075         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17076         macros.
17077         * reload1.c (emit_reload_insns): Use them.
17078         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17079         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17080         for NULL PATTERN.
17081
17082 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
17083
17084         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17085         (final_scan_insn): Update to take an additional SEEN argument.  Emit
17086         a line note after the prologue.  Make static.
17087         (line_note_exists): Remove.
17088         (final): Don't initialize line_note_exists.  Update call to
17089         final_scan_insn.
17090         * output.h (final_scan_insn): Remove prologue.
17091         * function.c (set_insn_locators): Update comment.
17092         (thread_prologue_and_epilogue_insns): Add a comment.
17093
17094 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
17095
17096         PR target/10781
17097         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17098         Prototype.
17099         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17100         New function.
17101         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17102         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17103         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17104
17105 2004-01-17  Jan Hubicka  <jh@suse.cz>
17106
17107         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17108         commit.
17109
17110         * toplev.c (HAVE_conditional_execution): Provide default.
17111         (rest_of_handle_reorder_blocks): For conditional_execution target
17112         update liveness once after all transformations
17113         (rest_of_compilation): Do crossjumping before ce3.
17114
17115 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
17116
17117         * alias.c (new_alias_set): Mark last_alias_set for PCH.
17118         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17119         for PCH.
17120         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17121         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17122         (get_TOC_alias_set): Mark 'set' for PCH.
17123
17124 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17125
17126         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17127         even after reload, just don't remove the actual jump tables.
17128
17129 2004-01-17  J. Brobecker  <brobecker@gnat.com>
17130
17131         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17132         Remove checks for is_ada() and TREE_UNSIGNED.
17133         (subrange_type_die): Emit a byte_size attribute if the subrange
17134         type size is different from the base type size.
17135         (modified_type_die): Replace call to is_ada_subrange_type() by
17136         call to is_subrange_type().
17137
17138 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
17139
17140         * config/sh/sh.c: Include ggc.h.
17141
17142 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
17143
17144         * Makefile.in (MD5_H): New.
17145         (fold-const.o): Depend on md5.h.
17146         (dwarf2out.o): Likewise.
17147         (cppfiles.o): Likewise.
17148         * cppfiles.c: Include md5.h.
17149         (should_stack_file): Check against list read from PCH file.
17150         (struct pchf_data): New.
17151         (pchf): New variable.
17152         (struct pchf_adder_info): New.
17153         (pchf_adder): New.
17154         (pchf_save_compare): New.
17155         (_cpp_save_file_entries): New.
17156         (_cpp_read_file_entries): New.
17157         (struct pchf_compare_data): New.
17158         (pchf_compare): New.
17159         (check_file_against_entries): New.
17160         * cpphash.h (_cpp_save_file_entries): Prototype.
17161         (_cpp_read_file_entries): Prototype.
17162         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17163         (cpp_read_state): Read the list of headers.
17164
17165 2004-01-17  Jan Hubicka  <jh@suse.cz>
17166
17167         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17168         builtin_expect specially.
17169         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17170         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17171         * invoke.texi (max-inline-insns-single): Set to 100.
17172         (large-function-insns): Set to 3000.
17173
17174 2004-01-16  Eric Christopher  <echristo@redhat.com>
17175             Chandrakala Chavva <cchavva@redhat.com>
17176
17177         * cppcharset.c (one_iso88591_to_utf8): New function.
17178         (convert_iso88591_utf8): Ditto. Use.
17179         (conversion_tab): Use.
17180         (_cpp_input_to_utf8): New function.
17181         (_cpp_init_iconv_buffer): Ditto.
17182         (_cpp_close_iconv_buffer): Ditto.
17183         * cpphash.h: Prototype new functions.
17184         (cpp_buffer): Add input_cset_desc.
17185         * cppinit.c: Add input_charset default.
17186         * cpplib.c (cpp_push_buffer): Support init and
17187         close of iconv.
17188         * cpplib.h (cpp_options): Add input_charset.
17189
17190 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17191
17192         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17193         * config/alpha/unicosmk.h: Remove a commented-out definition
17194         of ASM_OUTPUT_SECTION_NAME.
17195         * config/stormy16/stormy16.h: Likewise.
17196
17197 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17198
17199         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17200         (alpha___extern_prefix_sys_stat): ... this.
17201         Apply to <sys/mount.h>, too.
17202         Tweak to match more variations.
17203         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17204
17205         * fixinc/inclhack.def (alpha___extern_prefix,
17206         alpha___extern_prefix_standards): New hacks to obey
17207         __PRAGMA_EXTERN_PREFIX.
17208         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17209         test.
17210         * fixinc/tests/base/standards.h: Likewise.
17211
17212         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17213         variations.
17214         New testcase.
17215         * fixinc/tests/base/pthread.h: Handle it.
17216
17217         * fixincl/inclhack.def (bad_lval): Sort file list.
17218         Add many missing files up to Tru64 UNIX V5.1B.
17219         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17220         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17221         order.
17222
17223         * fixinc/fixincl.x: Regenerate.
17224
17225 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17226
17227         * version.c (version_string): Change to 3.5.0.
17228         * doc/include/gcc-common.texi (version-GCC): Likewise.
17229
17230 2004-01-16  Jan Hubicka  <jh@suse.cz>
17231
17232         * i386.md (load_tp_di): Fix pasto.
17233
17234         PR opt/13608
17235         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17236
17237         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17238         pp_c_character_constant, pp_c_floating_constant,
17239         pp_c_additive_expression, pp_c_shift_expression,
17240         pp_c_equality_expression, pp_c_and_expression,
17241         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17242         pp_c_logical_and_expression): Remove inline modifier.
17243         * dwarf2out.c (get_AT): Likewise.
17244         * et-forest.c (et_splay): Likewise.
17245         * ra.h (ra_alloc, ra_calloc): Likewise
17246
17247 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17248
17249         * config/frv/frv-protos.h: Fix comment formatting.
17250         * config/frv/frv.c: Likewise.
17251         * config/frv/frv.h: Likewise.
17252         * config/frv/frv.md: Likewise.
17253         * config/frv/frvbegin.c: Likewise.
17254         * config/frv/frvend.c: Likewise.
17255
17256 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17257
17258         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17259         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17260         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17261         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17262
17263 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17264
17265         PR 11864
17266         * postreload.c (reload_cse_simplify_operands): Don't remove
17267         implicit extension from LOAD_EXTEND_OP.
17268
17269 2004-01-16  Jan Hubicka  <jh@suse.cz>
17270
17271         PR opt/11350
17272         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17273         after reload.
17274         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17275         rtl_try_redirect_by_replacing_branch): Likewise.
17276
17277 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17278
17279         PR pch/13689
17280         * alias.c (struct alias_set_entry): Mark for GC.
17281         (alias_sets): Make static, mark for GC.
17282         (record_alias_subset): Use GC to allocate alias structures.
17283         * varray.c (element): Make generic varrays GCed.
17284
17285         PR pch/13361
17286         * c-typeck.c (constructor_asmspec): Delete.
17287         (struct initializer_stack): Delete field 'asmspec'.
17288         (start_init): Delete saving of asmspec.
17289         (finish_init): Don't update constructor_asmspec.
17290         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17291         * stmt.c (expand_asm): Duplicate strings from tree.
17292         (expand_asm_operands): Likewise.
17293         * tree.c (tree_size): Update computation of size of STRING_CST.
17294         (make_node): Don't make STRING_CST nodes.
17295         (build_string): Allocate string with tree node.
17296         * tree.def (STRING_CST): Update comment.
17297         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17298         (tree_string): Place contents of string in tree node.
17299         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17300         from tree.
17301
17302         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17303         altivec operands.
17304
17305 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17306
17307         * c-common.h: Fix comment formatting.
17308         * c-cppbuiltin.c: Likewise.
17309         * c-pragma.c: Likewise.
17310         * calls.c: Likewise.
17311         * collect2.c: Likewise.
17312         * cppcharset.c: Likewise.
17313         * cpptrad.c: Likewise.
17314         * dbxout.c: Likewise.
17315         * defaults.h: Likewise.
17316         * dwarf2out.c: Likewise.
17317         * fold-const.c: Likewise.
17318         * genautomata.c: Likewise.
17319         * genconditions.c: Likewise.
17320         * genflags.c: Likewise.
17321         * gengtype.c: Likewise.
17322         * integrate.c: Likewise.
17323         * loop.c: Likewise.
17324         * predict.c: Likewise.
17325         * sdbout.c: Likewise.
17326
17327 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17328
17329         * config/ia64/ia64.md (*movti_internal): C output template
17330         extracted to ia64.c.
17331         (*movti_internal_reg): Delete.
17332         (reload_inti, reload_outti): Use the correct mode on operand 2
17333         in the first place, don't fix it up in the output template.
17334         (movtf, reload_ointf, reload_outtf): New expanders.
17335         (*movtf_internal): New define_insn_and_split.
17336         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17337         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17338         (ia64_split_tmode_move): New function, body mostly pulled
17339         from ia64.md:*movti_internal.
17340         (ia64_function_arg_words): New function, extracted common
17341         logic from ia64_function_arg et seq.
17342         (ia64_function_arg_offset): Likewise.  Handle correctly the
17343         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17344         (ia64_function_arg, ia64_function_arg_partial_nregs)
17345         (ia64_function_arg_advance): Use ia64_function_arg_words and
17346         ia64_function_arg_offset.
17347         (ia64_function_value): TCmode does not go in float regs.
17348         (ia64_secondary_reload_class): Also handle TFmode.
17349         * config/ia64/ia64-protos.h: Remove prototype for
17350         ia64_split_timode; add prototype for ia64_split_tmode_move.
17351
17352 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17353
17354         * Makefile.in (MAINT): Make it an immediate assignment.
17355
17356 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17357
17358         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17359
17360 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17361
17362         * config/h8300/coff.h: Replace Hitachi with Renesas.
17363         * config/h8300/elf.h: Likewise.
17364         * config/h8300/h8300-protos.h: Likewise.
17365         * config/h8300/h8300.c: Likewise.
17366         * config/h8300/h8300.h: Likewise.
17367         * config/h8300/h8300.md: Likewise.
17368         * config/h8300/lib1funcs.asm: Likewise.
17369
17370 2004-01-15  Andrew Pinski  <apinski@apple.com>
17371
17372         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17373         around it.
17374
17375 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17376
17377         * config/h8300/h8300.c (h8300_return_in_memory): New.
17378         (TARGET_STRUCT_VALUE_RTX): Likewise.
17379         (TARGET_RETURN_IN_MEMORY): Likewise.
17380         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17381         (RETURN_IN_MEMORY): Likewise.
17382
17383 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17384
17385         PR optimization/13375
17386         * gcse.c (handle_avail_expr): Just return if the source is not a
17387         single set.
17388
17389 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17390             Daniel Jacobowitz  <drow@mvista.com>
17391
17392         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17393         (EQUIV): Define.
17394         (ARM_FUNC_ALIAS): New macro.
17395         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17396         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17397
17398 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17399
17400         PR optimization/12372
17401         * calls.c (expand_call): Add call_fusage data for stack arguments in
17402         constant calls.
17403
17404 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17405
17406         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17407         (rs6000_elf_declare_function_name): Formatting.
17408         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17409
17410 2004-01-15  Jan Hubicka  <jh@suse.cz>
17411
17412         PR bootstrap/13692
17413         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17414         previous patch.
17415
17416 2004-01-15  Richard Henderson  <rth@redhat.com>
17417
17418         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17419         integer regs of the same call-savedness.
17420
17421 2004-01-15  Andreas Schwab  <schwab@suse.de>
17422
17423         PR bootstrap/13562
17424         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17425         status for NOTB/NOTW/NEGW methods.
17426
17427 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17428
17429         * doc/invoke.texi: Update dump file names.  Fix a typo.
17430
17431 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17432
17433         * builtins.c (expand_builtin_va_end): Don't use
17434         EXPAND_BUILTIN_VA_END.
17435         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17436         * config/d30v/d30v.h: Remove a commented-out definition of
17437         EXPAND_BUILTIN_VA_END.
17438         * config/stormy16/stormy16.h: Likewise.
17439
17440 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17441
17442         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17443         * targhooks.c (default_struct_value_rtx): Don't use
17444         STRUCT_VALUE_INCOMING_REGNUM.
17445
17446 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17447
17448         PR bootstrap/12744
17449         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17450         GENINSRC and not parsedir.  Define srcextra as a langhook.
17451         * configure: Regenerate.
17452         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17453         parsedir and delete all references throughout.  Conditionally define
17454         rule for srcextra dependent on GENINSRC.
17455         (stmp-docobjdir): Delete.
17456         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17457         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17458         and gengtype-yacc.h back to source directory.
17459         (maintainer-clean): Delete all parse files in source directory.
17460         (distclean): Delete generated files.
17461
17462         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17463         (objc-parse.c, objc-parse.y): Don't use parsedir.
17464         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17465         directory if requested.
17466         (po-generated): Don't use parsedir.
17467         (objc.maintainer-clean): Delete above files from source directory.
17468
17469 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17470
17471         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17472
17473 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17474
17475         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17476         TARGET_RETURN_IN_MEMORY.
17477
17478 2004-01-15  Jan Hubicka  <jh@suse.cz>
17479
17480         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17481         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17482         functions accepting SSE arguments
17483         (function_arg): Warn only when asked to warn.
17484         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17485
17486 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17487
17488         * c-parse.in (stmts_and_decls): Make label at end of compound
17489         statement a hard error.
17490
17491 2004-01-14  Jan Hubicka  <jh@suse.cz>
17492
17493         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17494         * cgraph.h (cgraph_local_info): Sort fields by size; add
17495         redefined_extern_inline
17496         (cgraph_global_info): Sort fields by size.
17497         (cgraph_node): Likewise.
17498         * cgraphunit.c (cgraph_finalize_function): Se
17499         local.redefined_extern_inline on redefinition.
17500         (cgraph_analyze_function): Use it; fix formating.
17501
17502 2004-01-14  Jan Hubicka  <jh@suse.cz>
17503
17504         PR c++/10776
17505         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17506         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17507         bitmaps
17508         (cache_size): New variable
17509         (add_dependence): Update use; canonize early memory locations
17510         (sched_analyze_1): Likewise.
17511         (sched_analyze_2): Likewise.
17512         (init_dependency_caches): Initialize bitmaps.
17513         (free_dependency_caches): Free bitmaps
17514
17515 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17516
17517         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17518         targetm.calls.strict_argument_naming().
17519         * target.h: Likewise.
17520
17521 2004-01-14  Richard Henderson  <rth@redhat.com>
17522
17523         PR debug/13231
17524         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17525         instructions.
17526
17527 2004-01-14  Richard Henderson  <rth@redhat.com>
17528
17529         PR c++/12491
17530         * except.c (struct eh_region): Add u.fixup.resolved.
17531         (resolve_one_fixup_region): Split out from ...
17532         (resolve_fixup_regions): ... here.
17533
17534 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17535
17536         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17537
17538 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17539
17540         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17541         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17542         (STRUCT_VALUE): Remove.
17543
17544 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17545
17546         * system.h: Poison PROMOTED_MODE
17547         * integrate.c (expand_inline_function): Don't mention the
17548         PROMOTED_MODE.
17549         * loop.c (update_giv_derive): Same.
17550         * tree.h (DECL_RTL): Same.
17551
17552 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17553
17554         PR target/9365
17555         * sh.c (gen_block_redirect): Add special handling of RETURN.
17556         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17557         far branch target (i.e. it's a return).
17558
17559 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17560
17561         * regrename.c (find_oldest_value_reg): Fix a warning.
17562
17563 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17564
17565         PR bootstrap/12527
17566         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17567         Move linux-gas.h and linux-elf.h before aout.h.
17568         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17569         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17570
17571 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17572
17573         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17574         (CONST_INT, VOIDmode, ...).
17575
17576 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17577
17578         * regrename.c (find_oldest_value_reg): If the replacement uses
17579         multiple hard registers, check that all of them are in CLASS.
17580
17581 2004-01-14  Jan Hubicka  <jh@suse.cz>
17582
17583         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17584         impossible.
17585
17586 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17587
17588         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17589
17590 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17591
17592         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17593         Calculate always vrsave_mask if TARGET_ALTIVEC.
17594         (rs6000_emit_prologue): Emit code for vrsave
17595         only if TARGET_ALTIVEC_VRSAVE.
17596         (rs6000_emit_epilogue): Likewise.
17597
17598 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17599
17600         * config/sparc/sparc.md (tie_add32): Fix pasto.
17601         (tie_add64): Likewise.
17602
17603 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17604
17605         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17606
17607 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17608
17609         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17610         * config/iq2000/iq2000.c: Likewise.
17611         * config/iq2000/iq2000.md: Likewise.
17612
17613 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17614
17615         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17616         (subrange_type_die): Add handle for nameless subrange types.
17617
17618 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17619
17620         * config/h8300/h8300-protos.h: Replace do_movsi with
17621         h8300_expand_movsi.
17622         * config/h8300/h8300.c (do_movsi): Change to
17623         h8300_expand_movsi.
17624         * config/h8300/h8300.md (movsi): Replace do_movsi with
17625         h8300_expand_movsi.
17626         (movsf): Likewise.
17627
17628 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17629
17630         * config/h8300/h8300.c (dosize): Change to
17631         h8300_emit_stack_adjustment.  Update callers.
17632
17633 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17634
17635         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17636         the source being post_inc.  Tighten the predicate for the
17637         destination to register_operand.
17638         (movstricthi): Likewise.
17639
17640 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17641
17642         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17643         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17644         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17645
17646 2004-01-14  Jan Hubicka  <jh@suse.cz>
17647
17648         Partial fix PR c++/12850
17649         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17650         at zero nest level.
17651
17652 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17653
17654         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17655         pseudo-register.
17656
17657 2004-01-13  Devang Patel <dpatel@apple.com
17658
17659         PR debug/7078
17660         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17661         NAMESPACE_DECL memebers.
17662
17663 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17664
17665         PR c++/12709
17666         * c-common.c (finish_fname_decls): Use the chain only if the
17667         tree is an expr_stmt.
17668
17669 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17670
17671         * rtl.def: Add comment about new option in automata_option.
17672
17673         * genautomata.c (PROGRESS_OPTION): New macro.
17674         (progress_flag): New global variable.
17675         (gen_automata_option): Process `progress'.
17676         (transform_insn_regexps, check_unit_distributions_to_automata,
17677         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17678         expand_automata, write_automata): Print about the progress only if
17679         progress_flag.  Remove fflush.
17680         (initiate_automaton_gen): Process command line flag `-progress'.
17681
17682         * doc/md.texi: Describe the new option.
17683
17684 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17685
17686         * cfg.c (dump_bb): Dump entry edges.
17687
17688 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17689
17690         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17691         references from SImode.
17692         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17693
17694 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17695
17696         * system.h (TEXT_SECTION): Poison.
17697         * varasm.c (text_section): Don't use TEXT_SECTION.
17698         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17699         * doc/tm.texi (TEXT_SECTION): Remove.
17700
17701 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17702
17703         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17704
17705 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17706
17707         * unwind-libunwind.c: Delete.
17708
17709 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17710
17711         PR 13656
17712         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17713         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17714         them at the very end.
17715         (validate_proto_after_old_defn): Restructure for comprehensibility;
17716         make error messages clearer.
17717
17718 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17719
17720         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17721         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17722         * varray.c: No need to prototype error.
17723         (varray_check_failed): Wrap long string onto two lines.
17724         (varray_underflow): New function.
17725
17726 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17727
17728         PR c++/13376
17729         * function.h (struct function): Kill `name' field.
17730         (current_function_name): Make it an extern function.
17731         * function.c (current_function_name): New function.
17732         * graph.c: Update all uses of current_function_name.
17733         * gcse.c: Likewise.
17734         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17735         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17736         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17737         instead of a strcmp with "main".
17738
17739 2004-01-13  Jan Hubicka  <jh@suse.cz>
17740
17741         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17742
17743         * cgraphunit.c (cgraph_optimize_function):  Always do
17744         optimize_inline_calls when there is always_inline callee.
17745         (cgraph_decide_inlining): Fix formating.
17746         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17747         functions.
17748         (expand_call_inline): Likewise.
17749         * toplev.h (sorry): Fix prototype.
17750
17751 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17752
17753         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17754         conditional jumps that drop through to unconditional jumps or the
17755         end of the sequence.
17756
17757 2004-01-13  Jan Hubicka  <jh@suse.cz>
17758
17759         * alias.c (new_alias_set): Construct the alias_set varray.
17760         (init_alias_once): Don't do it here.
17761
17762 2004-01-12  Marc Espie <espie@openbsd.org>
17763
17764         * system.h: handle YYBYACC like YYBISON.
17765
17766 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17767
17768         PR target/10847
17769         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17770         building on sparc64-*-openbsd*.
17771
17772 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17773
17774         PR debug/13539
17775         * dbxout.c (dbxout_type): Protected inheritance is not
17776         private but protected.
17777
17778 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17779
17780         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17781
17782 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17783
17784         PR optimization/12508.
17785         * combine.c (try_combine): Remove a dead set in a parallel
17786         even if its destination is a subreg.
17787
17788         Revert:
17789         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17790         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17791         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17792
17793 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17794
17795         * real.c: Update copyright date.
17796         * emit-rtl.c: Likewise.
17797         * rtl.h: Likewise.
17798         * dwarf2out.c: Likewise.
17799         * config/rs6000/darwin-ldouble.c: Likewise.
17800         * config/rs6000/rs6000.md: Likewise.
17801
17802 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17803
17804         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17805         TFmode to SImode libfuncs.
17806
17807 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17808
17809         PR middle-end/11397
17810         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17811
17812 2004-01-12  Jan Hubicka  <jh@suse.cz>
17813
17814         PR opt/12826
17815         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17816         stored.
17817
17818         PR opt/12863
17819         * cfgcleanup.c (label_is_jump_target_p): Move to...
17820         * rtlanal.c (label_is_jump_target_p): ... here.
17821         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17822         edges unified with branch edges.
17823
17824 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17825
17826         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17827         high word of an integral CONST_DOUBLE.
17828
17829 2004-01-12  Paul Brook  <paul@codesourcery.com>
17830
17831         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17832
17833 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17834
17835         PR target/13585
17836         * sh-protos.h (check_use_sfunc_addr): Declare.
17837         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17838         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17839
17840 2004-01-12  Jan Hubicka  <jh@suse.cz>
17841
17842         * alias.c:  Invlude varray.h
17843         (alias_sets): Turn into varray.
17844         (get_alias_set_entry): Use VARRAY; mark inline.
17845         (mems_in_disjoint_alias_sets_p): Mark inline.
17846         (record_alias_subset): Use varray.
17847         (init_alias_once): Initialize varray.
17848         (new_alias_set): Grow array.
17849         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17850
17851 2004-01-12  Jan Hubicka  <jh@suse.cz>
17852
17853         Partial fix for PR opt/10776 II
17854         * cselib.c: Include params.h
17855         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17856         locations.
17857         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17858         * Makefile.in (cselib.o): Depend on params.h
17859
17860 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17861
17862         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17863         simplify_unary_operation if the operand has a known mode.
17864
17865 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17866
17867         PR target/13534
17868         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17869         predicate to handle 'ld' conform addresses.
17870         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17871         contraint.
17872         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17873         are memory contraints.
17874         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17875         New prototype.
17876         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17877         Change 'o' to 'Y' constraint.
17878         (*movdf_softfloat64): Ditto.
17879
17880 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17881
17882         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17883         brace-enclosed syntax in all C output statements.
17884
17885 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17886
17887         PR target/13401
17888         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17889         Objective-C language type value is 14.
17890
17891 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17892
17893         PR c/12148
17894         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17895         `int' in a number of places to make sure we always have a SImode
17896         and not a HImode.  Add a 'L' suffix to a number of constants.
17897
17898 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17899
17900         * pa.c: Don't include obstack.h.
17901
17902         * pa.md: Correct constraint in pattern for loading PIC label address.
17903
17904 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17905
17906         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17907          before defining.
17908
17909 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17910
17911         PR fortran/9972
17912         * toplev.c (rest_of_handle_inline): Also consider functions
17913         for deferral if the language is GNU F77.
17914
17915 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17916
17917         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17918         diagnostic messages.
17919
17920 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17921
17922         PR middle-end/13392
17923         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17924         to drop through label.  Don't fall back to SCC even when conditional
17925         jump has not been found.
17926
17927 2004-01-11  Jan Hubicka  <jh@suse.cz>
17928
17929         * invoke.texi: Fix syntax error in previous patch.
17930
17931         Partial fix for PR opt/10776
17932         * Makefile.in (reload.o): Include param.h
17933         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17934         * reload.c: Include params.h.
17935         (find_equiv_reg): Work limiting check.
17936         * invoke.texi: Document.
17937
17938 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17939
17940         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17941         out-of-bounds accesses to string constants.  Simplify mips16
17942         case accordingly.
17943
17944 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17945
17946         PR optimization/13469
17947         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17948         reload_cse_regs (-fnon-call-exceptions only).
17949
17950 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17951
17952         * config/mcore/lib1.asm: Fix comment formatting.
17953         * config/mcore/mcore-elf.h: Likewise.
17954         * config/mcore/mcore.c: Likewise.
17955         * config/mcore/mcore.h: Likewise.
17956         * config/mcore/mcore.md: Likewise.
17957
17958 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17959
17960         * c-decl.c (duplicate_decls): Break apart into...
17961         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17962         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17963         ... these new functions.  Restructure for comprehensibility.
17964         Remove various archaic special cases.  Always report the
17965         location of the previous declaration when a diagnostic is issued.
17966         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17967         (match_builtin_function_types): Delete unnecessary forward declaration.
17968
17969 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17970
17971         * genautomata.c (make_automaton, NDFA_to_DFA):
17972         Print progress bars with '.' characters instead of '*'.
17973         (build_automaton): Change notes to match.
17974
17975 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17976
17977         * config/m32r/m32r.md: Use define_constants for unspec and
17978         unspec_volatile.
17979
17980 2004-01-10  Jan Hubicka  <jh@suse.cz>
17981
17982         PR opt/11635
17983         * expr.c (expand_expr_real):  More curefully expand union casts.
17984
17985 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17986
17987         * config/m32r/m32r.md (flush_icache): Use 1 for
17988         unspec_volatile.
17989
17990 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17991             James E Wilson  <wilson@specifixinc.com>
17992
17993         PR debug/12860
17994         * dbxout.c (dbxout_symbol): Remove initialization of
17995         current_sym_code, current_sym_value, and current_sym_addr.
17996         (dbxout_symbol_location): Same.
17997         (dbxout_prepare_symbol): Zero current_sym_code,
17998         current_sym_value, and current_sym_addr.
17999
18000 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
18001
18002         * tree.c (get_unwidened): Reorder conditions so that the null pointer
18003         check is done first.
18004
18005 2004-01-09  Eric Christopher  <echristo@redhat.com>
18006
18007         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18008         if we're running mark_constant_function.
18009
18010 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
18011
18012         PR target/12561
18013         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18014
18015 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
18016
18017         PR debug/11231
18018         * dbxout.c (dbxout_type_fields): Return if any item is
18019         error_mark_node or the type is error_mark_node.
18020
18021 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
18022
18023         * config/rs6000/darwin-ldouble.c: Add big comment explaining
18024         exactly what is expected as a 'long double'.
18025         (_xlqadd): When a value to be returned is representable as a
18026         'double', just return it directly, do not construct it using a union.
18027         Also, correct final fixup.
18028         (_xlqmul): Likewise.
18029         (_xlqdiv): Likewise.
18030         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18031
18032         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18033
18034 2004-01-09  Richard Henderson  <rth@redhat.com>
18035
18036         * recog.c (constrain_operands): Validate mem operands.
18037
18038 2004-01-09   James E Wilson  <wilson@specifixinc.com>
18039
18040         * gcc.c (init_spec): Remove -lunwind from shared case.
18041         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18042
18043 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
18044
18045         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18046         * configure: Regenerate
18047
18048 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
18049
18050         PR c/11234
18051         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18052         between function and object pointers.
18053         (digest_init): When comparing a pointer to function type to the
18054         target type, only apply TREE_TYPE once to the pointer to function
18055         type.
18056         * except.c (for_each_eh_label_1): Treat data as a pointer to a
18057         function pointer rather than casting it to a function pointer.
18058         (for_each_eh_label): Update caller.
18059         * recog.h (struct insn_data): Use a struct or union for output.
18060         * genoutput.c (output_insn_data): Update.
18061         * final.c (get_insn_template): Update.
18062
18063 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
18064
18065         * expr.h (expand_expr): Make it a macro, not a function.
18066         (expand_expr_real): New function.
18067         * expr.c (store_expr): Adjust logic for deciding whether or not to
18068         copy the value returned by expand_expr.
18069         (expand_expr): Rename to ...
18070         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
18071         calls to language hooks.
18072         * c-common.h (c_expand_expr): Adjust prototype.
18073         * c-common.c (c_expand_expr): Add alt_rtl parameter.
18074         * langhooks-def.h (lhd_expand_expr): Change prototype.
18075         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18076         * langhooks.h (lang_hooks): Change type of expand_expr.
18077         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18078         (last_expr_alt_rtl): Likewise.
18079         (expand_expr_stmt_value): Set last_expr_alt_rtl.
18080         (clear_last_expr): Clear it.
18081         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18082         (expand_end_bindings): Save and restor last_expr_alt_rtl.
18083         * tree.def (RTL_EXPR): Give it an additional operand.
18084         * tree.h (RTL_EXPR_ALT_RTL): New macro.
18085
18086 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18087
18088         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18089         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18090
18091 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18092
18093         PR target/13380.
18094         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18095         or (ne:SI (reg:CC 17) (const_int 0)).
18096         Be specific about modes wherever possible.
18097
18098 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18099
18100         * config/m32r/m32r.c (m32r_expand_block_move): Call
18101         gen_movestrsi_internal with two more arguments.
18102         (m32r_output_block_move): Adjust operand numbers.
18103         Properly update the source and destination pointers.
18104         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18105         'r+'.  Change the set detinations to match_operand.
18106
18107 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
18108
18109         * final.c (FIRST_INSN_ADDRESS): Remove.
18110         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18111         * system.h (FIRST_INSN_ADDRESS): Poison.
18112         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18113         * config/m32r/m32r-protos.h: Remove the prototype for
18114         m32r_first_insn_address.
18115         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18116         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18117         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18118
18119 2004-01-09  J. Brobecker  <brobecker@gnat.com>
18120
18121         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18122         we just created.
18123         (is_ada_subrange_type): DIEs for enumeration subtypes should be
18124         emitted as subrange types too.
18125         (subrange_type_die): Add handling of enumeration subtypes.
18126
18127 2004-01-08  Richard Henderson  <rth@redhat.com>
18128
18129         PR opt/12441
18130         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18131         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18132         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18133         (ix86_address_cost): Be prepared for SUBREGed registers.
18134         (legitimate_address_p): Accept SUBREGed registers.
18135
18136 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
18137
18138         * Makefile.in: Rename configure.in to configure.ac
18139         * doc/sourcebuild.texi: Likewise.
18140         * configure: Regenerate.
18141         * config.in: Regenerate.
18142
18143 2004-01-08  Stuart Hastings  <stuart@apple.com>
18144
18145         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18146
18147 2004-01-08  Jan Hubicka  <jh@suse.cz>
18148
18149         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
18150
18151 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
18152
18153         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18154         (UNSPEC_FIX_TRUNC_TF): New constant.
18155         (movtf_internal): Make splitter active only when insn is active.
18156         (extenddftf2): Rewrite to properly load zero into low part.
18157         (extenddftf2_internal): New.
18158         (extendsftf2): Rewrite.
18159         (truncdftf2): Correct length.
18160         (floatditf2): Delete.
18161         (fix_trunc_helper): New.
18162         (fix_trunctfdi2): Use fix_trunc_helper.
18163         (fix_trunctfsi2): Likewise.fix_trunc
18164         (fix_trunctfsi2_internal): New.
18165
18166         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18167         addresses are legitimate on Darwin even when flag_pic.
18168         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18169         non-offsettable addresses for loads of TFmode constants.
18170
18171 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18172
18173         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18174         variables in the appropriate bss section.
18175
18176 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18177
18178         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18179         target_flags has MASK_POWERPC64 when -m64.
18180         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18181         to 620, 630, power3, power4 and rs64a entries.
18182         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18183
18184 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18185
18186         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18187         floating-point constants.
18188
18189 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18190
18191         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18192         Create the subrange_type DIE using the given context DIE.
18193         (modified_type_die): Update call to subrange_type_die.
18194
18195 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18196
18197         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18198         Add multiple-include guard.
18199
18200 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18201
18202         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18203         all vector constant loadable by vsplt*.
18204         (output_vec_const_move): Likewise.
18205
18206 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18207
18208         PR c/6024
18209         * c-typeck.c (comptypes): Only treat enumerated types in the same
18210         translation unit as compatible with each other when they are the
18211         same type.
18212         * doc/extend.texi: Update.
18213
18214 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18215
18216         PR c/12165
18217         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18218         array type from the array element type.
18219
18220 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18221
18222         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18223         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18224         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18225         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18226         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18227
18228 2004-01-06  Eric Christopher  <echristo@redhat.com>
18229
18230         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18231         (DWARF2_DEBUGGING_INFO): Define.
18232         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18233         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18234         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18235         for irix as.
18236         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18237         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18238         * config/mips/iris5gas.h: Ditto.
18239         (DBX_DEBUGGING_INFO): Remove.
18240         (DWARF2_DEBUGGING_INFO): Ditto.
18241         (MIPS_DEBUGGING_INFO): Ditto.
18242         (PREFERRED_DEBUGGING_TYPE): Ditto.
18243         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18244         (PREFERRED_DEBUGGING_TYPE): Ditto.
18245         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18246         * config/mips/elf64.h: Ditto.
18247
18248 2004-01-06  Jan Hubicka  <jh@suse.cz>
18249
18250         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18251         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18252
18253 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18254
18255         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18256         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18257         * config/rs6000/darwin-ldouble.c: New.
18258
18259         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18260         for constants.
18261         (constant_subword): Delete.
18262         * rtl.h (constant_subword): Delete prototype.
18263         (immed_double_const): Is not in varasm.c.
18264         * simplify-rtx.c (simplify_immed_subreg): New.
18265         (simplify_subreg): Use simplify_immed_subreg.
18266
18267         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18268         than trying to generate RTL directly.
18269         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18270         RTL directly.
18271
18272         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18273
18274 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18275
18276         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18277         function into a separate macro.
18278         (read_only_data_section): Add void argument.
18279         (private_data_section): Same.
18280         (read_only_private_data_section): Same.
18281         (toc_section): Same.
18282
18283 2004-01-06  Jan Hubicka  <jh@suse.cz>
18284
18285         * invoke.texi:  Remove typo in last change.
18286
18287         PR target/10301
18288         * config.gcc: Accept opteron and athlon-64 as variants
18289         of k8.
18290         * i386.c (override_options): Likewise.
18291         * invoke.texi (i386 -mtune): Expand documentation.
18292
18293 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18294
18295         * alias.c: Fix comment typos.
18296         * builtins.c: Likewise.
18297         * cfg.c: Likewise.
18298         * df.c: Likewise.
18299         * dominance.c: Likewise.
18300         * dwarf2out.c: Likewise.
18301         * emit-rtl.c: Likewise.
18302         * expr.c: Likewise.
18303         * final.c: Likewise.
18304         * fold-const.c: Likewise.
18305         * gcse.c: Likewise.
18306         * genattrtab.c: Likewise.
18307         * genrecog.c: Likewise.
18308         * gensupport.c: Likewise.
18309         * ggc-zone.c: Likewise.
18310         * integrate.c: Likewise.
18311         * local-alloc.c: Likewise.
18312         * loop.c: Likewise.
18313         * recog.c: Likewise.
18314         * regmove.c: Likewise.
18315         * reg-stack.c: Likewise.
18316         * reorg.c: Likewise.
18317         * rtlanal.c: Likewise.
18318         * rtl.h: Likewise.
18319         * sched-ebb.c: Likewise.
18320         * simplify-rtx.c: Likewise.
18321         * toplev.c: Likewise.
18322         * varasm.c: Likewise.
18323
18324 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18325
18326         * doc/install.texi: Fix typos.
18327         * doc/invoke.texi: Likewise.
18328         * doc/md.texi: Likewise.
18329
18330 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18331
18332         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18333
18334 2004-01-06  Jan Hubicka  <jh@suse.cz>
18335
18336         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18337         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18338         of MMX_REGPARM.
18339         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18340         add MMX_REGPARM.
18341         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18342         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18343         (MMX_REGPARM_MAX): Similarly for -mmmx.
18344
18345 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18346
18347         * config/sh/linux.h: Fix comment formatting.
18348         * config/sh/netbsd-elf.h: Likewise.
18349         * config/sh/sh.c: Likewise.
18350         * config/sh/sh.h: Likewise.
18351         * config/sh/vxworks.h: Likewise.
18352
18353 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18354
18355         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18356         * toplev.c (output_file_directive): Don't use
18357         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18358
18359 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18360
18361         * toplev.c: Fix broken checkin of 2003-12-30.
18362
18363 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18364
18365         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18366         (USING_MMAP): We don't support non-mmap.
18367         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18368         large objects.
18369         (struct page_entry): Remove bytes_free.
18370         (struct page_table_chain): Remove.
18371         (struct globals): Remove page_table member.
18372         (loookup_page_table_entry): Function deleted.
18373         (set_page_table_entry): Ditto.
18374         (ggc_allocated_p): No longer need page table lookups.
18375         (ggc_marked_p): Ditto.
18376         (alloc_small_page): Don't care about bytes_free anymore.
18377         (alloc_large_page): Round up size.
18378         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18379         their size the new way.
18380         Remove page table lookups and setting.
18381         (ggc_get_size): Calculate large object size the new way.
18382         (sweep_pages): Redo to account for fact that we no longer have
18383         bytes_free.
18384         (ggc_collect): No longer need to reincrement bytes_free.
18385         (ggc_pch_alloc_object): Handle new large objects properly.
18386         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18387
18388 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18389
18390         * doc/invoke.texi: Remove a page break.
18391
18392 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18393
18394         * config/avr/avr.c (avr_output_function_prologue): Remove an
18395         extra pair of curly braces.
18396
18397 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18398
18399         * config/mn10300/mn10300.c: Fix comment formatting.
18400         * config/mn10300/mn10300.h: Likewise.
18401
18402 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18403
18404         * tree.h: Update documentation on nothrow_flag.
18405         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18406         types.
18407
18408 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18409
18410         * doc/invoke.texi: Remove traces of dead ports.
18411
18412 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18413
18414         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18415         option.
18416
18417 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18418
18419         PR target/12945
18420         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18421         counter labels.
18422         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18423         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18424         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18425         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18426         (mips_symbol_insns): Don't trust the local/global classification.
18427         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18428         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18429         -mno-explicit-relocs.
18430         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18431         between local and global symbols.
18432
18433 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18434
18435         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18436         (mips_preferred_reload_class): Declare.
18437         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18438         (EXTRA_CONSTRAINT): Update accordingly.
18439         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18440         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18441         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18442         mips_dangerous_for_la25_p.
18443         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18444         if mips_dangerous_for_la25_p.
18445
18446 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18447
18448         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18449         warning.
18450
18451 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18452
18453         * configure.ac: Use AC_PROG_CPP_WERROR.
18454         * configure: Regenerate.
18455
18456 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18457
18458         * .cvsignore: Add autom4te.cache.
18459
18460 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18461
18462         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18463         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18464         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18465         then architecture options, then ABI options.  General rewording.
18466
18467 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18468
18469         PR c/3414
18470         * doc/extend.texi: Clarify definition of malloc attribute.
18471
18472 2004-01-04  Jan Hubicka  <jh@suse.cz>
18473
18474         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18475         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18476         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18477         (cgraph_inline_p): Add extra argument reason.
18478         * cgraphunit.c: Minor formating fixes.
18479         cgraph_first_inlined_callee): New functions.
18480         (record_call_1): Record builtins too.
18481         (cgraph_analyze_function): Update inline_failed messages.
18482         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18483         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18484         (cgraph_check_inline_limits): Likewise; Add argument reason.
18485         (cgraph_set_inline_failed): New static function.
18486         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18487         reasons.
18488         (cgraph_inline_p): Add new argument reason.
18489         * tree-inline.c (expand_call_inline):  Update warning.
18490
18491 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18492
18493         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18494         with modern equivalents.
18495         * configure: Regenerate.
18496
18497         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18498         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18499         * configure: Regenerate.
18500
18501         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18502
18503         * configure.in: Rename to configure.ac.
18504         * configure.ac: Renamed from configure.in; make minimum necessary
18505         changes for autoconf 2.5x.
18506         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18507         * configure: Regenerate with autoconf 2.57.
18508
18509 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18510
18511         * config/mips/linux.h: Fix comment formatting.
18512         * config/mips/mips.c: Likewise.
18513         * config/mips/mips.h: Likewise.
18514         * config/mips/mips.md: Likewise.
18515         * config/mips/netbsd.h: Likewise.
18516         * config/mips/windiss.h: Likewise.
18517
18518 2004-01-02  Richard Henderson  <rth@redhat.com>
18519
18520         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18521         for sse and 387; add suppression for mmx.
18522
18523 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18524
18525         * loop.c (loop_optimize): Free all loops_info's mems.
18526
18527         * c-typeck.c (finish_init): Free spelling_base before
18528         setting it again.
18529
18530         * cfgloop.c (flow_loops_find): Always free the sbitmap
18531         headers.
18532
18533         * predict.c (estimate_probability): Free bbs after being
18534         done with it.
18535
18536 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18537
18538         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18539         const_8bit_operand and call_address_operand.
18540
18541 2004-01-02  Jan Hubicka  <jh@suse.cz>
18542
18543         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18544         when there is nothing to inline but warnings are requested.
18545         (cgraph_decide_inlining):  Fix memory leak.
18546
18547 2004-01-02  Jan Hubicka  <jh@suse.cz>
18548
18549         * expr.c (store_constructor):  Fix pasto in previous patch.
18550
18551 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18552
18553         * config/i386/cygming.h: Fix comment formatting.
18554         * config/i386/djgpp.h: Likewise.
18555         * config/i386/gthr-win32.c: Likewise.
18556         * config/i386/i386-interix.h: Likewise.
18557         * config/i386/i386.c: Likewise.
18558         * config/i386/i386.h: Likewise.
18559         * config/i386/openbsd.h: Likewise.
18560         * config/i386/winnt.c: Likewise.
18561         * config/i386/xm-mingw32.h: Likewise.
18562
18563 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18564
18565         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18566         copyright and last modification dates.
18567
18568 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18569
18570         * doc/install.texi (Specific): Mention x86_64.
18571
18572 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18573
18574         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18575         Call force_operand on plus_constant result.
18576
18577 2004-01-01  Jan Hubicka  <jh@suse.cz>
18578
18579         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18580         * expr.c (store_constructor): Use vec_init pattern.
18581         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18582         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18583         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18584         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18585         New patterns.
18586         (sse2_unpc?pd): Fix pattern.
18587         (sse2_movlpd): Kill.
18588         (sse2_movsd): Deal with movlpd too.
18589         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18590         (ix86_expand_vector_init): New.
18591         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18592         * md.texi (vec_set, vec_extract): Document
18593
18594 2003-12-31  Jan Hubicka  <jh@suse.cz>
18595
18596         PR opt/13473
18597         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18598         ASM input operands
18599
18600         PR opt/12617
18601         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18602         (dump_file): Likewise.
18603         (rest_of_compilation): Likewise.
18604
18605         PR debug/13367
18606         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18607         flag_really_no_inline we inline always_inline functions.
18608         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18609         for non-always_inline functions when there is flag_really_no_inline.
18610         (cgraph_decide_inlining): Limit work done when not inlining.
18611         (cgraph_decide_inlining_incrementally): Likewise.
18612         (cgraph_optimize_function): Check whether something got inlined.
18613         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18614         extern inline functions when not inlining.
18615
18616         * opts.c (decode_options):  Disable crossjumping at -O1
18617         * invoke.texi (-O1): Document change.
18618
18619 See ChangeLog.10 for earlier changes.