OSDN Git Service

* tree-ssa-phiopt.c (abs_replacement): New function.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-18  Mike Stump  <mrs@apple.com>
2             Devang Patel  <dpatel@apple.com>
3
4         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
5         if this label is for eh.
6         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
7         * config/darwin.c (darwin_emit_unwind_label): Likewise.
8         * dwarf2out.c (output_call_frame_info): Likewise.
9         * output.h (default_emit_unwind_label): Likewise.
10         * target.h (unwind_label): Likewise.
11         * varasm.c (default_emit_unwind_label): Likewise.
12
13         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
14         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
15         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
16         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
17         DEBUG_RANGES_SECTION): Define.
18
19 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
20
21         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
22         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
23         (cgraph_varpool_node):
24         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
25         (cgraph_function_possibly_inlined_p): Use the decl itself for
26         the key, not DECL_ASSEMBLER_NAME.
27         (change_decl_assembler_name): No need to muck with the hash tables.
28         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
29         Delete.
30         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
31         for the key, not DECL_ASSEMBLER_NAME.
32         * cgraph.h: Remove prototypes of deleted functions.
33         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
34         (mark_decl_referenced): New function.
35         * tree.h: Prototype mark_decl_referenced.
36         * final.c (output_addr_const) <case SYMBOL_REF>: Call
37         mark_decl_referenced before assemble_name.
38         * c-decl.c (finish_decl): Use mark_decl_referenced.
39
40 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
41             Jeff Law <law@redhat.com>
42
43         * tree-ssa-phiopt.c (abs_replacement): New function.
44         (empty_block_p): New function extracted from...
45         (candidate_bb_for_phi_optimization): Break out empty block test.
46         (conditional_replacement): Use empty_block_p.
47         (value_replacement): Similarly.
48
49         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
50         * tree-ssa-phiopt.c: Include flags.h.
51         (conditional_replacement): Remove argument names from prototype.
52         Minor formatting and comment fixes.
53         (tree_ssa_phiopt): If conditional_replacement returns false, then
54         call value_replacement.
55         (value_replacement): New function.
56
57 2004-05-18  Jeff Law  <law@redhat.com>
58
59         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
60         from conditional_replacement.
61         (candidate_bb_for_phi_optimization): Similarly.
62         (conditional_replacement): Use replace_phi_with_stmt and
63         candidate_bb_for_phi_optimization.
64
65         * tree-ssa-phiopt.c: Fix various formatting issues.
66
67 2004-05-18  Steven Bosscher  <stevenb@suse.de>
68
69         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
70         s390_expand_cmpmem): Do not use expand_start_loop and
71         expand_end_loop, instead build the loop manually.
72
73 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
74
75         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
76         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
77
78 2004-05-17  Jeff Law  <law@redhat.com>
79
80         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
81         * flags.h (flag_delete_null_pointer_checks): Here.
82         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
83         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
84         (add_phi_arg, remove_phi_arg_num): Similarly.
85         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
86         property into PHI nodes.
87         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
88         (record_equivalences_from_phis): If all PHI arguments are known to be
89         nonzero, then the result must be nonzero as well.
90         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
91         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
92         appropriately.  Walk the USE-DEF chains and propagate nonzero property
93         as appropriate.
94         * tree.h (PHI_ARG_NONZERO): Define.
95         (phi_arg_d): Add nonzero flag.
96
97 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
98
99         * f: Entire directory removed
100
101         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
102         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
103         (g77_integer_type_node, g77_uinteger_type_node)
104         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
105         * c-common.c (c_common_nodes_and_builtins): Do not initialize
106         the above set of variables.
107
108         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
109         * doc/invoke.texi, doc/standards.texi: Remove cross-references
110         to g77 manual.
111
112 2004-05-17  Steven Bosscher  <stevenb@suse.de>
113
114         PR tree-optimization/15438
115         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
116         attributed functions as pure or const.
117
118 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
119
120         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
121         from source code with errors.
122
123 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
124
125         Enable tree browser for all front ends.
126         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
127         (BACKEND): ...to here.
128
129 2004-05-17  Jan Hubicka  <jh@suse.cz>
130
131         * i386.c (construct_container): Do not produce BLKmode registers.
132         (classify_argument): Properly compute alignment of complex types.
133
134 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
135
136         PR target/15084
137         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
138         and renamed to movdi_insv_1_rex64.
139         (insv): Support SImode for 32bit and DImode for 64bit.
140
141 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
142
143         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
144         (TARGET_SWITCHES): Remove debugg.
145         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
146         TARGET_64BIT.
147         (subdi3): Replace the define_expand with a define_insn, the latter
148         renamed from subdi3_internal_3.
149         (negdi2): Likewise negdi2_internal_2.
150         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
151         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
152         and associated define_splits.
153         (adddi3_internal): Renamed from adddi3_internal_3.
154         (ashldi3_internal): Likewise ashldi3_internal4.
155         (ashrdi3_internal): Likewise ashrdi3_internal4.
156         (lshrdi3_internal): Likewise lshrdi3_internal4.
157
158 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
159
160         * optabs.c (expand_unop): Try implementing negation using subtraction
161         from zero.
162
163 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
164
165         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
166         SAR register.
167
168 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
169
170         PR target/10982
171         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
172         (ne_zeroextractsi_shifted): New pattern.
173         (ite_ne_zeroextractsi): New pattern.
174         (ite_ne_zeroextractsi_shifted): New pattern.
175
176 2004-05-15  Steven Bosscher  <stevenb@suse.de>
177
178         * c-gimplify.c (c_genericize):
179         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
180         * c-parse.in <expr_no_commas>: Likewise.
181         <if_prefix>: Likewise.
182         <select_or_iter_stmt>: Likewise.
183         * expr.c (expand_var, expand_expr_real_1): Likewise.
184         * expr.h (expand_expr): Make it a static inline function.
185         Move prototype for expand_expr_real up before this.
186         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
187         Likewise.
188         * gimplify.c (gimple_boolify, gimplify_addr_expr,
189         gimplify_asm_expr, gimplify_expr): Likewise.
190         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
191         dump_function_to_file): Likewise.
192         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
193         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
194         * tree-into-ssa.c (dump_tree_ssa): Likewise.
195         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
196         Likewise.
197         * tree-optimize.c (execute_one_pass): Likewise.
198         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
199         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
200
201         * objc/objc-act.c (objc_build_try_enter_fragment,
202         objc_build_try_epilogue, objc_build_catch_stmt,
203         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
204         with lang_hooks.foo ().
205
206 2004-05-15  Roger Sayle  <roger@eyesopen.com>
207
208         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
209         that simplify_builtin doesn't destructively modify its argument.
210
211 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
212
213         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
214         implementations for ARM and Thumb.
215         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
216
217 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
218
219         * prefix.c (update_path): Replace PREFIX with KEY only
220         when it matches a full directory name in PATH.
221
222 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
223
224         * arm.h (TARGET_APCS_32): Delete.
225         (TARGET_MMU_TRAPS): Delete.
226         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
227         define __APCS_26__.
228         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
229         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
230         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
231         (prog_mode_type): Delete.
232         (PROMOTE_MODE): Always promote unsigned for HImode.
233         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
234         (MASK_RETURN_ADDR): Simplify.
235         * arm.c (arm_prgmode): Delete.
236         (arm_override_options, arm_gen_rotated_half_load): Simplify.
237         (print_multi_reg, output_return_instruction): Simplify.
238         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
239         (arm_return_addr): Simplify.
240         * arm.md (prog_mode): Delete.
241         (conds): Simplify.
242         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
243         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
244         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
245         (loadhi_shiftpredec): Delete.
246         (peephole for post-increment on HImode load): Delete.
247         * arm/crtn.asm: (FUNC_END): Simplify.
248         * arm/lib1funcs.asm: Remove APCS-26 return macros.
249         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
250         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
251         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
252         MULTILIB_DEFAULTS as required.
253         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
254         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
255         variables as required.
256         * doc/invoke.texi (ARM Options): Remove obsolete flags.
257
258 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
259
260         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
261         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
262         count to 8 to handle n_reg > 2.
263
264 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
265
266         * doc/extend.texi: Update WG14 URL.
267
268 2004-05-15  Steven Bosscher  <stevenb@suse.de>
269
270         * basic-block.h (life_analysis, delete_noop_moves):
271         Update prototypes.
272         * bt-load.c (branch_target_load_optimize): Don't take the
273         insns stream as an argument.  Update the life_analysis calls.
274         * combine.c (combine_instructions): Update delete_noop_moves
275         calls.
276         * flow.c (notice_stack_pointer_modification): Don't take the
277         insns stream as an argument.  Work on the flow graph.
278         (life_analysis): Likewise.
279         (delete_noop_moves): Likewise.
280         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
281         (rest_of_handle_life): Update life_analysis call.
282         (rest_of_compilation): Likewise, and also update
283         branch_target_load_optimize call.
284         * ra.c (reg_alloc): Update life_analysis call.
285         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
286         the insns stream as an argument.
287         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
288         call.
289         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
290         prototypes.
291         * value-profile.c (branch_prob): Update life_analysis call.
292         * web.c (web_main): Work on the CFG, not on the insns stream.
293
294         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
295         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
296         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
297
298 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
299
300         PR c/15444
301         * c-format.c (avoid_dollar_number): New function.
302         (check_format_info_main): Call avoid_dollar_number when operand
303         numbers might occur but has_operand_number == 0.
304
305 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
306
307         * arm.md (all peephole2 patterns): Use predicates that validate
308         register classes as appropriate.
309
310 2004-05-14  Steven Bosscher  <stevenb@suse.de>
311
312         PR opt/14472
313         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
314         ignore type conversions that do not inhibit tail calling.
315         (find_tail_calls): Likewise.
316
317 2004-05-14  Jeff Law  <law@redhat.com>
318
319         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
320         bother marking bypassed virtuals for out-of-ssa.  Instead merge
321         bypassed virtuals into vars_to_rename just before into-ssa pass.
322
323         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
324         so that it picks up more opportunities to eliminate ABS expressions
325         or turn them into negations.
326
327 2004-05-14  Steven Bosscher  <stevenb@suse.de>
328
329         * passes.c (rest_of_handle_null_pointer): Remove.
330         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
331         (rest_of_compilation): Likewise.
332         * rtl.h (delete_null_pointer_checks): Remove prototype.
333         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
334         Remove declarations.
335         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
336         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
337         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
338         expr_reaches_here_p, computing_insn, def_reaches_here_p,
339         can_disregard_other_sets, handle_avail_expr, classic_gcse,
340         one_classic_gcse_pass, invalidate_nonnull_info,
341         delete_null_pointer_checks_1, delete_null_pointer_checks,
342         expr_reached_here_p_work): Remove.
343         (gcse_main): Do not perform classic GCSE when optimizing for size.
344         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
345         are never used.
346
347 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
348
349         PR optimization/14466
350         * tree-complex.c (make_temp): Remove.
351         (gimplify_val): Replace make_temp with make_rename_temp
352         and add NULL as the second argument.
353         (expand_complex_div_wide): Likewise.
354         * tree-dfa.c (make_rename_temp): New function.
355         * tree-flow.h (make_rename_temp): Declare.
356         * tree-sra.c (make_temp): Remove.
357         (lookup_scalar): Replace make_temp with make_rename_temp.
358         (create_scalar_copies): Likewise.
359         * tree-ssa-phiopt.c (conditional_replacement): When we
360         get non gimple create a temporary variable to hold the
361         casted expression.
362
363 2004-05-14  Paul Brook  <paul@codesourcery.com>
364
365         * stor-layout.c (update_alignment_for_field): Use
366         targetm.align_anon_bitfield.
367         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
368         (TARGET_INITIALIZER): Use it.
369         * target.h (struct gcc_target): Add align_anon_bitfield.
370         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
371         (TARGET_ALIGN_ANON_BITFIELD): Define.
372         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
373
374 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
375
376         * tree.def (documentation): Remove mention of class 'b'.
377         (BLOCK): Now in class 'x'.
378         * c-common.c (verify_tree): Remove case 'b'.
379         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
380         * calls.c (calls_function_1): Control cannot get past the switch
381         when exp is a BLOCK.
382         * print-tree.c (print_node): Move code for class 'b' to the class
383         'c'/'x' switch, as case BLOCK.
384         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
385         (unsafe_for_reeval, substitute_placeholder_in_expr)
386         (stabilize_reference_1): Remove case 'b'.
387         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
388         of something being 'b' to tests for TREE_CODE of something being
389         BLOCK.
390         * tree-ssa-operands.c (get_expr_operands): Likewise.
391
392 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
393
394         * tree-gimple.c: Rename from tree-simple.c.
395         * tree-gimple.h: Rename from tree-simple.h.
396         * c-gimplify.c: Rename from c-simplify.c
397         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
398         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
399         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
400         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
401         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
402         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
403         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
404         Update.
405
406 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
407
408         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
409
410 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
411
412         * tree-ssa.c (delete_tree_ssa): XFREE
413         bitmaps allocated with BITMAP_XMALLOC.
414
415         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
416         idfs_cache at the end of the function.
417
418         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
419         at the end of the function.
420
421         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
422         el at the end of the function.
423
424         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
425         bitmaps allocated with BITMAP_XMALLOC.
426
427         * loop-unswitch.c (unswitch_single_loop): Free bbs at
428         the end.
429
430         * final.c (shorten_branches): Free uid_shuid before
431         reallocating it.
432
433         * bb-reoder.c (connect_traces): Free cold_traces at the end.
434
435 2004-05-13  Jeff Law  <law@redhat.com>
436
437         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
438         variables.  Simplify slightly by using USE_OP/DEF_OP instead
439         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
440
441         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
442         rather than iterating through the blocks testing each bit in
443         livein to initialize the worklist.
444         (mark_def_sites): Remove useless checks of KILLS for virtual
445         operands.
446
447         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
448         new parameters for the statement and variable worklist as well
449         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
450         worklist recording interesting variables in the variable worklist
451         and bitmap.  Handle casts between integral and boolean types.
452         (substitute_single_use_vars): Accept new parameters for the statement
453         and variable worklist.  When a substitution is made add a new
454         entry to the statement worklist.  Handle casts between integral
455         and boolean types.
456         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
457         worklists to children.  Iterate until the statement worklist
458         is empty.
459
460 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
461
462         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
463         the end of the block.
464
465         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
466         with BITMAP_XMALLOC.
467
468         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
469         with BITMAP_XMALLOC.
470
471         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
472         Free nonzero_vars at the end of the function.
473
474         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
475         need to generate code instead of a NOP_EXPR.
476
477 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
478
479         * gcc.c (default_compilers): Fill out initializers for new Fortran
480         entries.
481
482 2004-05-13  Paul Brook  <paul@codesourcery.com>
483
484         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
485
486 2004-05-13  Paul Brook  <paul@codesourcery.com>
487
488         * config/arm/arm.c (arm_default_short_enums): New function.
489         (TARGET_DEFAULT_SHORT_ENUMS): Define.
490
491 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
492
493         Merge from tree-ssa-20020619-branch.
494
495         * Makefile.in (reload1.o-warn): Add.
496         (tree-alias-ander.o-warn): Add.
497         (GMPLIBS): Define.
498         (GMPINC): Define.
499         (BANSHEELIB): Define.
500         (BANSHEEINC): Define.
501         (TREE_DUMP_H): Define.
502         (TREE_SIMPLE_H): Define.
503         (TREE_FLOW_H): Define.
504         (LIBDEPS): Add BANSHEELIB.
505         (INCLUDES): Add BANSHEEINC and GMPINC.
506         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
507         c-mudflap.o and c-pretty-print.o.
508         (C_OBJS): Remove c-pretty-print.o.
509         (OBJS-common): Remove sibcall.o.
510         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
511         tree-ssa.o, tree-optimize.o, tree-simple.o,
512         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
513         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
514         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
515         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
516         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
517         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
518         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
519         tree-tailcall.o, gimple-low.o, tree-iterator.o,
520         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
521         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
522         tree-profile.o.
523         (OBJC-archive): Add tree-nomudflap.o.
524         (cc1): Add dependency on @TREEBROWSER@.
525         (c-decl.o): Add dependency on TREE_DUMP_H.
526         (c-dump.o): Likewise.
527         (c-common.o): Add dependency on tree-iterator.h
528         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
529         (gtype-desc.o): Add dependency on TREE_FLOW_H.
530         (tree.o): Add dependency on tree-iterator.h,
531         BASIC_BLOCK_H and TREE_FLOW_H.
532         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
533         (langhooks.o): Add dependency on TREE_SIMPLE_H.
534         (tree-alias-type.o, tree-alias-ander.o,
535         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
536         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
537         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
538         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
539         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
540         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
541         tree-nested.o, tree-iterator.o, tree-dfa.o,
542         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
543         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
544         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
545         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
546         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
547         tree-sra.o, tree-complex.o, tree-profile.o,
548         rtl-profile.o): New rules.
549         (function.o): Add dependency on basic-block.h
550         (expr.o): Add dependency on tree-iterator.h.
551         (sibcall.o): Remove.
552         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
553         (cfg.o): Add dependency on TIMEVAR_H.
554         (cfghooks.o): Add dependency on TREE_FLOW_H.
555         (reg-stack.o): Add dependency on basic-block.h.
556         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
557         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
558         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
559         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
560         tree-alias-type.h, tree-alias-common.h,
561         tree-alias-type.c, tree-alias-common.c,
562         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
563         rtl-profile.c and tree-nested.c.
564         (gt-tree-alias-common.h, gt-tree-mudflap.h,
565         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
566         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
567         gt-tree-cfg.h, gt-tree-nested.h): New rules.
568         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
569         * basic-block.h: Include predict.h
570         (struct edge_def): Add GTY marker.
571         Change field 'insns' to be a union of tree and rtx.
572         (EDGE_TRUE_VALUE): Define.
573         (EDGE_FALSE_VALUE): Define.
574         (EDGE_EXECUTABLE): Define.
575         (struct bb_ann_d): Forward declare.
576         (struct basic_block_def): Add GTY marker.
577         Remove fields head_tree and end_tree.
578         Add fields stmt_list, rbi and tree_annotations.
579         (struct reorder_block_def): Define.
580         (basic_block_info): Add GTY marker.
581         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
582         variables instead of macros.
583         (flow_call_edges_add): Remove declaration.
584         (make_eh_edge): Remove declaration.
585         (brief_dump_cfg, find_edge, tree_predicted_by_p,
586         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
587         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
588         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
589         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
590         (try_redirect_by_replacing_jump): Modfiy return type to
591         edge instead of bool.
592         * bb-reorder.c (copy_bb): Call duplicate_block
593         instead of cfg_layout_duplicate_bb.
594         (copy_bb_p): Call can_duplicate_block_p instead of
595         cfg_layout_can_duplicate_bb_p.
596         * bitmap.c (bitmap_first_set_bit): Abort if word
597         wasn't found.
598         (bitmap_last_set_bit): Likewise.
599         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
600         (DEF_FUNCTION_TYPE_3): Add.
601         * builtins.c (c_strlen): Make extern.
602         (builtin_save_expr): New.
603         (expand_builtin_nonlocal_goto): New.
604         (expand_builtin_constant_p): Remove.
605         (expand_builtin_mathfn): Call builtin_save_expr instead
606         of save_expr.
607         (expand_builtin_mathfn_2): Likewise.
608         (expand_builtin_strcmp): Likewise.
609         (expand_builtin_strncmp): Likewise.
610         (expand_builtin_strcat): Likewise.
611         (fold_builtin_cabs): Likewise.
612         (expand_builtin_alloca): Don't trigger if -fmudflap is
613         given.
614         (build_string_literal): Set TREE_INVARIANT on new node.
615         (expand_builtin_profile_fun): New.
616         (round_trampoline_addr): New.
617         (expand_builtin_init_trampoline): New.
618         (expand_builtin_adjust_trampoline): New.
619         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
620         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
621         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
622         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
623         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
624         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
625         Handle.
626         (fold_builtin_expect): New.
627         (fold_builtin_isascii): Don't return non-constant results
628         in GIMPLE form.
629         (fold_builtin_isdigit): Likewise.
630         (fold_builtin_1): New.
631         (fold_builtin): Call it.
632         (build_function_call_expr): Update call to build a new
633         CALL_EXPR.
634         (purge_builtin_constant_p): Remove.
635         (simplify_builtin, simplify_builtin_memcmp,
636         simplify_builtin_strcmp, simplify_builtin_strncmp,
637         simplify_builtin_strpbrk, simplify_builtin_strstr,
638         simplify_builtin_strchr, simplify_builtin_strrchr,
639         simplify_builtin_strcat, simplify_builtin_strncat,
640         simplify_builtin_strspn, simplify_builtin_strcspn,
641         simplify_builtin_next_arg, simplify_builtin_va_start,
642         simplify_builtin_sprintf): New.
643         * builtins.def (BUILT_IN_STACK_ALLOC,
644         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
645         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
646         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
647         BUILT_IN_PROFILE_FUNC_EXIT): Define.
648         * c-common.c: Include tree-iterator.h and hashtab.h.
649         (lang_statement_code_p): Declare.
650         (lang_gimplify_stmt): Declare.
651         (fix_string_type): Set TREE_INVARIANT for value.
652         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
653         (c_type_hash): New.
654         (c_common_get_alias_set): Handle multiple type nodes
655         referring to "the same" type, currently for C90 only.
656         (c_add_case_label): Use create_artificial_label.
657         (finish_label_address_expr): Don't set TREE_CONSTANT on
658         result.
659         (c_expand_expr): Don't handle STMT_EXPR.
660         (handle_alias_attribute): Marke aliased variables to be
661         TREE_STATIC.
662         (handle_nonnull_attribute): Initialize arg_num.
663         (check_function_nonnull): Likewise.
664         (c_walk_subtrees): New.
665         (c_estimate_num_insns_1): Don't handle
666         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
667         (c_decl_uninit_1): Remove.
668         (c_decl_uninit): Remove.
669         (c_warn_unused_result): New.
670         * c-common.def (ASM_STMT): Change number of operands
671         to 4.
672         (FILE_STMT): Remove.
673         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
674         Remove.
675         (lang_gimplify_stmt): Add.
676         (expand_stmt): Remove.
677         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
678         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
679         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
680         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
681         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
682         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
683         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
684         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
685         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
686         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
687         genrtl_compound_stmt, genrtl_asm_stmt,
688         genrtl_cleanup_stmt, c_decl_uninit): Remove.
689         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
690         c_tree_chain_matters_p, c_warn_unused_result,
691         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
692         Declare.
693         * c-convert.c (convert): Make convert work when
694         converting to compatible types across translation unit.
695         * c-decl.c: Include langhooks.h, tree-mudflap.h,
696         tree-simple.h, diagnostic.h and tree-dump.h
697         (merge_decls): Initialize oldtype to NULL.
698         (finish_decl): Use DECL_HARD_REGISTER instead of
699         DECL_C_HARD_REGISTER.
700         (check_bitfield_type_and_width): Check for null
701         lang_type_specific when check the precision of an enum.
702         (grokdeclarator): Immediately layout an ARRAY_TYPE used
703         in a pointer-to-array declarator.
704         (finish_struct): Clear allocated struct lang_type.
705         (finish_enum): Set enum_min and enum_max.  Set
706         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
707         not to the enumerators.
708         (set_decl_nonlocal): New.
709         (store_parm_decls): Use it via walk_tree.
710         (c_finalize): New.
711         (finish_function): When !targetm.have_ctors_dtors,
712         record static constructors and destructors here...
713         (c_expand_body_1): ... not here.
714         (c_expand_decl): Rename from c_expand_decl_stmt.
715         Handle all C-specific expansion semantics.
716         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
717         STMT_LINENO.
718         * c-format.c (handle_format_arg_attribute): Initialize
719         format_num.
720         * c-lang.c: Include tree-inline.h
721         (LANG_HOOKS_EXPAND_DECL,
722         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
723         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
724         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
725         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
726         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
727         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
728         (c_types_compatible_p): New.
729         * c-mudflap.c: New file.
730         * c-objc-common.c: Include tree-mudflap.h
731         (start_cdtor, finish_cdtor): Collapse
732         together into
733         (build_cdtor): ...here.  Update to construct a complete tree
734         for the function.  No need to call push_scope, pop_scope, or
735         clear_last_expr, or set current_function_cannot_inline.
736         (c_missing_noreturn_ok_p): Change prototype to return
737         bool.
738         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
739         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
740         opts.c.
741         (c_common_post_options): Don't ever use rtl inlining.
742         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
743         * c-pragma.c (handle_pragma_redefine_extname): Define
744         always.
745         (init_pragma): Activate #pragma redefine_extname for mudflap.
746         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
747         (pp_c_initializer): Accept any type CONSTRUCTOR.
748         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
749         COMPLEX_TYPE.
750         (decl_name_str): New local function.
751         (pp_c_direct_declarator): Call it.
752         (pp_c_primary_expression): Call it.
753         (pp_c_id_expression): Call it.
754         (pp_c_statement): Call it.
755         (print_c_tree): Create new pp object.
756         * c-pretty-print.h (pp_c_tree_decl_identifier,
757         print_c_tree): Declare.
758         * c-semantics.c: Include langhooks.h
759         (lang_expand_stmt, lang_expand_decl_stmt,
760         find_reachable_label_1, find_reachable_label,
761         expand_unreachable_if_stmt, expand_unreachable_stmt,
762         genrtl_do_stmt_1): Remove.
763         (begin_stmt_tree): Don't check for changed filename.
764         Call annotate_with_locus.
765         (finish_stmt_tree): Don't set line for end of function.
766         (build_stmt): Don't check type nodes for
767         side effects.
768         (build_stmt): Set TREE_SIDE_EFFECTS.
769         Set EXPR_LOCUS instead of STMT_LINENO.
770         (lang_expand_stmt, lang_expand_decl_stmt,
771         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
772         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
773         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
774         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
775         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
776         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
777         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
778         find_reachable_label_1, expand_unreachable_if_stmt,
779         expand_unreachable_stmt): Remove.
780         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
781         * c-simplify.c: New file.
782         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
783         (struct lang_type): Add fields enum_min and enum_max.
784         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
785         (c_expand_decl, c_missing_noreturn_ok_p,
786         c_types_compatible_p): Declare.
787         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
788         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
789         (default_function_array_conversion): Rely on build to
790         set TREE_CONSTANT.
791         (parser_build_binary_op, pointer_diff): Likewise.
792         (build_unary_op, build_binary_op): Likewise.
793         (build_array_ref):
794         (build_external_ref): Set TREE_INVARIANT.
795         (build_c_cast, pop_init_level): Likewise.
796         (process_init_element): Use ASM_VOLATILE_P.
797         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
798         (c_finish_case): Call c_do_switch_warnings.
799         * c.opt (fdump-): Remove.
800         * calls.c (try_to_integrate): Remove.
801         (prepare_call_address): Replace fndecl arg with a
802         precomputed static chain value.
803         (emit_call_1): New argument for full call expr.
804         (flags_from_decl_or_type): Call special_function_p.
805         (initialize_argument_information): Add argument
806         may_tailcall.
807         (purge_reg_equiv_notes): New.
808         (expand_call): Do not try to expand calls inline.
809         (fixup_tail_calls): New.
810         * cfg.c: Include timevar.h and ggc.h.
811         (bb_pool, edge_pool): Remove.
812         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
813         (entry_exit_blocks): Remove.
814         (rbi_pool): Declare.
815         (init_flow): Do not create pools.
816         Allocate entry/exit block.
817         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
818         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
819         (unlink_block): Clear b->prev_bb and b->next_bb.
820         (compact_blocks): Clear all slots of BASIC_BLOCK array.
821         (dump_flow_info): Work on trees too.
822         (dump_cfg_bb_info): New.
823         (brief_dump_cfg): New.
824         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
825         (find_edge): New.
826         * cfgbuild.c (rtl_make_eh_edge): Rename from
827         make_eh_edge.  Update all users.
828         (find_basic_blocks): Don't call VARRAY_FREE on
829         basic_block_info.
830         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
831         and newpos2.
832         (delete_unreachable_blocks): Return changed status.
833         (merge_seq_blocks): New.
834         * cfghooks.c: Include tree-flow.h
835         (tree_register_cfg_hooks, ir_type): New.
836         (redirect_edge_and_branch): Change return type to edge.
837         (predict_edge, predicted_by_p, can_duplicate_block_p,
838         duplicate_block, block_ends_with_call_p,
839         block_ends_with_condjump_p, flow_call_edges_add): New.
840         * cfghooks.h (redirect_edge_and_branch): Change return
841         type to edge.
842         (predict_edge, predicted_by_p, can_duplicate_block_p,
843         duplicate_block, block_ends_with_call_p,
844         block_ends_with_condjump_p, flow_call_edges_add): Declare.
845         (redirect_edge_and_branch): Change return type to edge.
846         (struct cfg_hooks): Add fields block_ends_with_call_p,
847         block_ends_with_condjump_p, flow_call_edges_add,
848         predict_edge, predicted_by_p, can_duplicate_block_p and
849         duplicate_block.
850         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
851         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
852         (fixup_reorder_chain): Use initialize_bb_rbi.
853         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
854         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
855         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
856         (insn_locators_initialize): Use new info about blocks.
857         * cfglayout.h (typedef struct reorder_block_def): Moved to
858         basic_block.h.
859         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
860         removed.
861         * cfgloop.c: Include tree.h and tree-flow.h.
862         * cfgloop.h (create_loop_notes): Declare.
863         * cfgloopmanip.c (create_loop_notes): New.
864         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
865         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
866         and duplicate_block fields.
867         (create_basic_block_structure): Don't look at
868         RTX_INTEGRATED_P.
869         (rtl_block_ends_with_call_p): New.
870         (rtl_block_ends_with_condjump_p): New.
871         (need_fake_edge_p): Moved from cfganal.c.
872         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
873         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
874         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
875         (cfg_layout_rtl_cfg_hooks): Ditto.
876         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
877         functions to be reachable.
878         * cgraphunit.c (decide_is_function_needed):
879         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
880         inline functions don't need to be output.
881         (cgraph_assemble_pending_functions): Don't do anything
882         special for nested functions.
883         (cgraph_mark_functions_to_output): Likewise.
884         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
885         (cgraph_analyze_function): Use estimate_num_insns.
886         (cgraph_mark_functions_to_output): Likewise.
887         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
888         (cgraph_expand_function): Allow functions to not be
889         emitted.
890         (cgraph_remove_unreachable_nodes):
891         (cgraph_recursive_inlining_p): Simplify.
892         (lookup_recursive_calls,
893         cgraph_decide_recursive_inlining): New.
894         (cgraph_decide_inlining_*): Update calls of
895         cgraph_mark_inline.
896         * combine.c (get_pos_from_mask): Always set *plen.
897         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
898         ftree-based-profiling, ftree-ccp, ftree-ch,
899         ftree-combine-temps, ftree-copyrename, ftree-dce,
900         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
901         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
902         ftree-lrs): Add.
903         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
904         Undefine.
905         * configure.ac: Add --enable-tree-browser option.
906         Add --with-libbanshee option.
907         Add GMPLIBS and GMPINC.
908         * configure: Regenerate.
909         * coverage.c (tree_ctr_tables): New.
910         (coverage_counter_alloc): Use it.
911         (build_ctr_info_value): Ditto.
912         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
913         (tree_coverage_counter_ref): New.
914         * coverage.h (coverage_counter_ref): Remove declaration.
915         (rtl_coverage_counter_ref): Declare.
916         (tree_coverage_counter_ref): Declare.
917         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
918         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
919         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
920         (struct cse_basic_block_data): Rename enum values to not
921         conflict with profile.h; update all uses.
922         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
923         in comments.
924         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
925         * diagnostic.h (debug_output_buffer, dump_generic_node,
926         print_generic_stmt, print_generic_stmt_indented,
927         print_generic_expr, print_generic_decl,
928         debug_generic_expr, debug_generic_stmt, debug_c_tree):
929         Declare.
930         * dominance.c: Cache immediate dominators.
931         * domwalk.c: New file.
932         * domwalk.h: New file.
933         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
934         (gen_subprogram_die): Generate a DIE for a named
935         return value.
936         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
937         (add_location_or_const_value_attribute): Likewise.
938         (add_bound_info): Likewise.
939         (gen_decl_die): Likewise.
940         * emit-rtl.c (maybe_set_first_label_num): New.
941         (copy_most_rtx): Don't copy the integrated flag.
942         Copy the new return_val flag.
943         * et-forest.c (MAX_NODES): Define.
944         (record_path_before_1): Abort if len is greater than
945         MAX_NODES.
946         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
947         gen_eh_region_catch, gen_eh_region_allowed,
948         gen_eh_region_must_not_throw, get_eh_region_number,
949         get_eh_region_may_contain_throw, get_eh_region_tree_label,
950         set_eh_region_tree_label, expand_resx_expr): New.
951         (expand_eh_region_start, expand_start_catch): Use them.
952         (expand_end_catch): Tidy.
953         (note_eh_region_may_contain_throw): Take region argument.
954         (note_current_region_may_contain_throw): New.
955         (get_exception_filter): Export.
956         (collect_eh_region_array): Export.
957         (remove_unreachable_regions): Check ERT_TRY based on reachability
958         of catches, not reachability of continue_label.  Never remove
959         ERT_MUST_NOT_THROW regions.
960         (collect_rtl_labels_from_trees): New.
961         (convert_from_eh_region_ranges): Use it.
962         (connect_post_landing_pads): Handle dying cleanups.
963         (struct reachable_info): Add callback data.
964         (add_reachable_handler): Invoke the callback.
965         (foreach_reachable_handler): New.
966         (reachable_handlers): Use it.
967         (arh_to_landing_pad, arh_to_label): New.
968         (can_throw_internal_1): Split out from can_throw_internal.
969         (can_throw_external_1): Similarly.
970         * except.h: Update.
971         * explow.c (emit_stack_save): Remove savearea mode check.
972         (update_nonlocal_goto_save_area): New.
973         (allocate_dynamic_stack_space): Use it.
974         (probe_stack_range): Never emit loop notes.
975         * expmed.c (extract_fixed_bit_field): Always propagate the
976         target for the shift if it is a REG.
977         * expr.c: Include tree-iterator.h
978         (is_zeros_p): Remove.
979         (categorize_ctor_elements_1, categorize_ctor_elements): New.
980         (count_type_elements): New.
981         (mostly_zeros_p): Use them.
982         (expr_wfl_stack): Remove.
983         (convert_move): Do nothing if to and from are the same.
984         (emit_block_move_via_loop): Don't emit LOOP notes.
985         (emit_move_insn): Don't handle CONSTANT_P_RTX.
986         (emit_move_insn_1): Don't generate inline warnings.
987         (expand_vars, expand_var): Split from ...
988         (expand_expr_1): ... here.
989         (expand_expr_real, expand_expr_real_1):  Use new macros
990         EXPR_LOCATION and EXPR_HAS_LOCATION.
991         * expr.h (simplify_builtin_fputs,
992         simplify_builtin_strcpy, simplify_builtin_strncpy,
993         expand_var, fixup_tail_calls,
994         update_nonlocal_goto_save_area): Declare.
995         (lookup_static_chain, expand_inline_function,
996         mark_seen_cases): Remove.
997         (prepare_call_address): Change type of 2nd argument to
998         rtx.
999         * final.c (profile_function): Update static chain test.
1000         (final): Don't look at RTX_INTEGRATED_P.
1001         * flags.h (flag_mudflap, flag_mudflap_threads,
1002         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
1003         flag_tree_dce, flag_tree_combine_temps,
1004         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
1005         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
1006         flag_tree_points_to): Declare.
1007         (enum pta_type): Declare.
1008         * flow.c (lang_missing_noreturn_ok_p): Remove.
1009         (check_function_return_warnings): Remove.
1010         (update_life_info): Update comments.
1011         (free_basic_block_vars): Don't call VARRAY_FREE for
1012         basic_block_info.
1013         (regno_uninitialized): Remove.
1014         * fold-const.c (int_const_binop): Make extern.
1015         (non_lvalue): Rely on build to set TREE_CONSTANT.
1016         (operand_equal_p): Replace only_const argument with
1017         flags.  Allow pure functions if OEP_PURE_SAME.
1018         (fold): Use OEP_ONLY_CONST.
1019         (invert_truthvalue) <NOP_EXPR> Break if argument is of
1020         boolean type.
1021         (fold_relational_hi_lo,
1022         nondestructive_fold_binary_to_constant,
1023         nondestructive_fold_unary_to_constant,
1024         fold_read_from_constant_string): New.
1025         * function.c (struct function): Remove calls_constant_p.
1026         (current_function_calls_constant_p): Remove.
1027         (inline_function_decl): Remove.
1028         (put_var_into_stack): Don't use it.
1029         (fix_lexical_addr): Likewise.
1030         (inline_function_decl): Remove extern declaration.
1031         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
1032         (trampolines_created): Move to varasm.c.
1033         (free_after_compilation): Update for removed fields.
1034         (allocate_struct_function): Likewise.
1035         (delete_handlers, lookup_static_chain): Remove.
1036         (fix_lexical_addr): Don't consider non-local variable refs.
1037         (trampoline_address): Remove.
1038         (round_trampoline_addr): Move to builtins.c.
1039         (adjust_trampoline_addr): Remove.
1040         (expand_function_start): Update for changes to static chain
1041         and nonlocal goto handling.
1042         (initial_trampoline): Move to varasm.c.
1043         (expand_function_end): Don't build trampolines or kill
1044         unreferenced nonlocal goto labels.
1045         (free_after_compilation): Don't set it.
1046         (expand_function_end): Likewise.
1047         (setjmp_vars_warning): Rename from
1048         uninitialized_vars_warning, remove uninitialized vars warning.
1049         (uninitialized_vars_warning): Remove old comment
1050         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
1051         and do not call the langhook.
1052         (expand_function_start, expand_function_end): Don't do
1053         function instrumentation here.
1054         (clear_block_marks): Rename from reorder_blocks_0, export.
1055         (blocks_nreverse): Export.
1056         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
1057         of rtl.
1058         (reset_block_changes, record_block_change, finalize_block_changes,
1059         check_block_change, free_block_changes): New functions.
1060         (assign_parms): Setting of current_function_stdarg
1061         moved ...
1062         (allocate_struct_function): ... here.
1063         * function.h (struct function): Remove x_nonlocal_labels,
1064         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
1065         x_context_display, x_trampoline_list, needs_context.
1066         Add static_chain_decl, nonlocal_goto_save_area.
1067         (struct function): Remove x_clobber_return_insn.
1068         Add tail_call_emit field, last_label_uid,
1069         unexpanded_var_list, dont_emit_block_notes,
1070         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
1071         (clear_block_marks): Declare.
1072         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
1073         (mfwrap_spec, mflib_spec): Declare.
1074         (cpp_unique_options, cc1_options): Ditto.
1075         (default_compilers): Add .F and .f90.
1076         (static_specs): Add mfwrap and mflib.
1077         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
1078         CONSTANT_RTX_P.
1079         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
1080         Update to match insns field in struct edge_def.
1081         * gdbinit.in (pgs, pge): Define.
1082         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
1083         instead of the integrated flag.
1084         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
1085         * gengtype-yacc.y (bitfieldlen): Add empty action.
1086         (struct_fields): Accept unnamed bitfields.
1087         (bitfieldlen): Split from ...
1088         (bitfieldopt): ... here.
1089         * gengtype.c (ifiles): Add tree-alias-type.h and
1090         tree-flow.h.
1091         * genrecog.c (validate_pattern): Do not handle
1092         CONSTANT_P_RTX.
1093         * gimple-low.c: New file.
1094         * gimplify.c: New file.
1095         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
1096         (restore_line_notes): Do not set RTX_INTEGRATED_P.
1097         * ifcvt.c (dead_or_predicable): Initialize local variable
1098         'earliest'.
1099         * input.h (expr_wfl_stack): Remove.
1100         * integrate.c (INTEGRATE_THRESHOLD): Remove.
1101         (setup_initial_hard_reg_value_integration): Likewise.
1102         (initialize_for_inline): Likewise.
1103         (note_modified_parmregs): Likewise.
1104         (integrate_parm_decls): Likewise.
1105         (process_reg_param): Likewise.
1106         (save_parm_insns): Likewise.
1107         (copy_insn_list): Likewise.
1108         (copy_insn_notes): Likewise.
1109         (compare_blocks): Likewise.
1110         (find_block): Likewise.
1111         (inlining): Likewise.
1112         (function_cannot_inline_p): Likewise.
1113         (parmdecl_map): Likewise.
1114         (in_nonparam_insns): Likewise.
1115         (save_for_inline): Likewise.
1116         (FIXED_BASE_PLUS): Likewise.
1117         (expand_inline_function): Likewise.
1118         (copy_rtx_and_substitute): Don't look at map->integrating,
1119         map->inline_target, and inlining, since we are never copying
1120         for integrating.
1121         Don't abort on RTX_INTEGRATED_P.
1122         (old_fun): Remove.
1123         (output_inline_function): Remove.
1124         * integrate.h (struct inline_map): Remove fields integrating,
1125         block_map, leaf_reg_map, inline_target, and local_return_label.
1126         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
1127         copy_loop_headers, never_reached_warning): Removed.
1128         (any_uncondjump_p): Reject nonlocal goto.
1129         * langhooks-def.h (lhd_types_compatible_p,
1130         lhd_expand_decl, lhd_gimplify_expr): Declare.
1131         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
1132         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1133         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
1134         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1135         LANG_HOOKS_GIMPLIFY_EXPR,
1136         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
1137         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
1138         LANG_HOOKS_GIMPLIFY_EXPR,
1139         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
1140         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
1141         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
1142         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
1143         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
1144         LANG_HOOKS_DECL_UNINIT,
1145         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
1146         * langhooks.c: Include tree-simple.h.
1147         (lhd_expand_decl): New.
1148         (lhd_types_compatible_p): New.
1149         (lhd_decl_uninit): Remove.
1150         (lhd_gimplify_expr): New.
1151         * langhooks.h (struct lang_hooks_for_rtl_expansion):
1152         Remove.
1153         (struct lang_hooks_for_functions): Add field
1154         missing_noreturn_ok_p.
1155         (struct lang_hooks): Add field expand_decl,
1156         types_compatible_p, gimplify_expr and
1157         gimple_before_inlining.
1158         Remove fields decl_uninit and rtl_expand
1159         * opts.c (decode_options): Set flag_tree_ccp,
1160         flag_tree_dce, flag_tree_dom, flag_tree_dse,
1161         flag_tree_pre, flag_tree_ter,
1162         flag_tree_live_range_split, flag_tree_sra,
1163         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
1164         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
1165         OPT_fmudflapth, OPT_fmudflapir,
1166         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
1167         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
1168         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
1169         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
1170         OPT_ftree_points_to_ and OPT_ftree_pre.
1171         * output.h (regno_uninitialized, find_basic_blocks,
1172         cleanup_cfg, delete_unreachable_blocks,
1173         check_function_return_warnings): Remove.
1174         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
1175         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
1176         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
1177         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
1178         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
1179         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
1180         Define.
1181         * passes.c (rest_of_decl_compilation):
1182         (rest_of_handle_sibling_calls): Remove.
1183         (rest_of_handle_inlining): Remove.
1184         (rest_of_handle_gcse): Do not run
1185         purge_builtin_constant_p.
1186         (rest_of_compilation): Update.
1187         Do not call copy_loop_headers.
1188         Do rtl-based profiling only when
1189         !flag_tree_based_profiling.  Register rtl-based profiling
1190         hooks.
1191         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
1192         (predicted_by_p): Rename to ...
1193         (rtl_predicted_by_p): .. this one; make global
1194         (tree_predicted_by_p): New.
1195         (dump_prediction): Add FILE argument.
1196         (predict_edge): Rename to ...
1197         (rtl_predict_edge): .. this one.
1198         (tree_predict_edge): New.
1199         (combine_predictions_for_insn): Update calls of predict_edge.
1200         (predict_loops): Break out from ...
1201         (estimate_probability): ... here; update comments; move updating
1202         of unknown probabilities from ...
1203         (estimate_bb_frequencies): ... here.
1204         (combine_predictions_for_bb): New.
1205         (tree_predict_by_opcode): New.
1206         (tree_estimate_probability): New.
1207         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
1208         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
1209         * predict.h: Add include guard.
1210         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
1211         * pretty-print.c (pp_write_text_to_stream): Make extern.
1212         * pretty-print.h (pp_write_text_to_stream): Declare.
1213         * print-rtl.c (print_rtx): Don't print the integrated flag.
1214         Print the return_val flag.
1215         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
1216         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
1217         Remove support for EXPR_WITH_FILE_LOCATION nodes.
1218         (print_node): Print TREE_INVARIANT and TREE_VISITED.
1219         * profile.c: Include cfghooks.h, tree-flow.h.
1220         (profile_hooks): New.
1221         (profile_dump_file): New.
1222         (instrument_edges): Use hooks instead of RTL-specific code.
1223         (instrument_values): Ditto.
1224         (get_exec_counts): Ditto.
1225         (compute_branch_probabilities): Ditto.
1226         (compute_value_histograms): Ditto.
1227         (branch_prob): Ditto.
1228         (find_spanning_tree): Ditto.
1229         (end_branch_prob): Ditto.
1230         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
1231         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
1232         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
1233         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
1234         (tree_register_profile_hooks): New.
1235         (rtl_register_profile_hooks): New.
1236         * ra-rewrite.c (rewrite_program): Clear variable info.
1237         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
1238         * regs.h: Add include guards.
1239         * reload.c (decompose): Clear val using memset.
1240         * rtl.def (CONSTANT_P_RTX): Remove.
1241         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
1242         (copy_loop_headers): Remove.
1243         (struct rtx_def): Replace the integrated flag with the
1244         return_val flag.
1245         (maybe_set_first_label_num): Declare.
1246         (init_branch_prob): Move declaration to value-prof.h.
1247         (end_branch_prob): Ditto.
1248         (branch_prob): Ditto.
1249         (never_reached_warning): Don't declare it.
1250         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
1251         (hoist_insn_to_edge): Update to match field insns in
1252         struct edge_def.
1253         * sbitmap.c (sbitmap_realloc): New.
1254         * sbitmap.h (sbitmap_realloc): Declare.
1255         * sibcall.c: Remove file.
1256         * simplify-rtx.c (simplify_rtx): Do not handle
1257         CONSTANT_P_RTX.
1258         * stmt.c (parse_output_constraint): Don't warn for read-write
1259         memory operand.
1260         (tail_recursion_args): Use types_compatible_p langhook.
1261         (force_label_rtx): Don't look at inline_function_decl.
1262         (label_rtx): Set LABEL_PRESERVE_P appropriately.
1263         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
1264         (declare_nonlocal_label): Remove.
1265         (expand_goto): Don't handle nonlocal gotos.
1266         (expand_nl_handler_label): Remove.
1267         (expand_nl_goto_receivers): Remove.
1268         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
1269         update_nonlocal_goto_save_area.
1270         (expand_expr_stmt_value): Check TREE_NO_WARNING.
1271         (warn_if_unused_value): Likewise.
1272         (expand_start_loop, expand_loop_continue_here,
1273         expand_end_loop): Don't create loop notes.
1274         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
1275         mark_seen_cases, check_for_full_enumeration_handling): Remove.
1276         (expand_end_case_type): Don't do warn_switch handling.
1277         (pushcase, pushcase_range) Update add_case_node calls.
1278         (add_case_node): Add dont_expand_label argument.
1279         (same_case_target_p): Don't search rtl.
1280         (expand_start_bindings_and_block, expand_end_bindings):
1281         Don't emit block notes when dont_emit_block_notes.
1282         (using_eh_for_cleanups_p): Export.
1283         (expand_return): Allow any typed rhs.
1284         (expand_stack_alloc): New.
1285         (expand_stack_save, expand_stack_restore): New.
1286         (containing_blocks_have_cleanups_or_stack_level): New
1287         function.
1288         (asm_op_is_mem_input): New fn.
1289         (expand_asm_expr): New fn.
1290         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
1291         nodes.
1292         * stor-layout.c (layout_type): Just return if type is
1293         error_mark_node.
1294         (update_alignment_for_field): Export.
1295         (variable_size): We don't care about global_bindings_p if
1296         the frontend doesn't want a list of the expressions.
1297         * system.h: Poison INTEGRATE_THRESHOLD.
1298         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
1299         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
1300         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
1301         TV_TREE_SSA_OTHER, TV_TREE_OPS,
1302         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
1303         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
1304         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
1305         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
1306         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
1307         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
1308         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
1309         TV_CONTROL_DEPENDENCES): Define.
1310         * toplev.c: Include tree-alias-common.h
1311         (current_file_decl, flag_mudflap, flag_mudflap_threads,
1312         flag_mudflap_ignore_reads, flag_tree_based_profiling,
1313         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
1314         flag_tree_dce, flag_tree_ch, flag_tree_sra,
1315         flag_tree_combine_temps, flag_tree_ter,
1316         flag_tree_live_range_split, flag_tree_dom,
1317         flag_tree_copyrename, flag_tree_dse): Declare.
1318         (f_options): Add tree-based-profiling, tree-gvn,
1319         tree-pre, tree-ccp, tree-dce,
1320         tree-dominator-opts, tree-copyrename, tree-dse,
1321         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
1322         (wrapup_global_declarations): Don't output nested inlined functions.
1323         (general_init): Call init_tree_optimization_passes.
1324         (process_options): Sorry for -ftree-based-profiling plus
1325         -ftest-coverage or -fprofile-values.
1326         * toplev.h (init_tree_optimization_passes,
1327         flag_tree_based_profiling): Declare.
1328         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
1329         * tree-alias-ander.c: New file.
1330         * tree-alias-ander.h: New file.
1331         * tree-alias-common.c: New file.
1332         * tree-alias-common.h: New file.
1333         * tree-alias-type.c: New file.
1334         * tree-alias-type.h: New file.
1335         * tree-browser.c: New file.
1336         * tree-browser.def: New file.
1337         * tree-cfg.c: New file.
1338         * tree-complex.c: New file.
1339         * tree-dfa.c: New file.
1340         * tree-dump.c (dump_enable_all): New.
1341         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
1342         (dump_node): Remove const from field suffix and swtch.
1343         (dump_files): Add null entry, .generic, .nested, .vcg,
1344         .xml and a match-all entry.
1345         (extra_dump_files, extra_dump_files_in_use,
1346         extra_dump_files_alloced): Declare
1347         (dump_option_value_info): Add raw, details, stats,
1348         blocks, vops, lineno, uid and all.
1349         (dump_register): New.
1350         (get_dump_file_info): New.
1351         (dump_begin): Call it.
1352         Do nothing for TDI_none.
1353         (dump_begin): Include phase number in dump filename.
1354         (dump_enable_all): New.
1355         (dump_switch_p_1): Split out from dump_switch_p.
1356         (dump_switch_p): Handle extra_dump_files.
1357         Start our scan at TDI_none + 1.
1358         If -fdump-tree-all was given, call dump_enable_all.
1359         * tree-dump.h: Include splay-tree.h.
1360         (dump_function, dump_function_to_file, dump_register):
1361         Declare.
1362         * tree-eh.c: New file.
1363         * tree-flow-inline.h: New file.
1364         * tree-flow.h: New file.
1365         * tree-inline.c: Re-write to handle inlining on GIMPLE.
1366         * tree-inline.h (walk_tree,
1367         walk_tree_without_duplicates): Move to tree.h.
1368         (estimate_num_insns): Declare.
1369         * tree-into-ssa.c: New file.
1370         * tree-iterator.c: New file.
1371         * tree-iterator.h: New file.
1372         * tree-mudflap.c: New file.
1373         * tree-mudflap.h: New file.
1374         * tree-nested.c: New file.
1375         * tree-nomudflap.c: New file.
1376         * tree-nrv.c: New file.
1377         * tree-optimize.c (dump_flags, vars_to_rename,
1378         in_gimple_form, all_passes, pass_gimple,
1379         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
1380         (execute_gimple, execute_rebuild_bind,
1381         gate_all_optimizations, execute_del_cfg,
1382         register_one_dump_file, register_dump_files, dup_pass_1,
1383         init_tree_optimization_passes, execute_todo,
1384         execute_one_pass, execute_pass_list): New.
1385         (clear_decl_rtl): Remove.
1386         (tree_rest_of_compilation): Update to use tree
1387         optimizers.
1388         * tree-outof-ssa.c: New file.
1389         * tree-pass.h: New file.
1390         * tree-phinodes.c: New file.
1391         * tree-pretty-print.c: New file.
1392         * tree-profile.c: New file.
1393         * tree-simple.c: New file.
1394         * tree-simple.h: New file.
1395         * tree-sra.c: New file.
1396         * tree-ssa-alias.c: New file.
1397         * tree-ssa-ccp.c: New file.
1398         * tree-ssa-copy.c: New file.
1399         * tree-ssa-copyrename.c: New file.
1400         * tree-ssa-dce.c: New file.
1401         * tree-ssa-dom.c: New file.
1402         * tree-ssa-dse.c: New file.
1403         * tree-ssa-forwprop.c: New file.
1404         * tree-ssa-live.c: New file.
1405         * tree-ssa-live.h: New file.
1406         * tree-ssa-loop.c: New file.
1407         * tree-ssa-operands.c: New file.
1408         * tree-ssa-operands.h: New file.
1409         * tree-ssa-phiopt.c: New file.
1410         * tree-ssa-pre.c: New file.
1411         * tree-ssa.c: New file.
1412         * tree-ssanames.c: New file.
1413         * tree-tailcall.c: New file.
1414         * tree.c: Include tree-iterator.h, basic-block.h and
1415         tree-flow.h.
1416         (tree_node_kind): Add phi_nodes and ssa names.
1417         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
1418         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
1419         (make_node_stat): Handle PHI_NODE and SSA_NAME.
1420         <'c'> Set TREE_INVARIANT.
1421         (copy_node_stat): Abort if trying to copy a
1422         STATEMENT_LIST.
1423         Clear TREE_VISITED.
1424         Clear annotation field.
1425         (build_constructor): Copy TREE_INVARIANT from vals.
1426         Don't clear TREE_CONSTANT.
1427         (expr_first, expr_last, expr_length): Remove.
1428         (staticp): Pass unknown component references to the language.
1429         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
1430         (skip_simple_arithmetic): Likewise.
1431         (stabilize_reference_1): Likewise.
1432         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
1433         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
1434         STATEMENT_LIST.
1435         (lhd_unsave_expr_now): Remove.
1436         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
1437         (recompute_tree_invarant_for_addr_expr): New.
1438         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
1439         Call recompute_tree_invarant_for_addr_expr.
1440         Set TREE_INVARIANT accordingly.
1441         (build2_stat): Don't handle CALL_EXPR.
1442         (build3_stat): Don't call build2_stat for CALL_EXPRs.
1443         (build_expr_wfl): Remove.
1444         (annotate_with_file_line, annotate_with_locus): New.
1445         (simple_cst_equal): Call simple_cst_list_equal to compare
1446         CONSTRUCTOR_ELTS pointers.
1447         (iterative_hash_expr): Don't hash types associated
1448         with conversions.  Instead hash on the signedness of the
1449         toplevel object and the operand of the conversion.
1450         (dump_tree_statistics): Call ssanames_print_statistics
1451         and phinodes_print_statistics.
1452         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
1453         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
1454         needs_to_live_in_memory): New.
1455         (initializer_zerop): Handle VECTOR_CST.  Don't check
1456         AGGREGATE_TYPE_P for CONSTRUCTOR.
1457         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
1458         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
1459         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
1460         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
1461         (CALL_EXPR): Add another operand.
1462         (EXPR_WITH_FILE_LOCATION): Remove.
1463         (SWITCH_EXPR): Add another operand.
1464         * tree.h: Update various comments.
1465         (union tree_ann_d): Forward declare.
1466         (struct tree_common): Add fields nowarning_flag,
1467         invariant_flag and visited.
1468         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
1469         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
1470         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
1471         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
1472         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
1473         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
1474         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
1475         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
1476         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
1477         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
1478         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
1479         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
1480         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
1481         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
1482         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
1483         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
1484         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
1485         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
1486         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
1487         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
1488         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
1489         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
1490         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
1491         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
1492         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
1493         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
1494         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
1495         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
1496         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
1497         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
1498         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
1499         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
1500         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
1501         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
1502         TDF_UID,): Define.
1503         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
1504         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
1505         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
1506         EXPR_WFL_SET_LINECOL): Remove.
1507         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
1508         make_phi_node, init_phinodes, fini_phinodes,
1509         release_phi_node, phinodes_print_statistics,
1510         init_ssanames, fini_ssanames, make_ssa_name,
1511         release_ssa_name, ssanames_print_statistics,
1512         annotate_with_file_line, build_empty_stmt,
1513         annotate_with_locus, expr_only, categorize_ctor_elements,
1514         count_type_elements, add_var_to_bind_expr, is_essa_node,
1515         expand_stack_alloc, expand_stack_save,
1516         expand_stack_restore, add_case_node, operand_equal_p,
1517         nondestructive_fold_unary_to_constant,
1518         nondestructive_fold_binary_to_constant,
1519         fold_read_from_constant_string, int_const_binop,
1520         strip_float_extensions, simplify_builtin, c_strlen,
1521         recompute_tree_invarant_for_addr_expr,
1522         needs_to_live_in_memory, make_vector,
1523         setjmp_vars_warning, update_alignment_for_field,
1524         expand_asm_expr, asm_op_is_mem_input,
1525         containing_blocks_have_cleanups_or_stack_level,
1526         create_artificial_label, gimplify_function_tree,
1527         get_name, unshare_expr, walk_tree,
1528         walk_tree_without_duplicates, in_gimple_form): Declare.
1529         (struct tree_exp): Add fields locus and block.
1530         (struct tree_ssa_name, struct edge_def, struct
1531         tree_phi_node, struct tree_eref_common, struct
1532         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
1533         union alias_var_def, struct tree_statement_list_node,
1534         struct tree_statement_list, enum operand_equal_flag): Declare.
1535         (enum tree_node_structure_enum): Add TS_SSA_NAME,
1536         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
1537         TS_STATEMENT_LIST.
1538         (union tree_node): Add fields ssa_name, phi, eref, ephi,
1539         euse and stmt_list.
1540         (function_cannot_inline_p, uninitialized_vars_warning,
1541         save_for_inline, output_inline_function, all_cases_count,
1542         check_for_full_enumeration_handling,
1543         declare_nonlocal_label): Remove.
1544         (enum tree_dump_index): Add TDI_none, TDI_tu,
1545         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
1546         * unroll.c (unroll_loop): Don't clear map->inline_target.
1547         * unwind-sjlj.c (uw_install_context): Make a proper static inline
1548         function.
1549         * value-prof.c (value_prof_hooks): New.
1550         (find_values_to_profile): Rename to rtl_find_values_to_profile.
1551         Move rtl-specific bits in from branch_prob.
1552         (value_profile_transformations): Rename to
1553         rtl_value_profile_transformations.
1554         (struct value_prof_hooks): New.
1555         (rtl_value_prof_hooks): New.
1556         (rtl_register_value_prof_hooks): New.
1557         (tree_find_values_to_profile): New stub.
1558         (tree_value_profile_transformations): New stub.
1559         (tree_value_prof_hooks): New stub.
1560         (tree_register_value_prof_hooks): New stub.
1561         (find_values_to_profile): New.
1562         (value_profile_transformations): New.
1563         * value-prof.h: Add multiple inclusion guard.
1564         (struct histogram_value): Change rtx fields to void *.
1565         (rtl_register_value_prof_hooks): New declaration.
1566         (tree_register_value_prof_hooks): New declaration.
1567         (find_values_to_profile): New declaration.
1568         (free_profiled_values): New declaration.
1569         (value_profile_transformations): New declaration.
1570         (struct profile_hooks): New declaration.
1571         (init_branch_prob): Declaration moved from rtl.h.
1572         (branch_prob): Declaration moved from rtl.h.
1573         (end_branch_prob): Declaration mooved from rtl.h.
1574         (tree_register_profile_hooks): New declaration.
1575         (rtl_register_profile_hooks): New declaration.
1576         (tree_profile_hooks): New declaration.
1577         (rtl_profile_hooks): New declaration.
1578         * varasm.c: Include tree-mudflap.h.
1579         (TRAMPOLINE_ALIGNMENT): Remove.
1580         (make_decl_rtl): Call mudflap_enqueue_decl.
1581         (assemble_static_space):
1582         (assemble_trampoline_template): Set and return
1583         TRAMPOLINE_ALIGNMENT.
1584         * varray.c (element): Add GENERIC_PTR_NOGC entry.
1585         Add entry for 'tree *'.
1586         Add entry for struct edge_def *.
1587         (varray_copy): New.
1588         * varray.h (enum varray_data_enum): Add
1589         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
1590         VARRAY_DATA_TREE_PTR.
1591         (union varray_data_tag): Corresponding changes.
1592         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
1593         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
1594         VARRAY_EDGE, VARRAY_TREE_PTR,
1595         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
1596         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
1597         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
1598
1599         * config/*/*: Various updates for changed macros, tree
1600         codes, etc.  Check ChangeLog.tree-ssa.
1601
1602         * doc/cfg.texi: New file.
1603         * doc/tree-ssa.texi: New file.
1604         * doc/c-tree.texi: Document new codes.
1605         * doc/gccint.texi: Include new files.
1606         * doc/install.texi: Document new features.
1607         * doc/invoke.texi: Document new switches.
1608         * doc/passes.texi: Document new passes.
1609         * doc/rtl.texi: Update changed RTL codes.
1610         * doc/sourcebuild.texi: Update build instructions.
1611         * doc/standards.texi: Document Fortran changes.
1612         * doc/tm.texi: Update.
1613
1614 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
1615
1616         Replace several arrays with a struct of arrays.
1617         * combine.c (struct reg_stat): New.
1618         (init_reg_last_arrays): Renamed to...
1619         (init_reg_last): ...this.  Callers adjusted.
1620         (reg_stat): New.
1621         (combine_instructions): Allocate it and use it.
1622         (reg_last_death, reg_last_set, reg_last_set_value,
1623         reg_last_set_label, reg_last_set_table_tick,
1624         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
1625         reg_last_set_mode, reg_last_set_nonzero_bits,
1626         reg_last_set_sign_bit_copies): Replace throughout
1627         with items of reg_stat.
1628
1629 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1630
1631         PR optimization/15100
1632         * combine.c (distribute_notes): Don't create a dangling
1633         REG_LIBCALL/REG_RETVAL note.
1634
1635 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1636
1637         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
1638
1639         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
1640         negv2si2.
1641
1642 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1643
1644         * doc/md.texi (Standard Names): Fix typo in vec_init description.
1645
1646 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
1647
1648         * doc/gty.texi (GTY Options): Clarify example.
1649
1650 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
1651
1652         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
1653         Add const qualifier to altivec vector type if one is needed.
1654
1655 2004-05-11  Paul Brook  <paul@codesourcery.com>
1656
1657         * flags.h (flag_short_enums): Update comment.
1658         * opts.c (decode_options): Set flag_short_enums to 2.
1659         * toplev.c (flag_short_enums): Update comment.
1660         (process_options): Call default_short_enums target hook.
1661
1662 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
1663
1664         PR target/14063
1665         * config/rs6000/altivec.md (altivec_dssall):
1666         Change to unspec_volatile.
1667         (altivec_dss): Likewise.
1668
1669 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
1670
1671         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
1672         vnor.
1673         ("one_cmplv8hi2"): Same.
1674         ("one_cmplv4si2"): Same.
1675
1676 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1677
1678         PR target/15130
1679         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
1680         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
1681         into account.  Compute the correct number of general registers
1682         for the return value.  Generate a special push/pop sequence when
1683         failing to get a temporary register for non SHmedia epilogue.
1684         (sh_expand_epilogue): Add an argument to show whether it's for
1685         sibcall or not.  Set the 3rd argument of output_stack_adjust to
1686         -1 if needed.
1687         (sh_need_epilogue): Call sh_expand_epilogue with 0.
1688         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
1689         with 1.
1690         (epilogue): Call sh_expand_epilogue with 0.
1691
1692 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
1693
1694         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
1695         goto a cleanup label.  After the cleanup, free the allocated memory.
1696
1697 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
1698
1699         * config/rs6000/altivec.h (vec_sld): Add overloads for
1700         argument/return types of 'vector bool int', 'vector bool short'
1701         and 'vector bool char'.
1702
1703 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
1704
1705         * c-decl.c (store_parm_decls_newstyle): Correct test for a
1706         nested function.
1707
1708 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
1709
1710         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
1711         treating missing ones as "".
1712         * config/mips/mips.md: Remove constraints from match_operands and
1713         match_scratches if they appear in define_expands (except reload*),
1714         define_peephole2s, define_splits or attribute specifications.
1715         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
1716         constraint strings.
1717
1718 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1719
1720         * config/rs6000/rs6000.c (function_arg_boundary): Always align
1721         AltiVec vectors.
1722         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
1723         vectors by refererence.  Align the same for TARGET_64BIT to a 16
1724         byte boundary.  Remove useless code.  Add function comment.
1725         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
1726         call to where it belongs.
1727         (function_arg_partial_nregs): Return true for all TARGET_32BIT
1728         -mabi=no-altivec AltiVec vectors.  Fix debug output.
1729         (rs6000_va_arg): Adjust for AltiVec change.
1730
1731 2004-05-10  Paul Brook  <paul@codesourcery.com>
1732
1733         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1734         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1735         (TARGET_DOUBLEWORD_ALIGN): Use it.
1736         (WCHAR_TYPE): Define.
1737         (WCHAR_SIZE_TYPE): Define.
1738         (SIZE_TYPE): Define.
1739
1740 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1741
1742         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
1743         when size is 8 bytes.
1744         (function_arg_advance): Account for stack space used by AltiVec
1745         args when -mabi=altivec.  Simplify alignment calculations.  For
1746         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
1747         (function_arg): Similarly.
1748         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
1749         not AltiVec ABI.
1750         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
1751         Correct alignment, and align before testing reg count.  Remove
1752         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
1753         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
1754         TARGET_FPRS here..
1755         (rs6000_function_value): .. not here before call.
1756
1757 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1758
1759         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
1760
1761 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
1762
1763         PR 15007
1764         * c-decl.c (current_file_decl): Rename to all_translation_units,
1765         adjust comment.
1766         (pop_scope): If popping file_scope, construct a
1767         TRANSLATION_UNIT_DECL and make it the context of all the
1768         symbols in the scope.
1769         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
1770         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
1771         anything to current_file_decl.
1772         (pushdecl_top_level): Likewise.
1773         (store_parm_decls_newstyle): Adjust check for nested function.
1774         (c_write_global_declarations): Update for renamed variable.
1775
1776 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1777
1778         * config/rs6000/rs6000-protos.h
1779         (rs6000_conditional_register_usage): Protoize.
1780
1781         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
1782
1783         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
1784         function.
1785
1786 2004-05-08  Roger Sayle  <roger@eyesopen.com>
1787
1788         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
1789         where op is a comparison operator and C1 and C2 are integer constants
1790         into a range check.
1791         (fold): Call fold_div_compare.
1792
1793 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1794
1795         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
1796         problems with earlier versions of the GNU compiler.
1797
1798 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
1799
1800         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
1801         Declare.
1802
1803         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
1804         (rs6000_hard_regno_mode_ok): New.
1805         (rs6000_init_hard_regno_mode_ok): New.
1806         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
1807
1808         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
1809         result.
1810
1811 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
1812
1813         * config/rs6000/altivec.h (vector, pixel, bool): Do not
1814         define as macros #ifdef __APPLE_ALTIVEC__.
1815
1816 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
1817
1818         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
1819         Generate appropriate parallels for vector arguments
1820         passed to vararg functions. (function_arg): make the call
1821         to rs6000_mixed_function_arg for vector args as needed.
1822
1823 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1824
1825         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
1826         EABI_FLOAT_VARARGS_P.
1827
1828 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1829
1830         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
1831         * config/mips/mips.c (override_options): Disable branch likely
1832         instructions if TUNE_MIPS5500.
1833
1834 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1835
1836         * config/mips/mips.c (override_options): Allow the hi and lo registers
1837         to store any integral mode, not just MODE_INTs.
1838
1839 2004-05-07  Paul Brook  <paul@codesourcery.com>
1840
1841         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1842         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1843         (TARGET_DOUBLEWORD_ALIGN): Use it.
1844         (WCHAR_TYPE): Define.
1845         (WCHAR_SIZE_TYPE): Define.
1846         (SIZE_TYPE): Define.
1847
1848 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1849
1850         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
1851         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
1852
1853 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
1854
1855         * loop-doloop.c (doloop_valid_p): Make sure that body
1856         gets freed.
1857
1858 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
1859
1860         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
1861         declaration.
1862         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
1863         (sparc_skip_caller_unimp): New global variable.
1864         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
1865         Use it instead of SKIP_CALLERS_UNIMP_P.
1866         * config/sparc/sparc.md (call expander): Add sanity check.
1867         (call_address_struct_value_sp32): Re-sync with expander.
1868         (call_symbolic_struct_value_sp32): Likewise.
1869         (return peepholes): Use 'sparc_skip_caller_unimp' instead
1870         of custom predicate.
1871
1872 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1873
1874         PR c++/14962
1875         * c-pragma.c (handle_pragma_redefine_extname): Only change
1876         the assembler name of FUNCTION_DECLs and VAR_DECLs.
1877
1878 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1879
1880         * optabs.h (enum optab_index): Add new OTI_log1p.
1881         (log1p_optab): Define corresponding macro.
1882         * optabs.c (init_optabs): Initialize log1p_optab.
1883         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
1884         patterns.
1885         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
1886         using log1p_optab.
1887         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
1888         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1889
1890         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
1891
1892         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
1893         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
1894         Prototype here.
1895         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
1896         x87's fyl2xp1 instruction.
1897         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
1898         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
1899         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
1900         log1p  and log1pl built-ins as inline x87 intrinsics.
1901
1902 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
1903
1904         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
1905         * config/arm/freebsd.h: Likewise.
1906         * config/ia64/freebsd.h: Likewise.
1907         * config/sparc/freebsd.h: Likewise.
1908
1909 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
1910
1911         PR optimization/15296
1912         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
1913         getting last consecutive label at a branch.
1914         (relax_delay_slots): Similar, near top of loop.
1915
1916 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1917
1918         PR target/15202
1919         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
1920         register to general register.
1921
1922 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
1923
1924         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
1925         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
1926         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
1927         (STACK_BOUNDARY): Delete.
1928
1929 2004-05-06  Stuart Hastings  <stuart@apple.com>
1930
1931         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
1932         mistakenly clobbered by 1.423.
1933
1934 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1935
1936         * doc/invoke.texi: Document -mvr4130-align.
1937         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
1938         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
1939         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
1940         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
1941         * config/mips/mips.md: Include sched-int.h.
1942         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
1943         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
1944         (override_options): Enable -mvr4130-align at -O3 and above.
1945         (mips_sim_insn): New variable.
1946         (mips_sim): New structure.
1947         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
1948         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
1949         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
1950         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
1951         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
1952         (mips_reorg): Call vr4130_align_insns.
1953         (vr4130_last_insn): New variable.
1954         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
1955         (vr4130_swap_insns_p, vr4130_reorder): New functions.
1956         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
1957         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
1958         (mips_use_dfa_pipeline_interface): Return true for the same.
1959         * config/mips/4130.md: New file.
1960         * config/mips/mips.md: Include it.  Add a peephole2 to convert
1961         "mult;mflo" into "mtlo;macc".
1962         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
1963         target of maccs.
1964         (*msac_using_macc): New pattern.
1965
1966 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1967
1968         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
1969         (ir_vr55_hilo): Split into...
1970         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
1971         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
1972         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
1973         Add various multiplication bypasses.
1974         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
1975         multiplication.
1976
1977 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
1978
1979         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
1980         attribute to "XF".
1981
1982 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
1983
1984         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
1985         (fmod_optab, drem_optab): Define corresponding macros.
1986         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
1987         * genopinit.c (optabs): Implement fmod_optab and drem_optab
1988         using fmod?f3 and drem?f3 patterns.
1989         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
1990         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
1991         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
1992         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
1993         flag_unsafe_math_optimizations is set.
1994
1995         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
1996         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
1997
1998         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
1999         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
2000         Prototype here.
2001         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
2002         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
2003         fprem and fprem1 instructions.
2004         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
2005         Rename insn definition to x86_fnstsw_1.
2006         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
2007         x87 instructions.
2008         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
2009         and fmodl built-ins as inline x87 intrinsics.
2010         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
2011         and dreml built-ins as inline x87 intrinsics.
2012
2013 2004-05-05  Roger Sayle  <roger@eyesopen.com>
2014
2015         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
2016
2017 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
2018
2019         PR driver/9822
2020         * doc/invoke.texi (Spec Files): Remove documentation of %c.
2021
2022 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
2023
2024         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
2025         representation.
2026
2027 2004-05-06  Paul Brook  <paul@codesourcery.com>
2028
2029         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
2030         (arm_coproc_mem_operand): ... To this.
2031         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
2032         (arm_legitimate_index_p): Ditto.
2033         (vfp_mem_operand): Rename ...
2034         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
2035         (vfp_secondary_reload_class): Use it.
2036         (output_move_double): Use doubleword load/store instructions.
2037         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
2038         * config/arm/arm.h (TARGET_LDRD): Define.
2039         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
2040         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
2041         New splitter for invalid doubleword loads.
2042         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
2043         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
2044         * doc/md.texi: Document Uy constraint.
2045
2046 2004-05-05  Jan Hubicka  <jh@suse.cz>
2047
2048         PR opt/14980
2049         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
2050         inline clones.
2051
2052 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2053
2054         PR target/15290
2055         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
2056         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
2057
2058 2004-05-05  Mike Stump  <mrs@apple.com>
2059
2060         * config/darwin-c.c (add_framework): Copy the directory name as it
2061         can be freed later.  Also, ensure we always allocate enough room
2062         for the cached framework information.
2063         (find_subframework_header): Keep track of the directory where the
2064         subframework header was found.
2065         (framework_construct_pathname): Speed up by not trying to re-add a
2066         framework.
2067         * cppfiles.c (search_path_exhausted): Arrange for the missing
2068         header callback to be able to set the directory where the header
2069         was found.
2070         (cpp_get_dir): Add.
2071         * cpplib.h (missing_header_cb): Add a parameter.
2072         (cpp_get_dir): Add.
2073
2074 2004-05-03  Mike Stump  <mrs@apple.com>
2075
2076         * doc/invoke.texi (Directory Options): Document -iquote.
2077         * doc/cpp.texi: Likewise.
2078         * doc/cppopts.texi: Likewise.
2079         * c-opts.c (c_common_missing_argument): Add -iquote processing.
2080         (c_common_handle_option): Likewise.
2081         * c.opt (iquote): Add.
2082         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
2083         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
2084
2085         * c-opts.c (case OPT_I): Deprecate -I- support.
2086         * doc/invoke.texi: Likewise.
2087         * doc/cpp.texi: Likewise.
2088         * doc/cppopts.texi: Likewise.
2089
2090 2004-05-05  Steven Bosscher  <stevenb@suse.de>
2091
2092         * basic-block.h (free_basic_block_vars): Update prototype.
2093         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
2094         argument.
2095         (life_analysis): Update call.
2096         * ifcvt.c (if_convert): Likewise.
2097         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
2098         * passes.c (rest_of_handle_final): Likewise.
2099         (rest_of_compilation): Likewise.
2100         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2101
2102         * emit-rtl.c (next_real_insn): Use INSN_P.
2103         (prev_real_insn): Likewise.
2104
2105 2004-05-05  Eric Christopher  <echristo@redhat.com>
2106
2107         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
2108         representation.
2109
2110 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
2111
2112         * config/rs6000/rs6000.c (build_opaque_vector_type):
2113         New function.
2114         (rs6000_init_builtins): Use it.
2115
2116 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
2117
2118         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
2119         (func_table): Change type from char ** to vms_func_ref.
2120         (write_rtnbeg):  Update to reflect func_table change.  Use
2121         fde->funcdef_number instead of rtnnum in output.
2122         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
2123
2124 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
2125             Richard Henderson  <rth@redhat.com>
2126
2127         PR target/14899
2128
2129         * c-common.c (vector_types_convertible_p): New function.
2130         * c-typeck.c (comptypes): Recurse on vector types.
2131         (convert_for_assignment): Use vector_types_convertible_p.
2132         (digest_init): Use vector_types_convertible_p to check
2133         validness of constant vector initializers; otherwise treat
2134         them as scalars.
2135         * tree.c (make_or_reuse_type): New.
2136         (build_common_tree_nodes): Use it.
2137         * cp/call.c (standard_conversion): Likewise.
2138         * cp/typeck.c (comptypes): Recurse on vector types.
2139         (convert_for_assignment): Use vector_types_convertible_p.
2140
2141 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
2142
2143         * config/mips/mips.c (override_options): Default to no
2144         generation of branch-likely operations when tuning for
2145         CPUs where they tend to have a negative performance impact
2146         (e.g., SB-1).
2147
2148 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2149
2150         * expr.c (store_constructor_field): Don't call store_constructor
2151         if bitsize is not a multiple of a byte.
2152
2153 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
2154
2155         * reload1.c (inherit_piecemeal_p): New function.
2156         (emit_reload_insns): When reloading a group of hard registers, use
2157         inherit_piecemeal_p to decide whether the values of individual hard
2158         registers can be inherited.
2159
2160 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2161
2162         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
2163         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
2164         * config/t-linux (LIB2ADDEHDEP): Likewise.
2165
2166 2004-05-04  Paul Brook  <paul@codesourcery.com>
2167
2168         * config/arm/crti.asm: Push an even number of registers.
2169         * config/arm/crtn.asm: And restore them.  Load via sp.
2170
2171 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
2172
2173         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
2174         Collect overhead information.
2175         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
2176         parameter and pass it through.
2177         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
2178         MEM_STAT_DECL parameter and pass it through.
2179         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
2180         MEM_STAT_DECL parameter and pass it through.
2181
2182 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
2183
2184         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
2185
2186         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
2187
2188         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
2189         rs6000_hard_regno_nregs.
2190
2191 2004-05-03  Eric Christopher  <echristo@redhat.com>
2192
2193         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
2194         prologue insn instead of setting up call.
2195         (s390_emit_epilogue): Ditto.
2196         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
2197         (define_constants): Add numbers for above patterns.
2198
2199 2004-05-03  Eric Christopher  <echristo@redhat.com>
2200
2201         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
2202         * config/s390/s390.c (s390_conditional_register_usage): ...here.
2203         * config/s390/s390-protos.h: Prototype.
2204
2205 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
2206
2207         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
2208         assignment.
2209
2210 2004-05-03  Eric Christopher  <echristo@redhat.com>
2211
2212         * config/mips/mips.md: Fix branch length attribute definition.
2213
2214 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
2215
2216         * config.gcc: Remove --enable-altivec support.
2217
2218         * config/rs6000/altivec-defs.h: Remove.
2219
2220 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2221
2222         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
2223         * fixinc/fixincl.x: Regenerate.
2224
2225 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
2226
2227         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
2228         definition.
2229         (log?f2, log10?f2, log2?f2): Reimplement expanders with
2230         float_truncate insn.
2231         (*fxtractsf3, *fxtractdf3): Remove insn definition.
2232         (logb?f2): Reimplement expanders with float_truncate insn.
2233
2234 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
2235
2236         PR 14718
2237         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
2238         force_type_die for CONST_DECL.
2239
2240 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2241             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2242
2243         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
2244         tm-dwarf2.h to tm_file.
2245         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
2246         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
2247         (ASM_DEBUG_SPEC): Delete.
2248
2249 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
2250
2251         * optabs.h (enum optab_index): Add new OTI_expm1.
2252         (expm1_optab): Define corresponding macro.
2253         * optabs.c (init_optabs): Initialize expm1_optab.
2254         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
2255         patterns.
2256         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
2257         using expm1_optab.
2258         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
2259         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2260
2261         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
2262         to implement expm1, expm1f and expm1l built-ins as inline x87
2263         intrinsics.
2264
2265 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
2266
2267         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
2268         * config/frv/frv.md (*return_true, *return_false): New patterns.
2269
2270 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2271
2272         * rtl.h (PHI_NODE_P): Remove.
2273
2274 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
2275
2276         PR middle-end/14988
2277         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
2278         when passed -2 as 'align'.
2279         (put_var_into_stack): Use 'bool' as the type for the three local
2280         predicates.  Adjust calls to put_reg_into_stack.
2281         When passed a CONCAT, instruct put_reg_into_stack to use
2282         a consecutive stack slot for the second part.
2283         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
2284         'consecutive_p' parameter.  Turn the three predicates into 'bool'
2285         parameters.  Retrieve the register mode from 'reg'.
2286         When consecutive_p is true, instruct assign_stack_local_1 to use
2287         BITS_PER_UNIT alignment.
2288         (put_addressof_into_stack): Use 'bool' as the type for the two
2289         local predicates. Adjust call to put_reg_into_stack.
2290
2291 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2292
2293         * fold-const.c (fold_convert_const, fold): Add missing
2294         FIX_ROUND_EXPR case.
2295
2296 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
2297
2298         * configure.ac (FLEX, BISON): Only use tools from the build tree
2299         if build equals host.
2300         * configure: Rebuilt.
2301
2302         * config/frv/frv-protos.h (frv_expand_epilogue,
2303         frv_expand_fdpic_call): Add bool argument.
2304         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
2305         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
2306         (frv_expand_epilogue): Use new argument to decide whether to emit
2307         return instruction or copy the return address to LR.
2308         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
2309         sibcalls.
2310         (sibcall_operand): New.
2311         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
2312         PLUS nor LABEL_REF.  Add sibcall_operand.
2313         * config/frv/frv.md (call, call_value): Pass false to
2314         frv_expand_fdpic_call.
2315         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
2316         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
2317         sibcall_value_internal, sibcall_value_fdpicdi): New.
2318         (return_unsigned_true, return_unsigned_false): New.
2319         (epilogue): Adjust call to frv_expand_epilogue.
2320         (sibcall_epilogue): New.
2321
2322         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
2323         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
2324         before redefining them.
2325
2326 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2327
2328         * builtins.c (fold_fixed_mathfn): New function.
2329         (fold_builtin_lround, fold_builtin): Use it.
2330
2331 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
2332
2333         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
2334         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
2335
2336 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
2337
2338         * config/cris/cris.h: Revert my "fix comment typos" patch.
2339
2340 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
2341
2342         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
2343
2344 2004-05-01  Falk Hueffner  <falk@debian.org>
2345
2346         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
2347         builtin_insll): Disallow 0 as first input operand.
2348
2349 2004-05-01  Falk Hueffner  <falk@debian.org>
2350
2351         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
2352
2353 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
2354
2355         PR middle-end/15054
2356         * expr.c (expand_expr_real): Do not call preserve_temp_slots
2357         on a TARGET_EXPR temp.
2358         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
2359         TARGET_EXPR temp slots.
2360
2361 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
2362
2363         * simplify-rtx.c (simplify_ternary_operation): When
2364         converting an IF_THEN_ELSE to a relational op, return
2365         correct mode.
2366
2367 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2368
2369         * builtins.c (fold_builtin_round): Fix comment typo.
2370         (fold_builtin_lround): New function.
2371         (fold_builtin): Use it.
2372
2373 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
2374
2375         PR target/11608
2376         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
2377         more like the one in config/dbxelf.h.
2378
2379 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
2380
2381         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
2382         and adjust definition accordingly.
2383         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
2384         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
2385         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
2386         VECTOR_TYPE.
2387
2388 2004-04-30  Jason Merrill  <jason@redhat.com>
2389
2390         PR c++/14587
2391         * config/i386/winnt.c (associated_type): Look for attributes on
2392         the TYPE_MAIN_VARIANT of *this.
2393         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
2394         apply the attributes to the variants.
2395
2396 2004-04-30  Paul Brook  <paul@codesourcery.com>
2397
2398         * config.gcc: Simplify arm --with-{cpu,tune} test.
2399         * config/arm/arm-cores.def: Document whitespace restrictions.
2400
2401 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2402
2403         PR other/1963
2404         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
2405
2406 2004-04-30  Brian Ford  <ford@vss.fsi.com>
2407             DJ Delorie  <dj@redhat.com>
2408
2409         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
2410         (DWARF2_DEBUGGING_INFO): Define to enable.
2411         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
2412         DWARF2.
2413         * configure.ac (Target-specific assembler checks)
2414         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
2415         relocs.
2416         * configure: Regenerate.
2417         * config.in: Likewise.
2418
2419         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
2420         (ASM_OUPUT_DWARF_OFFSET): Define.
2421
2422 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2423
2424         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
2425         (s390_emit_call): New function prototype added.
2426         (s390_tls_get_offset): Function removed.
2427         * config/s390/s390.c (s390_function_ok_for_sibcall,
2428         s390_call_saved_register_used_p): New functions.
2429         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
2430         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
2431         (s390_emit_tls_call_insn): New function.
2432         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
2433         emit_call_insn.
2434         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
2435         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
2436         added.
2437         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
2438         register number used to hold the target address for sibcalls.
2439         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
2440         New expanders.
2441         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
2442         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
2443         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
2444         Expanders removed.
2445         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
2446         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
2447         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
2448         ("epilogue"): Changed the call to s390_emit_epilogue to use the
2449         new parameter.
2450
2451 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
2452
2453         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
2454         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
2455         reg-stack.c, varasm.c, config/alpha/ev4.md,
2456         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
2457         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
2458         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
2459         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
2460         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
2461         config/ia64/itanium2.md, config/ip2k/ip2k.c,
2462         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
2463         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
2464         comment typos.
2465
2466 2004-04-30  Paul Brook  <paul@codesourcery.com>
2467
2468         * config.gcc: Default ep9312 to hard-float.
2469         * config/arm/arm-cores.def: Add ARCH field.
2470         * config/arm/arm.c (FL_FOR_ARCH*): Define.
2471         (arm_arch_cirrus): New variable.
2472         (all_cores): Set and use arch.
2473         (all_architectures): Ditto.
2474         (arm_arch_name): New variable.
2475         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
2476         Set and use arm_arch_cirrus.
2477         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
2478         (enum processor_type): Update ARM_CORE define.
2479         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
2480         (CPP_SPEC): Remove %(cpp_cpu_arch).
2481         (CPP_ARCH_DEFAULT_SPEC): Remove.
2482         (CPP_CPU_ARCH_SPEC): Remove.
2483         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
2484         (FPUTYPE_DEFAULT): Don't define here.
2485
2486 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
2487
2488         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
2489         updates too.
2490
2491 2004-04-30  Paul Brook  <paul@codesourcery.com>
2492
2493         * arm.c (arm_needs_doubleword_align): Use mode alignment.
2494
2495 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
2496
2497         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
2498         vec_sububs.
2499         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
2500         duplicates.
2501
2502 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2503
2504         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
2505         atan2?f3 expanders.
2506
2507 2004-04-29  Nick Clifton  <nickc@redhat.com>
2508
2509         Bug 14093
2510         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
2511         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
2512         Delete static from definition.
2513         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
2514
2515 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2516
2517         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
2518         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
2519         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
2520         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
2521
2522 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
2523
2524         * commom.opt (Wfatal-errors): Add it.
2525         * diagnostic.c (flag_fatal_errors): Define it.
2526         (diagnostic_action_after_output): Check for flag_fatal_errors.
2527         * flags.h (flag_fatal_errors): Declare it.
2528         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
2529         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
2530
2531 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
2532
2533         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
2534         blocks which have kill flag set.
2535
2536 2004-04-29  Ben Elliston  <bje@au.ibm.com>
2537
2538         * configure.ac (--with-as): Abort if user-supplied assembler
2539         cannot be executed.
2540         (--with-ld): Likewise for the linker.
2541         * configure: Regenerate.
2542
2543 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2544
2545         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
2546         isn't NULL before using it.
2547
2548 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
2549
2550         PR target/15189
2551         * config/mips/mips.md (load_df_low): Use default length.
2552         (load_df_high, store_df_high): Likewise.
2553
2554 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2555
2556         * config/mips/mips.md, config/mips/sb1.md,
2557         config/rs6000/rs6000.c: Fix comment typos.
2558
2559 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2560
2561         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
2562         Fix comment typos.
2563
2564 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
2565
2566         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
2567         (delete_if_ordinary): Use above macro.
2568         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
2569         Update copyright.
2570         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
2571
2572 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
2573
2574         * c-decl.c (get_parm_info): Use the correct tag keywords when
2575         warning about type declarations in prototypes.
2576
2577 2004-04-29  Paul Brook  <paul@codesourcery.com>
2578
2579         * config.gcc: Pull list of cores from arm-cores.def.
2580
2581 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2582
2583         * combine.c (combine_simplify_rtx): Adjust call to use
2584         simplify_relational_operation.  Do not use SELECT_CC_MODE
2585         when a comparison already has a MODE_CC mode.
2586
2587 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2588
2589         (simplify_set): simplify_relational_operation may now
2590         return another relational expression.
2591         * cse.c (fold_rtx): simplify_relational_operation now
2592         takes of computing the comparison mode.
2593         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
2594         remove dead code.
2595         (do_compare_rtx_and_jump): Likewise.
2596         * integrate.c (subst_constants): simplify_relational_operation
2597         may now return another relational expression.
2598         * simplify-rtx.c (simplify_gen_relational): Move most code to
2599         the new simplify_relational_operation and
2600         simplify_relational_operation_1 functions.
2601         (simplify_relational_operation): Rewritten.
2602         (simplify_relational_operation_1): New function.
2603         (simplify_ternary_operation): simplify_relational_operation
2604         may now return another relational expression.
2605         (simplify_rtx): Remove unnecessary temp variable.
2606
2607 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
2608
2609         * reg-stack.c (swap_to_top): New function.
2610         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
2611         swap_to_top().
2612         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
2613         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
2614         UNSPEC_FSCALE_EXP.
2615
2616         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
2617         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
2618         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
2619         x87's fscale insn.
2620         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
2621         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
2622         patterns.
2623
2624 2004-04-28  Serge Belyshev  <1319@bot.ru>
2625
2626         PR 14944
2627         * coverage.c (read_counts_file): Fix usage of warning () call.
2628         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
2629
2630 2004-04-28  Ben Elliston  <bje@au.ibm.com>
2631
2632         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
2633         options with "-" in the option index.
2634         (SPARC Options): Likewise.
2635         (M32R/D Options): Likewise.
2636
2637 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2638
2639         * convert.c (convert_to_integer): Convert (long)round -> lround,
2640         etc.
2641
2642 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
2643
2644         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
2645         Return false if we do not have fp register.
2646         (addrs_ok_for_quad_peep): Rename to ...
2647         (mems_ok_for_quad_peep): this.
2648         Add check for volatile memory.
2649         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
2650         Rename to ...
2651         (mems_ok_for_quad_peep): this.
2652         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
2653         to peephole2's.
2654         (lfq_power2): New instruction.
2655         (stfq_power2): Likewise.
2656
2657 2004-04-28  Jan Hubicka  <jh@suse.cz>
2658
2659         PR c/15004
2660         * function.c (do_warn_unused_parameter): Break out form ...
2661         (expand_function_end): ... here; warn only when not using cgraphunit.
2662         * function.h (do_warn_unused_parameter): Declare.
2663         * cgraphunit.c: Include function.h.
2664         (cgraph_finalize_function): Do unused parameter warning.
2665         * Makefile.in (cgraphunit.o): Depend on function.h
2666
2667 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2668
2669         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
2670         calling install-info on $(DESTDIR)$(infodir)/dir already being
2671         present.
2672
2673 2004-04-28  Paul Brook  <paul@codesourcery.com>
2674
2675         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
2676
2677 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2678
2679         * gcse.c (find_moveable_store): Do not accept store insns with
2680         REG_EH_REGION note.
2681
2682 2004-04-28  Paul Brook  <paul@codesourcery.com>
2683
2684         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
2685         * function.c (assign_temp): Ditto.
2686         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
2687
2688 2004-04-28  Paul Brook  <paul@codesourcery.com>
2689
2690         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
2691
2692 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
2693
2694         * var-tracking.c (variable_different_p): Add a parameter
2695         compare_current_location, compare current location of variable parts
2696         if it is true.
2697         (dataflow_set_different_1): Pass compare_current_location == false.
2698         (dataflow_set_different_2): Pass compare_current_location == false.
2699         (emit_notes_for_differences_1): Pass compare_current_location == true.
2700
2701 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2702
2703         * config/s390/s390.md ("casesi"): Mark jump table access as
2704         non-trapping and unchanging.
2705
2706 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2707
2708         PR debug/14829
2709         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
2710         callers.
2711         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
2712         number for indexing hard_regno_nregs array.
2713
2714 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
2715
2716         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
2717         * config/darwin-crt2.c: Only have contents on __ppc__.
2718
2719 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
2720
2721         * config/xtensa/xtensa.c (call_insn_operand): Check
2722         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
2723         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
2724         * config/xtensa/xtensa.md (call, call_value): Likewise.
2725
2726 2004-04-27  Wu Yongwei  <adah@sh163.net>
2727
2728         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
2729         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
2730         (__gthread_mutex_init_function): Replace CreateMutex with
2731         initialization of custom mutex using CreateSemaphore.
2732         (__gthread_mutex_lock): Use InterlockedIncrement.
2733         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
2734         (__gthread_mutex_unlock): Use InterlockedDecrement and
2735         ReleaseSemaphore to unlock
2736         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
2737         __gthread_mutex_lock, __gthread_mutex_trylock,
2738         __gthread_mutex_unlock): Adjust to match inline versions in
2739         gthr-win32.h.
2740
2741 2004-04-27  Paul Brook  <paul@codesourcery.com>
2742
2743         * config/arm/arm.c (arm_promote_prototypes): New function.
2744         (TARGET_PROMOTE_PROTOTYPES): Use it.
2745
2746 2004-04-27  Paul Brook  <paul@codesourcery.com>
2747
2748         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
2749
2750 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
2751
2752         * config/alpha.c (alpha_end_function): For OpenVMS gas,
2753         correctly output .pdesc directive before .end.
2754
2755 2004-04-26  James E Wilson  <wilson@specifixinc.com>
2756
2757         Bug 14927
2758         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
2759         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
2760
2761 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
2762
2763         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
2764         * config/pa/pa-hpux10.h: Likewise.
2765         * config/pa/pa-hpux11.h: Likewise.
2766
2767 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
2768
2769         * doc/invoke.texi (Overall Options): Document default for -o
2770         for PCH files.
2771
2772 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2773
2774         * builtins.c (expand_builtin_update_setjmp_buf): New function.
2775         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
2776         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
2777
2778 2004-04-26  Paul Brook  <paul@codesourcery.com>
2779
2780         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
2781
2782 2004-04-26  Paul Brook  <paul@codesourcery.com>
2783
2784         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
2785
2786 2004-04-25  Roger Sayle  <roger@eyesopen.com>
2787
2788         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
2789         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
2790         X % -1 as 0.
2791
2792 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
2793
2794         PR bootstrap/15141
2795         * except.c (connect_post_landing_pads): Delete insns after the
2796         barrier when generating a unwind_resume_libfunc call.
2797
2798 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2799
2800         PR/c++ 15119
2801         * tree.c (substitute_placeholder_in_expr, case 4): New case,
2802         for TARGET_EXPR.
2803
2804 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2805
2806         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2807         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
2808         inhibit_libc is defined.
2809
2810 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
2811
2812         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
2813         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
2814         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
2815         (TARGET_SCHED_VARIABLE_ISSUE): Define.
2816         (mips_adjust_cost): Move later in file, next to other sched hooks.
2817         (mips_macc_chains_last_hilo): New variable.
2818         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
2819         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
2820         * config/mips/mips.md (may_clobber_hilo): New attribute.
2821
2822 2004-04-24  Roger Sayle  <roger@eyesopen.com>
2823             Bruce Korb  <bkorb@gnu.org>
2824
2825         * fixinc/inclhack.def (aix_syswait_2): New fix.
2826         * fixinc/fixincl.x: Regenerate.
2827         * fixinc/tests/base/sys/wait.h: Update for new test.
2828
2829 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
2830
2831         PR target/14960
2832         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
2833         to non_fixed_size, and leave out fixed_size from the sum.
2834         (generate_set_vrsave): Correct clobbers.
2835         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
2836         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
2837         (rs6000_libcall_value): Likewise.
2838         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
2839         (FUNCTION_ARG_REGNO_P): Likewise.
2840
2841 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2842
2843         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
2844         is a CONST_INT.
2845         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
2846         with NARROW_OP1 instead of OP1.
2847
2848 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2849
2850         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
2851         and __s390x__ hosts.
2852
2853 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2854
2855         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
2856         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
2857         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
2858         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
2859         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
2860         * builtins.c (expand_builtin_fork_or_exec): New.
2861         (expand_builtin): Call it.
2862         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
2863         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
2864         * c-common.c (PID_TYPE): New macro.
2865         (c_common_nodes_and_builtins): Initialize pid_type_node.
2866         * calls.c (special_function_p): Do not handle fork and exec.
2867         (expand_call): Do not handle ECF_FORK_OR_EXEC.
2868         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2869         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
2870         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2871         __gcov_execv, __gcov_execvp, __gcov_execve): New.
2872         * tree.h (enum tree_index): Add TI_PID_TYPE.
2873         (pid_type_node): New macro.
2874         (ECF_FORK_OR_EXEC): Removed.
2875
2876 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2877
2878         PR optimization/13985
2879         * cfgloopmanip.c (fix_loop_placements): New prototype.
2880         Call fix_bb_placements on the preheader of loops that have
2881         been reparented.
2882         (remove_path): Adjust call to fix_loop_placements.
2883
2884 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2885
2886         * config/darwin7.h: New file.
2887         * config.gcc (*-*-darwin*): Add darwin7.h if the
2888         version is greater than 6.
2889         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
2890         (MATH_LIBRARY): Wrap in ifdefs.
2891
2892 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
2893
2894         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
2895         loading iWMMXt registers with a frame pointer.  Use post-increment
2896         without a frame pointer.
2897         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
2898
2899 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
2900
2901         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
2902         mode" rather than "-funit-at-a-time" since -O2 enables it
2903         without requiring -f* options.  Refer to -fprofile-generate and
2904         -fprofile-use correctly.  Move -funit-at-a-time among options
2905         enabled by -O.  Add information about unit-at-a-time caveats.
2906
2907 2004-04-22  Per Bothner  <per@bothner.com>
2908
2909         * line-map.h (struct line_maps):  New field highest_line.
2910         (linemap_position_for_column):  Make non-inline function.
2911         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
2912         * line-map.c (linemap_init):  Clear highest_line field.
2913         (linemap_add):  Set highest_line field.
2914         (linemap_line_start):  Minor optimization - use highest_line field.
2915         Reduce maximum column hint to 10000.  Update highest_line field.
2916         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
2917         * cpphash.h (struct cpp_reader):  Remove line field - instead use
2918         line_table->highest_line.
2919         (saved_line):  Remove unused field.
2920         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
2921         Use  line_table's highest_line field instead of cpp_reader's line.
2922         * cpplib.c (start_directive):  Likewise use highest_line field.
2923         (do_line, do_linemarker):  Likewise just use newest map.
2924         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
2925         * cpperror.c (cpp_error):  Likewise use highest_line field.
2926         * cppfiles.c (open_file_failed:  Likewise.
2927         (cpp_make_system_header):  Likewise use newest map and highest_line.
2928         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
2929         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
2930         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
2931         _cpp_lex_direct):  Likewise use highest_line.
2932         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
2933         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
2934         and use newest map.
2935         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
2936         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
2937         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
2938
2939 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
2940
2941         PR bootstrap/14992
2942         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
2943         * config/linux.h (USE_LD_AS_NEEDED): Define.
2944         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
2945         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
2946         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
2947         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
2948         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
2949         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
2950         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
2951
2952 2004-04-22  Per Bothner  <per@bothner.com>
2953
2954         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
2955         Fixes PR preprocessor/15067.
2956
2957 2004-04-23  Andreas Schwab  <schwab@suse.de>
2958
2959         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
2960         avoid aliasing warning.
2961
2962 2004-04-22  Jan Hubicka  <jh@suse.cz>
2963             Mostafa Hagog <mustafa@il.ibm.com>
2964
2965       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
2966       * cfgloopanal.c (expected_loop_iterations): Change the return value
2967
2968 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
2969
2970         * cselib.h (struct elt_loc_list): Remove canon_loc field.
2971         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
2972         (cselib_invalidate_mem): Remove all canon_loc and canon_x
2973         traces.
2974
2975 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
2976
2977         Revert
2978         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2979
2980                 * var-tracking.c (variable_part_different_p): Variable parts
2981                 differ when the most recent locations differ.
2982
2983 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
2984
2985         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
2986         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
2987         (embedded_pic_offset): Delete.
2988         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
2989         MASK_* constants.
2990         (TARGET_EMBEDDED_PIC): Delete.
2991         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
2992         (ASM_SPEC): Remove -membedded-pic.
2993         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
2994         (ASM_OUTPUT_CASE_LABEL): Likewise.
2995         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
2996         * config/mips/windiss.h (ASM_SPEC): Likewise.
2997         * config/mips/mips.c (struct machine_function): Remove
2998         embedded_pic_fnaddr_rtx.
2999         (TARGET_ENCODE_SECTION_INFO): Remove override.
3000         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
3001         (override_options): Remove -membedded-pic handling.
3002         (print_operand): Remove handling of '%S'.
3003         (mips_select_section: Remove -membedded-pic handling.
3004         (mips_encode_section_info): Delete.
3005         (mips_output_conditional_branch): Remove mention of -membedded-pic.
3006         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
3007         -membedded-pic handling.
3008         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
3009
3010 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
3011
3012         * var-tracking.c (frame_base_decl): Remove useless GTY.
3013
3014 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
3015
3016         * config/rs6000/rs6000.c (rs6000_override_options): Error when
3017         user wants altivec and e500 instructions.
3018
3019 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3020
3021         PR target/14813
3022         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
3023         in .init_array section to ...
3024         * config/ia64/crtbegin.asm: Here.
3025
3026         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
3027         and hidden if HAVE_INITFINI_ARRAY is defined.
3028
3029 2004-04-21  James E Wilson  <wilson@specifixinc.com>
3030
3031         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
3032         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
3033         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
3034         (fp_register_operand, lo_operand): New.
3035         (mips_rtx_costs): Add TUNE_SB1 support.
3036         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
3037         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
3038         (mips_multipass_dfa_lookahead): New.
3039         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
3040         TUNE_SB1): New.
3041         (TARGET_SWITCHES): Add -mfp-exceptions support.
3042         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
3043         (BRANCH_COST): Fix whitespace.
3044         * config/mips/mips.md: Include sb1.md.
3045         * config/mips/sb1.md: New file.
3046         * doc/invoke.texi: Document -mfp-exceptions.
3047
3048         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
3049         comment.
3050         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
3051         (fixincl.o-warn): Delete.
3052
3053 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3054
3055         * config/rs6000/rs6000 (print_operand) ['z']:
3056         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
3057
3058 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
3059
3060         * config.gcc: Support --with-arch=iwmmxt for ARM.
3061
3062 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3063
3064         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
3065         in two more places; remove unneeded force_reg
3066
3067 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
3068
3069         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
3070         for TARGET_MACHO.
3071         (print_operand): For TARGET_MACHO check to see if we need a stub
3072         and output one if we need it.
3073
3074         PR debug/15033
3075         * dwarf2out.c (rtl_for_decl_location): Check for NULL
3076         rtl.
3077
3078 2004-04-20  James E Wilson  <wilson@specifixinc.com>
3079
3080         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
3081         (vall_value_gp): Likewise.
3082
3083 2004-04-20  DJ Delorie  <dj@redhat.com>
3084
3085         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
3086         variables stored in word registers, then in memory.
3087
3088 2004-04-20  Eric Christopher  <echristo@redhat.com>
3089
3090         * cp/parser.c (cp_parser_declaration): Move translate
3091         up before tokens are lexed.
3092
3093 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
3094
3095         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
3096         (asin_optab, acos_optab): Define corresponding macros.
3097         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
3098         * genopinit.c (optabs): Implement asin_optab and acos_optab
3099         using asin?f2 and acos?f2 patterns.
3100         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
3101         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
3102         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
3103         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3104
3105         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
3106         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
3107         acos, acosf and acosl built-ins as inline x87 intrinsics.
3108
3109 2004-04-20  Paul Brook  <paul@codesourcery.com>
3110
3111         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
3112
3113 2004-04-20  Paul Brook  <paul@codesourcery.com>
3114
3115         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
3116
3117 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
3118
3119         Revert part of 2004-04-17 change that moved -frename-registers
3120         to -O1.  -frename-registers is buggy.
3121
3122         * toplev.c (flag_rename_registers): Initialize to 0.
3123         * doc/invoke.texi (Optimize options): Move -frename-registers
3124         to "Not triggered by any -O level" section.  Adjust commentary
3125         accordingly.
3126
3127 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
3128
3129         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
3130
3131 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
3132
3133         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
3134         for mflo and mfhi instructions.
3135         (mips_output_move): Remove mflo and mfhi handling.
3136         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
3137         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
3138         Likewise various define_peephole2s.
3139         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
3140         alternatives.
3141         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
3142         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
3143         (mfhilo_di, mfhilo_si): New patterns.
3144
3145 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
3146
3147         * function.c (assign_parms): Force
3148         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
3149
3150 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
3151
3152         * var-tracking.c (variable_part_different_p): Variable parts differ
3153         when the most recent locations differ.
3154
3155 2004-04-19  James E Wilson  <wilson@specifixinc.com>
3156
3157         * rtl.h (reg_set_last): Delete declaration.
3158         * rtlanal.c (reg_set_last): Delete.
3159
3160 2004-04-19  Roger Sayle  <roger@eyesopen.com>
3161
3162         * fold-const.c (fold_convert): Make function extern/public.
3163         * tree.h (fold_convert): Prototype here.
3164         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3165         expand_builtin_strrchr, expand_builtin_strpbrk,
3166         expand_builtin_mempcpy, expand_builtin_bcopy,
3167         expand_builtin_bzero, expand_builtin_memcmp,
3168         expand_builtin_strcmp, expand_builtin_strncmp,
3169         stabilize_va_list, expand_builtin_sprintf,
3170         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
3171         fold_builtin_exponent, fold_builtin_mempcpy,
3172         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
3173         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
3174         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
3175
3176 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
3177
3178         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
3179         (move_from_CR_gt_bit): New.
3180         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
3181         E500.
3182         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
3183         E500.
3184
3185         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
3186         (tstsfeq_gpr): Same.
3187         (cmpsfgt_gpr): Same.
3188         (tstsfgt_gpr): Same.
3189         (cmpsflt_gpr): Same.
3190         (tstsflt_gpr): Same.
3191         (e500_cceq_ior_compare): New.
3192         (e500_flip_gt_bit): New.
3193
3194         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
3195         (print_operand): Add 'c' and 'D'.
3196         (rs6000_generate_compare): Rewrite to generate correct rtl.
3197         (rs6000_emit_sCOND): Handle E500.
3198         (output_cbranch): Adjust for changes in rs6000_generate_compare.
3199         (output_e500_flip_gt_bit): New.
3200
3201         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
3202         Protoize.
3203
3204 2004-04-19  Eric Christopher  <echristo@redhat.com>
3205
3206         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
3207
3208 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
3209
3210         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
3211         fix information.
3212
3213 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3214
3215         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
3216         download URL.
3217
3218 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
3219
3220         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
3221         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
3222
3223 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
3224
3225         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
3226         (fold_builtin): Update caller to match.
3227
3228         PR bootstrap/15009
3229         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
3230
3231         PR bootstrap/14999
3232         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
3233
3234 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3235
3236         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
3237
3238         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
3239         (expand_mult_highpart_optab): Likewise.
3240         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
3241
3242 2004-04-19  Paul Brook  <paul@codesourcery.com>
3243
3244         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
3245         floatunssisf2, floatunssidf2): New patterns.
3246
3247 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
3248
3249         PR other/14918
3250         * doc/invoke.texi (-fprofile-generate): Document requirement to
3251         use -fprofile-generate when linking.
3252
3253         * doc/extend.texi (Strong Using): Warn users against using this
3254         feature.
3255
3256 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
3257
3258         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
3259         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
3260         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
3261         * config/mips/mips.c (struct mips16_constant): Renamed from struct
3262         constant.  Propogate change throughout file.
3263         (struct machine_function): Remove insns_len.
3264         (mips_string_length, mips16_strings, string_constants): Delete.
3265         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
3266         when generating mips16 code.  Remove special mips16 treatment of
3267         string constants.
3268         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
3269         to have the form LABEL+CONSTANT.
3270         (mips_symbolic_address_p): Fix comment.
3271         (m16_usym8_4, m16_usym5_4): Delete.
3272         (mips_output_function_epilogue): Remove mips16 string handling.
3273         (mips_output_mi_thunk): Call mips16_lay_out_constants.
3274         (mips_select_section, mips_encode_section_info): Remove mips16
3275         string handling.
3276         (struct mips16_constant_pool): New.
3277         (add_constant): Take a mips16_constant_pool structure.  Keep pool
3278         sorted into order of ascending mode size.  Keep track of the highest
3279         possible start address, taking padding and the masking of the base PC
3280         value into account.
3281         (dump_constants_1): New function, split out from dump_constants.
3282         Handle vector constants.  Use gen_consttable_{int,float} rather than
3283         separate functions for each mode.
3284         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
3285         rather than separate functions for each alignment.
3286         (mips_find_symbol): Delete.
3287         (mips16_insn_length): New function, split out from
3288         mips16_lay_out_constants.
3289         (mips16_rewrite_pool_refs): New function.
3290         (mips16_lay_out_constants): Rework. Remove string handling.
3291         Always create an inline constant pool.
3292         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
3293         (UNSPEC_ALIGN): New constants.
3294         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
3295         (UNSPEC_ALIGN_[248]): Delete.
3296         (consttable_int, consttable_float, align): New patterns.
3297         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
3298
3299 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
3300
3301         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
3302         __unn_args_eq.
3303
3304 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
3305
3306         PR target/14715
3307         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
3308         with STARTING_FRAME_OFFSET.
3309
3310 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
3311
3312         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
3313         * config/mips/mips.c (macc_msac_operand): New function.
3314         * config/mips/mips.md (*msac): Move after *macc.
3315         (*msac2): New.  Generalize macc-related peepholes so that they apply
3316         to msac too.
3317
3318 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
3319
3320         * opts.c (decode_options): Do not enable flag_rename_registers
3321         and flag_web at -O3.
3322         * toplev.c (flag_rename_registers): Initialize
3323         flag_rename_registers and flag_web to
3324         AUTODETECT_FLAG_VAR_TRACKING.
3325         (default_debug_hooks): New global.
3326         (process_options): Initialize default_debug_hooks.  Warn if
3327         -fvar-tracking specified but not supported by the current
3328         debug format.  Do not run var tracking at -O0 or if not
3329         supported by the current debug format, even if
3330         -fvar-tracking was given.  If -fno-rename-registers
3331         is not specified, always run register renaming if var
3332         tracking is supported by the default debugging information
3333         format for the target, and we are at -O1 or higher; similarly
3334         for -fweb, but only at -O2 or higher.
3335         * doc/invoke.texi (Optimize Options): Document this.
3336
3337 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
3338
3339         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
3340         * configure: Regenerate.
3341
3342 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
3343
3344         * gcc.c (used_arg): Check whether an option has been removed.
3345
3346 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3347
3348         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
3349         debugging on Solaris 7 and up.
3350
3351 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3352
3353         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
3354         IRIX 5 port.
3355         Remove -save-temps workaround, handled automatically.
3356         Require GNU binutils 2.15 for debugging.
3357         Remove SGI make warnings since GNU make is now required.
3358         (Specific, mips-sgi-irix6): Some markup fixes.
3359         Describe MIPSpro C problems and workarounds.
3360         Mention working O32 ABI support.
3361         Recommend GNU as 2.15 for O32 with debugging.
3362         Remove description of fixed structure pass/return bug.
3363
3364 2004-04-16  DJ Delorie  <dj@redhat.com>
3365
3366         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
3367         TYPE_FIELDS.
3368         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
3369
3370 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3371
3372         * pa.md: Remove unnecessary declarations for asm_out_file.
3373
3374         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
3375         SAR register.  Fix comment.
3376         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
3377         (%cr11).
3378
3379         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
3380
3381 2004-04-16  Nick Clifton  <nickc@redhat.com>
3382
3383         * config/arm/arm.c (arm_override_options): Revert previous patch.
3384         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
3385         be safely built.
3386
3387 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
3388
3389         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
3390         bug.
3391         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
3392         TARGET_DEFAULT): Changed. Ditto.
3393         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
3394         TARGET_ENDIAN_DEFAULT): Added. Ditto.
3395         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
3396         (TARGET_ENDIAN_DEFAULT): Added.
3397
3398 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3399
3400         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
3401         ATTR_CONST_NOTHROW_LIST.
3402
3403 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3404
3405         PR/middle-end 14915
3406         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
3407         BITS_BIG_ENDIAN.
3408
3409 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
3410
3411         * ra-debug.c (ra_print_rtx): Add break's to case legs.
3412
3413 2004-04-14  James E Wilson  <wilson@specifixinc.com>
3414
3415         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
3416
3417 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
3418
3419         * libada-mk.in: New file.
3420         * configure.ac: Create libada-mk from libada-mk.in.
3421         * configure: Regenerate.
3422
3423 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
3424
3425         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
3426         (logb_optab, ilogb_optab): Define corresponding macros.
3427         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
3428         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
3429         using logb?f2 and ilogb?i2 patterns.
3430         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
3431         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
3432         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
3433         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3434
3435         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
3436         and UNSPEC_XTRACT_EXP.
3437
3438         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
3439         patterns to implement fxtract x87 instruction.
3440         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
3441         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
3442         intrinsics.
3443         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
3444         x87's fxtract insn.
3445
3446 2004-04-14  Eric Christopher  <echristo@redhat.com>
3447
3448         * config/mips/t-elf: Enable multilibs by default.
3449
3450 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
3451
3452         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
3453         previous fix to check HAVE_return at runtime too.
3454
3455 2004-04-14  Nick Clifton  <nickc@redhat.com>
3456
3457         * config/arm/arm.c (arm_override_options): If the user has not
3458         specified an ABI, then default to AAPCS for the iWMMXt processor.
3459         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
3460         * config/arm/t-xscale-coff: Likewise.
3461
3462 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3463
3464         * builtins.c (fold_builtin_isdigit): New.
3465         (fold_builtin): Handle BUILT_IN_ISDIGIT.
3466         * defaults.h: Add TARGET_DIGIT0 and sort.
3467         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
3468
3469 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3470
3471         * builtins.c (fold_builtin_cabs, fold_builtin): Use
3472         `mathfn_built_in' to determine the new builtin.
3473         * fold-const.c (fold): Likewise.
3474
3475 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
3476
3477         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
3478         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
3479         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
3480         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
3481         (ASM_SPEC): Update accordingly.
3482         * config/mips/mips.c: Update after above renaming.
3483         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
3484         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
3485
3486 2004-04-13  James E Wilson  <wilson@specifixinc.com>
3487
3488         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
3489         increment errorcount and return false instead of true.
3490
3491 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
3492
3493         * optabs.c (expand_twoval_unop): Reorder function arguments.
3494         * builtins.c (expand_builtin_mathfn_3): Update calls to
3495         expand_twoval_unop.
3496
3497         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
3498         and UNSPEC_TAN_TAN. Add missing comment.
3499
3500         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
3501         patterns to implement fptan x87 instruction.
3502         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
3503         and tanl built-ins as inline x87 intrinsics. Define corresponding
3504         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
3505         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
3506         x87's fptan insn.
3507
3508 2004-03-13  Richard Henderson  <rth@redhat.com>
3509
3510         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
3511         for LABEL_REFs.
3512
3513         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
3514         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
3515         * doc/invoke.texi: Update to match.
3516
3517         * varasm.c (unlikely_text_section): Use assemble_align instead of
3518         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
3519         correct alignment argument.
3520
3521 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
3522
3523         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
3524         after setting reg_last_reload_reg for optional output reloads.
3525
3526 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
3527
3528         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
3529         Definition of these two macros are corrected by adding
3530         matchine right paren.
3531
3532 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
3533
3534         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
3535
3536 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3537
3538         * config/i386/i386.c (output_387_reg_move): New function.
3539         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
3540         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
3541         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
3542         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
3543         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
3544
3545 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3546
3547         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
3548         TYPE_DECL.
3549         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
3550         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
3551         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
3552         Use skip_simple_arithmetic to find SAVE_EXPR.
3553         (force_type_save_exprs, force_type_save_exprs_1): New functions.
3554         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
3555         Properly chain multiple pointers.
3556         (copy_tree_r): Copy a TYPE_DECL.
3557         * tree.c (variably_modified_type_p): Add some missing tests and
3558         make some other minor changes.
3559         * tree.h (force_type_save_exprs): New declaration.
3560
3561 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3562
3563         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
3564         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
3565         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
3566         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
3567         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
3568         x%-1 into 0 (or x&0 if x has side-effects).
3569
3570 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3571
3572         * config/rs6000/rs6000.md: Document why a pattern is not
3573         available.
3574
3575         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
3576         of floats on the E500.
3577         (branch_positive_comparison_operator): Do not allow NE even on the
3578         E500.
3579
3580 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3581
3582         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
3583         in_text_unlikely_section to in_unlikely_text_section.
3584
3585 2004-04-11  Roger Sayle  <roger@eyesopen.com>
3586
3587         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
3588         calling convention to allow a NULL_TREE to be returned.  Factor
3589         sanity checks from callers, return NULL_TREE when appropriate.
3590         (fold): Handle COMPOUND_EXPR operands of binary expressions
3591         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
3592         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
3593         calls to fold_binary_op_with_conditional_arg.
3594
3595 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3596
3597         * config/mips/iris5.h (current_section_flags):  Add
3598         in_unlikely_executed_text and default case.
3599
3600 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
3601
3602         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
3603         failure on solaris. Place ifdef HAVE_return around gen_ret call.
3604         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
3605         HAVE_return and place it around the place where it is needed.
3606
3607 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3608
3609         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
3610         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
3611         and NORMAL_TEXT_SECTION_NAME.
3612         (unlikely_text_section): Check targetm.have_named_sections
3613         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
3614         instead of SECTION_FORMAT_STRING.
3615         * config/mips/iris5.h (current_section_name): Add
3616         in_unlikely_executed_text case and move the abort into the switch.
3617         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
3618         (NORMAL_TEXT_SECTION_NAME): Remove.
3619         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3620         (SECTION_FORMAT_STRING): Remove.
3621         * defaults.h (SECTION_FORMAT_STRING): Remove.
3622         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
3623         (SECTION_FORMAT_STRING): Remove.
3624
3625 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3626
3627         * c-typeck.c (common_type): Prefer long long to long when same
3628         precision.
3629
3630 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
3631
3632         PR 14887
3633         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
3634         mode argument.
3635         * config/ia64/ia64.c (ia64_hpux_file_end): Check
3636         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
3637
3638 2004-04-09  Roger Sayle  <roger@eyesopen.com>
3639
3640         * simplify-rtx.c (mode_signbit_p): New function to check whether
3641         an RTX is an immediate constant that represents the most significant
3642         bit of a given machine mode.
3643         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
3644         C is the sign bit.
3645         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
3646         when C2 is the sign bit.
3647         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
3648         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
3649         sign bit.
3650
3651 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3652
3653         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
3654         TYPE_MODE.
3655
3656 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
3657
3658         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
3659         of TREE_READONLY for types.
3660
3661 2004-04-09  Caroline Tice  <ctice@apple.com>
3662
3663         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
3664         (struct basic_block_def):  Add new field, partition.
3665         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
3666         definitions.
3667         (partition_hot_cold_basic_blocks): Add extern function
3668         declaration.
3669         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
3670         include statements.
3671         (N_ROUNDS): Increase the maximum number of rounds by 1.
3672         (branch_threshold): Add array value for new round.
3673         (exec_threshold): Add array value for new round.
3674         (push_to_next_round_p): New function.
3675         (add_unlikely_executed_notes): New function.
3676         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
3677         (mark_bb_for_unlikely_executed_section): New function.
3678         (add_labels_and_missing_jumps): New function.
3679         (add_reg_crossing_jump_notes): New function.
3680         (fix_up_fall_thru_edges): New function.
3681         (find_jump_block): New function.
3682         (fix_crossing_conditional_branches): New function.
3683         (fix_crossing_unconditional_branches): New function.
3684         (fix_edges_for_rarely_executed_code): New function.
3685         (partition_hot_cold_basic_blocks): New function.
3686         (find_traces):  Add an extra round for partitioning hot/cold
3687         basic blocks.
3688         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
3689         and only cold blocks, into the last (extra) round of collecting traces.
3690         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
3691         over crossing edges.
3692         (bb_to_key):  Add code to correctly identify cold blocks when
3693         doing partitioning.
3694         (connect_traces): Modify to connect all the non-cold traces first, then
3695         go back and connect up all the cold traces.
3696         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
3697         * cfg.c (entry_exit_blocks): Add initialization for partition field in
3698         entry and exit blocks.
3699         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
3700         if we are doing hot/cold partitioning.
3701         * cfgcleanup.c (cfglayout.h): Add new include statement.
3702         (try_simplify_condjump): Modify to not attempt on blocks with jumps
3703         that cross section boundaries.
3704         (try_forward_edges): Likewise.
3705         (merge_blocks_move_predecessor_nojumps): Likewise.
3706         (merge_blocks_move_successor_nojumps): Likewise.
3707         (merge_blocks_move): Likewise.
3708         (try_crossjump_to_edge): Modify to not attempt after we have done
3709         the block partitioning.
3710         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
3711         cross section boundaries.
3712         (try_optimize_cfg): Likewise.
3713         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
3714         jumps that cross section boundaries.
3715         * cfglayout.c (flags.h): Add new include statement.
3716         (update_unlikely_executed_notes):  New function.
3717         (fixup_reorder_chain):  Add code so when a new jumping basic block is
3718         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
3719         updated appropriately.
3720         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
3721         introduced by this optimization.
3722         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
3723         extern function declaration.
3724         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
3725         list of notes that can be deleted.
3726         (create_basic_block_structure):  Add initialization for partition field.
3727         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
3728         section boundaries.
3729         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
3730         cross section boundaries.
3731         (commit_one_edge_insertion): Add code so newly created basic block
3732         ends up in correct (hot or cold) section.  Modify to disallow
3733         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
3734         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
3735         crosses section boundaries.
3736         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
3737         cross section boundaries.
3738         (force_nonfallthru_and_redirect): Modify to make sure new basic block
3739         ends up in correct section, with correct notes attached.
3740         * common.opt (freorder-blocks-and-partition):  Add new flag for this
3741         optimization.
3742         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
3743         the end of functions are written into the correct (hot or cold)
3744         section.
3745         (dbx_source_file): Add code so writing debug file information
3746         doesn't incorrectly change sections.
3747         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
3748         in partitioning hot/cold basic blocks into separate sections.
3749         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
3750         section partitioning.
3751         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
3752         conditional branches can span all of memory.
3753         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
3754         unconditional branches can span all of memory.
3755         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
3756         (final_scan_insn):  Add code to check for NOTE instruction indicating
3757         whether basic block belongs in hot or cold section, and to make sure
3758         the current basic block is being written to the appropriate section.
3759         Also added code to ensure that jump table basic blocks end up in the
3760         correct section.
3761         * flags.h (flag_reorder_blocks_and_partition):  New flag.
3762         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
3763         one of the branches has a jump that crosses between sections.
3764         (find_if_case_2): Likewise.
3765         (ifcvt): Modify to not attempt to mark loop exit edges after
3766         hot/cold partitioning has occurred.
3767         * opts.c (decode_options): Code to handle new flag,
3768         flag_reorder_blocks_and_partition; also to turn it off if
3769         flag_exceptions is on.
3770         (common_handle_option): Code to handle new flag,
3771         flag_reorder_blocks_and_partition.
3772         * output.h (unlikely_text_section): New extern function declaration.
3773         (in_unlikely_text_section): New extern function declaration.
3774         * passes.c (rest_of_handle_stack_regs):  Add
3775         flag_reorder_blocks_and_partition as an 'or' condition for calling
3776         reorder_basic_blocks.
3777         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
3778         as an 'or' condition for calling reorder_basic_blocks.
3779         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
3780         * print-rtl.c (print_rtx): Add code for handling new note,
3781         NOTE_INSN_UNLIKELY_EXECUTED_CODE
3782         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
3783         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
3784         cross between section boundaries.
3785         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
3786         indicating the basic block containing it belongs in the cold section.
3787         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
3788         between hot and cold sections.
3789         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
3790         initialize this flag, and to tie it to the command-line option
3791         freorder-blocks-and-partition.
3792         * varasm.c (cfglayout.h):  Add new include statement.
3793         (unlikely_section_label_printed):  New global variable, used for
3794         determining when to output section name labels for cold sections.
3795         (in_section):  Add in_unlikely_executed_text to enum data structure.
3796         (text_section):  Modify code to use SECTION_FORMAT_STRING and
3797         NORMAL_TEXT_SECTION_NAME macros.
3798         (unlikely_text_section):  New function.
3799         (in_unlikely_text_section):  New function.
3800         (function_section):  Add code to make sure beginning of function is
3801         written into correct section (hot or cold).
3802         (assemble_start_function):  Add code to make sure stuff is written to
3803         the correct section.
3804         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
3805         to an if statement that was checking 'in_text_section'.
3806         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
3807         condition to an if statement that was checking 'in_text_section'.
3808         (default_section_type_flags_1):  Add check: if in cold section
3809         flags = SECTION_CODE.
3810         * config/darwin.c (darwin_asm_named_section):  Modify to use
3811         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
3812         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
3813         specifically for the i386.
3814         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
3815         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
3816         text string to something more informative.
3817         (NORMAL_TEXT_SECTION_NAME): Add new definition.
3818         (SECTION_FORMAT_STRING):  Add new definition.
3819         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
3820         '!in_unlikely_text_section' as an 'and' condition to an if statement
3821         that was already checking '!in_text_section'.
3822         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
3823         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
3824         sure these are properly defined for linux on ppc.
3825         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
3826         for this new flag.
3827         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
3828         reg_note.
3829         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
3830         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
3831         these new macros.
3832
3833 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3834
3835         * function.c (gen_mem_addressof): When changing the RTX from a REG
3836         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
3837
3838 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3839
3840         PR target/14888
3841         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
3842         truncxfdf2_noop): Provide dummy "fmov" implementations.
3843
3844 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
3845
3846         * gcc.c (default_compilers): Add missing initializers.
3847
3848         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3849         Return 1 if file was successfully mapped.
3850
3851 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
3852
3853         PR pch/13419
3854         PR pch/14137
3855         Radar #: 3315288
3856         * doc/invoke.texi (Precompiled Headers): Suggest -o
3857         to put an output file in a particular place.  Be more detailed
3858         about which options affect PCH validity and which options
3859         might not work.
3860         * c-pch.c (pch_matching): New.
3861         (MATCH_SIZE): New.
3862         (struct c_pch_validity): New field 'match'.
3863         (pch_init): Handle pch_matching.
3864         (c_common_valid_pch): Check pch_matching.
3865
3866         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
3867
3868 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
3869
3870         * doc/invoke.texi (Precompiled Headers): Warn about known
3871         problems.
3872
3873 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
3874
3875         PR c++/14808
3876         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
3877         to 1 if ASM_OUTPUT_DEF is defined.
3878         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
3879         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
3880         Set to non-zero iff not a one_only decl.
3881
3882 2004-04-08  Paul Brook  <paul@codesourcery.com>
3883
3884         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
3885
3886 2004-04-08  Paul Brook  <paul@codesourcery.com>
3887
3888         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
3889         PROMOTE_FOR_CALL_ONLY.
3890         * config/arm/arm-protos.h (arm_function_value): Declare.
3891         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
3892         (TARGET_PROMOTE_PROTOTYPES): Return false.
3893         (arm_function_value): New function.
3894         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
3895         (FUNCTION_VALUE): Call arm_function_value.
3896         * config/cris/cris.h (PROMOTE_MODE): Rename ...
3897         (PROMOTE_FUNCTION_MODE): ... to this.
3898         (PROMOTE_FOR_CALL_ONLY): Remove.
3899         * config/mmix/mmix.h: Likewise.
3900         * config/s390/s390.h: Likewise.
3901         * config/sparc/sparc.h: Likewise.
3902         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
3903         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
3904         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
3905         (PROMOTE_FOR_CALL_ONLY): Remove.
3906
3907 2004-04-08  Joel Sherrill <joel@oarcorp.com>
3908
3909         PR ada/14538
3910         * ada/5rosinte.adb: Remove fake mprotect() body.
3911         * ada/5rosinte.ads: Add SA_SIGINFO.
3912         * ada/5rtpopsp.adb: Rewrite to use new interface.
3913         * ada/init.c: Reorder so the simple single OS conditional __rtems__
3914         is tested before more complex ones which mix UNIX and embedded
3915         systems in the conditional.
3916
3917 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
3918
3919         PR ada/14665
3920         * ada/osint.adb (Find_Program_Name): Rework to properly handle
3921         filenames which end in .exe or have versioning suffixes like VMS.
3922
3923 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
3924
3925         PR target/10129
3926         * config/darwin.c (darwin_encode_section_info): When the decl has
3927         a DECL_INITIAL, it is only defined also when it is not a common.
3928
3929 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3930
3931         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
3932         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
3933
3934 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
3935
3936         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
3937         global register variables.
3938
3939 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3940
3941         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
3942         rpc_xdr_lvalue_cast_b): New fixes.
3943         * fixinc/fixincl.x: Regenerate.
3944         * fixinc/tests/base/rpc/xdr.h: Add new tests.
3945
3946 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
3947
3948         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
3949         to power4 and power5 entries.
3950
3951 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
3952
3953         * c-common.h (pending_lang_change): Mark for PCH.
3954
3955 2004-04-07  Caroline Tice  <ctice@apple.com>
3956
3957         * gcc.c (main): Move 'break' in main loops (on an error)
3958         to wait until error processing has occurred.
3959
3960 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
3961
3962         * config.gcc: Stop changing enable_threads midstream.
3963         Replace uses of enable_threads_flag with enable_threads.
3964         * configure.ac: Replace uses of enable_threads_flag with
3965         enable_threads.  Improve autoconf quotation in one place.
3966         * configure: Regenerate.
3967
3968 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
3969
3970         * builtins.c: Implement support for sincos function.
3971         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
3972         BUILT_IN_COS{,F,L}.
3973         (expand_builtin_mathfn_3): New function.
3974         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
3975         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
3976         flag_unsafe_math_optimization is set.
3977
3978         * optabs.h (enum optab_index): Add new OTI_sincos.
3979         (sincos_optab): Define corresponding macro.
3980
3981         * optabs.c (init_optabs): Initialize sincos_optab.
3982         (expand_twoval_unop): New function.
3983
3984         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
3985         patterns.
3986
3987         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
3988         and UNSPEC_SINCOS_SIN.
3989
3990         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
3991         sincosxf3): New patterns to implement sincos, sincosf and sincosl
3992         built-ins as inline x87 intrinsics. Define splits for
3993         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
3994         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
3995         sincos patterns.
3996         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
3997         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
3998
3999         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
4000         x87's fsincos insn.
4001
4002 2004-04-06  Devang Patel  <dpatel@apple.com>
4003
4004         PR 14467
4005         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
4006
4007 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4008
4009         * doc/install.texi: Update HP-UX 11 installation procedure.
4010
4011 2004-04-06  Paul Brook  <paul@codesourcery.com>
4012
4013         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
4014
4015 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4016
4017         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
4018         when the TLS address is generated by a function call.
4019         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
4020         (tls_local_dynamic): Likewise.
4021
4022 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
4023
4024         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
4025         and TYPE_VOLATILE.
4026
4027 2004-04-05  Caroline Tice  <ctice@apple.com>
4028
4029         * gcc.c (combine_flag): New global variable, for new driver option.
4030         (struct compiler): Add two new fields, to be used when
4031         combining multiple input files in a single pass (IMA).
4032         (default_compilers):  Add values for the new fields to all
4033         compiler entries. Modify the "@c" compiler entry for doing IMA
4034         properly with "-save-temps" and the "combine" flag.
4035         (option_map):  Add new driver option, "--combine", to tell driver
4036         to pass multiple input files to compiler at one time.
4037         (have_o_argbuf_index): New global variable.
4038         (store_arg): Modify to assign value to have_o_argbuf_index.
4039         (struct infile):  Add three new fields, to help with IMA.
4040         (display_help): Add help for new "combine" option.
4041         (process_command): Remove local variable have_o; add code to check
4042         for new "combine" option; remove assignment to combine_inputs.
4043         (do_spec_1):  Modify to deal with IMA better.
4044         (main): Make variable 'lang_n_infiles' local to entire function
4045         rather than to a single block.  Use flag combine_flag to
4046         determine whether to do IMA or not; Modify loop initializing
4047         infiles to deal properly with linker files.
4048         Add code for doing preprocessing in presence of
4049         IMA with "-save-temps" flag.  Modify "main" loop to handle
4050         multiple input files, in multiple languages, with or without
4051         preprocessing,  gracefully.
4052         * toplev.c (set_src_pwd): Modify to not complain if attempting to
4053         re-set it to same directory it's previously been set to (avoid
4054         irritating, meaningless warning messages when doing IMA with
4055         save-temps).
4056         * doc/invoke.texi: Add "-combine" to list of Overall Options;
4057         remove documentation about IMA that is no longer accurate; Add
4058         documentation explaining what "-combine" does.
4059         * ada/lang-specs.h: Add initialization values for new fields in
4060         "struct compiler".
4061         * cp/lang-specs.h: Likewise.
4062         * f/lang-specs.h: Likewise.
4063         * java/lang-specs.h: Likewise.
4064         * objc/lang-specs.h: Likewise.
4065         * treelang/lang-specs.h: Likewise.
4066
4067 2004-04-05  David Edelsohn
4068
4069         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
4070         symbol handling.
4071
4072 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
4073             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4074
4075         PR optimization/13424 (hppa), bootstrap/14462, c/14828
4076         * pa.md: Use replace_equiv_address to retain the attributes of the
4077         memory operands used in the split and peephole2 patterns for optimizing
4078         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
4079
4080 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4081
4082         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
4083         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4084         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
4085         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
4086         PARM_DECL.
4087         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
4088         for a type.
4089         * print-tree.c (print_node): Properly handle side-effects, readonly,
4090         and constant flags.
4091         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
4092         and TREE_CONSTANT if not a type.
4093         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
4094         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
4095         (NON_TYPE_CHECK): New macro.
4096         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
4097
4098 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
4099
4100         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
4101         to DWARF2_DEBUG unconditionally.
4102         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
4103
4104 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
4105             Nathanael Nerode  <neroden@gcc.gnu.org>
4106
4107         PR target/14548
4108         * config.host: Set the shell variable host_can_use_collect2.
4109         Set it to yes by default, and to no for alpha*-dec-*vms*,
4110         i[34567]86-*-mingw32*, and powerpc-*-beos*.
4111         * configure.ac: Set and substitute the shell variable collect2.
4112         Give an error if use_collect2 is yes and host_can_use_collect2 is
4113         no.
4114         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
4115         uses.  Initialize to @collect2@.
4116         (STAGESTUFF): Remove $(USE_COLLECT2).
4117         * config/alpha/x-vms (USE_COLLECT2): Don't set.
4118         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
4119         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
4120         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
4121         * configure: Regenerate.
4122
4123 2004-04-04  Roger Sayle  <roger@eyesopen.com>
4124
4125         * simplify-rtx.c (simplify_binary_operation): Constant fold
4126         DIV, MOD, UDIV and UMOD using div_and_round_double.
4127
4128 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
4129
4130         PR c++/14804
4131         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
4132         RECORD_TYPEs.
4133
4134 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
4135
4136         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
4137         documentation.
4138
4139 2004-04-04  Roger Sayle  <roger@eyesopen.com>
4140
4141         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
4142         updating the REG_EQUAL note on an insn's libcall_insn.
4143
4144 2004-04-04  Roger Sayle  <roger@eyesopen.com>
4145
4146         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
4147
4148 2004-04-03  Roger Sayle  <roger@eyesopen.com>
4149
4150         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
4151         with reorder_operands_p.
4152
4153 2004-04-03  Jan Hubicka  <jh@suse.cz>
4154
4155         * md.texi (vec_set, vec_extract, vec_init): Document.
4156
4157 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
4158
4159        * opts.c (decode_options): Do function inlining with very small
4160        max-inline-insns-* parameters when optimizing for size.
4161
4162 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
4163
4164         * config/i386/i386.h (TARGET_NOCONA): New macro.
4165         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
4166         (processor_type): Add PROCESSOR_NOCONA.
4167
4168         * config/i386/i386.md (cpu): Add nocona to the attribute values.
4169
4170         * config/i386/i386.c (nocona_cost): New variable.
4171         (m_NOCONA): New macro.
4172         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
4173         x86_branch_hints, x86_use_sahf, x86_single_stringop,
4174         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
4175         x86_integer_DFmode_moves, x86_partial_reg_dependency,
4176         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
4177         x86_decompose_lea, x86_arch_always_fancy_math_387,
4178         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
4179         x86_ext_80387_constants, x86_four_jump_limit):
4180         (override_options): Add nocona_cost to processor_target_table.
4181         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
4182         (incdec_operand): Prevent inc/dec generation for Nocona too.
4183         (ix86_issue_rate): Add PROCESSOR_NOCONA.
4184
4185 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
4186
4187         * rtlanal.c (find_reg_note): Manually
4188         unswitch the loop.
4189
4190 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
4191
4192         * genemit.c (gen_split): Change prototype of generated code.
4193         * genrecog.c (write_action): Adjust prototype for and calls to
4194         gen_split_*.
4195         * gensupport.c (struct queue_elem): Add split field.
4196         (queue_pattern): Return a value.  Clear the split field.
4197         (process_rtx): Maintain an association between an insn and the
4198         split generated from it for a define_insn_and_split.
4199         (process_one_cond_exec): Generate a new split for a
4200         define_insn_and_split.
4201         * config/arm/arm-protos.h (arm_split_constant): Add insn
4202         parameter.
4203         (emit_constant_insn): New function.
4204         (arm_gen_constant): Use it.
4205         * config/arm/arm.md: Adjust calls to arm_split_constant.
4206
4207 2004-04-02  Jan Hubicka  <jh@suse.cz>
4208
4209         * cgraph.c: Add overall comment.
4210         (cgraph_inline_hash): New global variable.
4211         (cgraph_create_node): Break out from ...
4212         (cgraph_node): ... here.
4213         (cgraph_edge): New function.
4214         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
4215         (cgraph_remove_edge): Accept edge, intead of source and destination.
4216         (cgraph_redirect_edge_callee): New.
4217         (cgraph_remove_node): Update all new datastructures.
4218         (cgraph_record_call, cgraph_remove_call): Kill.
4219         (dump_cgraph_node): Break out from ... ; dump new datastructures.
4220         (dump_cgraph): ... here.
4221         (cgraph_function_possibly_inlined_p): Use new hashtable.
4222         (cgraph_clone_edge, cgraph_clone_node): New.
4223         * cgraph.h: Include hashtab.h
4224         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
4225         fields, add inlined_to pointer.
4226         (cgraph_node): Add pointer to next_clone.
4227         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
4228         (cgraph_remove_call, cgraph_record_call): Kill.
4229         (cgraph_inline_hash): Declare.
4230         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
4231         cgraph_redirect_edge_callee): Declare.
4232         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
4233         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
4234         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
4235         * cgraphunit.c: Add overall comment.
4236         (cgraph_optimize_function): Kill.
4237         (cgraph_assemble_pending_functions): Do not assemble inline clones.
4238         (cgraph_finalize_function): Update call of cgraph_remove_node
4239         (record_call_1): Record call sites.
4240         (cgraph_create_edges): Accept node instead of decl argument.
4241         (error_found): New static variable.
4242         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
4243         (cgraph_analyze_function): Update for new datastructures.
4244         (cgraph_finalize_compilation_unit): Plug memory leak.
4245         (cgraph_optimize_function): Kill.
4246         (cgraph_expand_function): Do not use cgraph_optimize_function.
4247         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
4248         cgraph_inlined_callees): Kill.
4249         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
4250         clones.
4251         (estimate_growth): Simplify.
4252         (cgraph_clone_inlined_nodes): New function.
4253         (cgraph_mark_inline_edge): Re-implement.
4254         (cgraph_mark_inline): Likewise.
4255         (cgraph_check_inline_limits): Simplify.
4256         (cgraph_recursive_inlining_p): New.
4257         (update_callee_keys): Break out from ...
4258         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
4259         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
4260         Likewise.
4261         (cgraph_expand_all_functions):  Remove inline clones from the ordered
4262         list.
4263         (cgraph_preserve_function_body_p): New predicate.
4264         (cgraph_optimize): Verify cgraph.
4265         * function.h (struct function): Add fields saved_tree/saved_args.
4266         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
4267         * toplev.c (rest_of_compilation): Do not free cfun.
4268         * tree-inline.c: Include function.h
4269         (struct inline_data): Add saving_p field; replace decl/current_decl by
4270         node/current_node.
4271         (insert_decl_map): New function.
4272         (copy_body_r): Handle saving; update cgraph datastructure.
4273         (copy_body): Handle recursive inlining.
4274         (initialize_inlined_parameters): Likewise.
4275         (expand_call_inline): Propagate node attributes; update cgraph.
4276         (optimize_inline_calls): Verify that datastructure still match.
4277         (save_body): New function.
4278         * tree-inline.h (save_body): New.
4279         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
4280         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
4281         * langhooks.c (lang_hooks): Add update_decl_after_saving.
4282
4283 2004-04-01  Serge Belyshev  <1319@bot.ru>
4284
4285         PR target/14702
4286         * config/i386/i386.md: fix source operand constraints in
4287         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
4288
4289 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4290
4291         * fold-const.c (folda): Preserve types of comparisons.
4292
4293 2004-04-01  Richard Henderson  <rth@redhat.com>
4294
4295         * toplev.c (backend_init): Move init_optimization_passes call ...
4296         (lang_dependent_init): ... here.
4297
4298 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
4299             Jakub Jelinek  <jakub@redhat.com>
4300
4301         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
4302         -lgcc --as-needed -lgcc_s --no-as-needed by default.
4303         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
4304         * configure: Rebuilt.
4305         * config.in: Rebuilt.
4306         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
4307         (stage2-start, stage3-start, stage4-start): Likewise.
4308         (stageprofile-start, stagefeedback-start): Likewise.
4309
4310 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
4311
4312         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
4313         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
4314         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
4315         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
4316         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
4317         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
4318         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
4319         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
4320         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
4321         * config/sparc/t-linux: Removed.
4322
4323 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
4324
4325         PR c++/14755
4326         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
4327         "bitfld++ == const" to "++bitfld == const + incr" transformations.
4328
4329 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4330
4331         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
4332         * stor-layout.c (layout_decl): Likewise.
4333         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
4334         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
4335         * print-tree.c (print_node): Handle various used of unsigned_flag.
4336         * tree.def (BIT_FIELD_REF): Update comment.
4337         * tree.h (TREE_UNSIGNED): Deleted.
4338         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
4339
4340 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4341
4342         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
4343         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
4344         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
4345         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
4346         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
4347         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
4348         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
4349         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
4350         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
4351         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
4352         REAL_TYPE, not INTEGER_TYPE.
4353         (layout_type, case VECTOR_TYPE): Simplify code.
4354         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
4355         * tree.h: Update comments.
4356         (STRIP_NOPS): Use TYPE_UNSIGNED.
4357         (TYPE_UNSIGNED): New macro.
4358         (TYPE_TRAP_SIGNED): Remove now redundant check.
4359         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
4360
4361 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4362
4363         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
4364
4365 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
4366
4367         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
4368         Add darwin-fpsave.asm, darwin-vecsave.asm,
4369         and darwin-world.asm.
4370         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
4371         as the asm files contain altivec instructions.
4372         * config/rs6000/darwin-fpsave.asm: New file.
4373         * config/rs6000/darwin-vecsave.asm: New file.
4374         * config/rs6000/darwin-world.asm: New file.
4375
4376 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
4377
4378         * gengtype-yacc.y (option, stringseq): Add missing
4379         terminating semicolon.
4380
4381 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
4382
4383         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
4384         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
4385         tls_dtprel_ha_32, tls_dtprel_ha_64,
4386         tls_dtprel_lo_32, tls_dtprel_lo_64,
4387         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
4388         tls_tprel_ha_32, tls_tprel_ha_64,
4389         tls_tprel_lo_32, tls_tprel_lo_64,
4390         tls_got_tprel_32, tls_got_tprel_64,
4391         tls_tls_32, tls_tls_64): Replace register_operand with
4392         gpc_reg_operand.
4393
4394 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
4395
4396         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
4397         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
4398         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
4399         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
4400         *ctrdi_internal6): Replace register_operand with
4401         nonimmediate_operand.
4402
4403 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
4404
4405         * fold-const.c (fold): Reassociate multiply expression
4406         with an adjacent non-multiply expression to use
4407         architecture's multiply-add instruction.
4408
4409 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
4410
4411         * gengtype.c (create_option): New function.
4412         * gengtype.h: Prototype it.
4413         * gengtype-yacc.y (stringseq): New rule.
4414         (option): Use create_option.  Add new bare ID production.  Use
4415         stringseq, not STRING directly.
4416
4417         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
4418         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
4419         * varray.h, config/alpha/alpha.c:
4420         Use new shorter form of GTY markers.
4421
4422         * doc/gty.texi: Rewrite.
4423
4424 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
4425
4426         * config/darwin.c (machopic_function_base_name):
4427         Remove current_name and getting the name of the
4428         current function.
4429
4430 2004-03-30  Nick Clifton  <nickc@redhat.com>
4431
4432         * config/arm/arm.md (thumb_jump): Reduce the backward branch
4433         range, and increase the forward branch range, to allow for
4434         the fact that the PC will be off by 4.
4435
4436 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
4437
4438         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
4439
4440 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
4441
4442         * config/rs6000/rs6000.c (output_vec_const_move):
4443         Find all cases of EASY_VECTOR_15_ADD_SELF.
4444         (easy_vector_constant_add_self): Accept
4445         all vector constant loadable by vsplt* and vadd*.
4446         (easy_vector_same): Use easy_vector_splat_const.
4447         (easy_vector_const): Use easy_vector_splat_const.
4448         (easy_vector_splat_const): New function.
4449         (gen_easy_vector_constant_add_self): New function.
4450
4451         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
4452         New prototype.
4453
4454         * config/rs6000/altivec.md (movv4si splitter): Change to
4455         emit move insn with halfed vector constant.
4456         (*movv8hi splitter): Likewise.
4457         (*movv16qi splitter): Likewise.
4458
4459 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
4460
4461         PR 11591
4462         * config/rs6000/rs6000.c (rs6000_legitimate_address):
4463         Allow any offset to argument pointer in no-strict case.
4464
4465 2004-03-30  Jan Hubicka  <jh@suse.cz>
4466
4467         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
4468         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
4469         dump file in non-unit-at-a-time mode.
4470
4471 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
4472
4473         * config/cris/cris.h: Correct #ifdef to test for
4474         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
4475         HAVE_AS_MUL_BUG_ABORT_OPTION.
4476
4477 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4478
4479         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
4480         the address inside the old RTL.
4481
4482 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
4483
4484         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
4485         (struct c_binding, struct c_scope): Add chain_next
4486         attributes to GTY markers.
4487         (struct lang_identifier, struct lang_tree_node): Define
4488         here...
4489         * c-tree.h: ... not here.  No longer need to declare struct
4490         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4491         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
4492         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4493
4494         PR 14734, 11944
4495         * c-decl.c (get_parm_info): If error_mark_node is encountered
4496         in the bindings chain, unbind and discard it; don't abort.
4497
4498 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
4499             Dorit Naishlos <dorit@il.ibm.com>
4500
4501         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
4502         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
4503
4504 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
4505
4506         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
4507
4508         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
4509         (m68hc11_attribute_table): New attribute "page0" to mark a global
4510         variable as being allocated from within page0 section.
4511         (m68hc11_encode_label): New function.
4512         (m68hc11_strip_name_encoding): New function.
4513         (m68hc11_page0_symbol_p): New function.
4514         (m68hc11_indirect_p): Accept global variables marked in page0.
4515         (m68hc11_encode_section_info): Lookup "page0" attribute.
4516
4517         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
4518         represents access to page0 variables.
4519
4520         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
4521         ("*logicalsi3_silshl16_zext"): Likewise.
4522         ("*ashldi3_const32"): Likewise.
4523         (peephole2 ashift): Likewise.
4524
4525 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4526
4527         * c-tree.h (C_DECL_REGISTER): New.
4528         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
4529         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
4530         (build_array_ref, c_mark_addressable): Set and use it.
4531         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
4532         Allow structures with volatile fields to be declared register.
4533         Don't check TREE_ADDRESSABLE before warning about taking address
4534         of register.
4535         * c-decl.c (finish_decl): Don't allow structures with volatile
4536         fields to be placed in named register.
4537         * doc/trouble.texi: Remove reference to structures with volatile
4538         fields in registers.
4539
4540 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4541
4542         * function.c (thread_prologue_and_epilogue): Move
4543         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
4544         before the epilogue.
4545
4546 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4547
4548         * expr.c (store_constructor): Use gen_int_mode to correctly
4549         sign-extend CONST_INT value.
4550
4551 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4552
4553         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
4554         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
4555         * doc/extend.texi: Likewise.
4556
4557 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
4558
4559         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
4560           with TYPE_ORIG_SIZE_TYPE.
4561
4562 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
4563
4564         PR 14219
4565         * c-typeck.c (build_binary_op): Do not allow comparisons of
4566         vectors.
4567
4568 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
4569
4570         * config.gcc: Remove sparc-tti-*.
4571         * config/sparc/pbd.h: Delete.
4572
4573         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
4574         * config/sparc/aout.h: Likewise.
4575
4576         * config/sparc/sparc.h: Remove if 0'd code.
4577         * config/sparc/sparc.md (call): Remove if 0'd code.
4578         (call_value): Likewise.
4579         (nonlocal_goto): Likewise.
4580         (unimp_insn): Delete.
4581
4582 2004-03-25  Roger Sayle  <roger@eyesopen.com>
4583
4584         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
4585         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
4586
4587 2004-03-25  Richard Henderson  <rth@redhat.com>
4588
4589         PR 11527
4590         * c-typeck.c (pop_init_level): Emit pending init elements earlier
4591         rather than later.
4592
4593 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4594
4595         * builtins.c (fold_builtin): Fix error in last change.
4596
4597 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
4598
4599         * config/mips/mips.h: Formatting fix.
4600
4601 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4602
4603         * builtins.def: Add ctype builtins.
4604         * doc/extend.texi: Likewise.
4605
4606 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4607
4608         * builtins.c (fold_builtin): Add new builtin optimizations for
4609         sqrt and/or cbrt.
4610         * fold-const.c (fold): Likewise.
4611
4612 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
4613
4614         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
4615         (rs6000_sched_groups): New variable.
4616         (processor_target_table): Add power5.
4617         (rs6000_override_options): Set rs6000_sched_insert_nops,
4618         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
4619         from rs6000_sched_groups.
4620         (output_cbranch): Use rs6000_always_hint.
4621         (rs6000_variable_issue): Use rs6000_sched_groups.
4622         (rs6000_adjust_cost): Add CPU_POWER5.
4623         (is_microcoded_insn): Use rs6000_sched_groups.
4624         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
4625         Return 2 for POWER5 cracked instructions.
4626         (is_cracked_insn): Use rs6000_sched_groups.
4627         (is_branch_slot_insn): Use rs6000_sched_groups.
4628         (rs6000_issue_rate): Add CPU_POWER5.
4629         (rs6000_sched_finish): Use rs6000_sched_groups.
4630         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
4631         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
4632         (DEFAULT_SCHED_COSTLY_DEP): Delete.
4633         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
4634         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
4635         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
4636         * config/rs6000/power5.md: New file.
4637         * doc/invoke.texi: Add power5 option.
4638
4639 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4640
4641         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
4642         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
4643         * doc/invoke.texi: Fix a typo.
4644
4645 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4646
4647         PR optimization/9707.
4648         * stmt.c (emit_case_nodes): Emit equality comparisons instead
4649         of recursing if both children are single-valued cases with no
4650         children.
4651
4652 2004-03-25  Paul Brook  <paul@codesourcery.com>
4653
4654         * config/arm/arm.c (vfp_print_multi): Remove.
4655         (arm_output_fldmx): New function.
4656         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
4657         (arm_expand_prologue): Update to match.
4658         (arm_get_vfp_saved_size): New Function.
4659         (arm_get_frame_offsets): Use it.
4660         (arm_output_epilogue): Use new functions.
4661
4662 2004-03-24  Richard Henderson  <rth@redhat.com>
4663
4664         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
4665         (reg_known_value, reg_known_value_size): Likewise; make static.
4666         (reg_known_equiv_p): Make static.
4667         (clear_reg_alias_info): Update for new indexing.
4668         (get_reg_known_value, set_reg_known_value): New.
4669         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
4670         (canon_rtx): Use them.
4671         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
4672         Don't play queer offsetting games with reg_known_value and
4673         reg_known_equiv_p.
4674         (end_alias_analysis): Free reg_known_value with gc.
4675         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
4676         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
4677         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
4678         functions instead.
4679
4680 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4681
4682         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
4683         config/i386/mmintrin.h: Update copyright.
4684
4685 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4686
4687         * configure.ac: Add --enable-werror-always (for top level bootstrap
4688         support).
4689         * configure: Regenerate.
4690
4691 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
4692
4693         * objc/objc-act.c (objc_comptypes): Treat comparisons
4694         between 'Class' and '<class> *' as explicitly invalid.
4695
4696 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
4697
4698         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
4699         (-fprofile-values): Add enabled with profile-{generate,use}.
4700         (-fvpt): Same.
4701         (-ftracer): Add enabled with profile-use.
4702         (-funit-at-a-time): Add enabled at -O2,-O3.
4703         (-funroll-loops): Add enabled with profile-use.
4704         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
4705         (max-gcse-passes): Mention default.
4706         (max-cse-path-length): Mention default.
4707
4708 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4709
4710         * Makefile.in (STRICT2_WARN): Reorder.
4711         * configure.ac: Check for -Wold-style-definition, and use it
4712         in strict1_warn if it's available.
4713         * configure: Regnerate.
4714
4715 2004-03-24  Paul Brook  <paul@nowt.org>
4716
4717         * config.gcc <arm>: Add --with-abi=
4718         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
4719         thumb_far_jump_used): Remove prototypes.
4720         (arm_needs_doubleword_align): Add prototype.
4721         (thumb_compute_initial_elimination_offset): Ditto.
4722         * config/arm/arm.c (arm_get_frame_offsets): New function.
4723         (use_return_insn, output_return_instruction, arm_output_epilogue,
4724         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
4725         arm_expand_prologue, thumb_expand_epilogue): Use it.
4726         (arm_abi, target_abi_name, all_arm_abis): New variables.
4727         (arm_override_options): Set them.  Set structure padding for AAPCS.
4728         (arm_return_in_memory): Update ABI check.
4729         (arm_init_cumulative_args): Initialize can_split.
4730         (arm_needs_doubleword_align): New function.
4731         (arm_function_arg): Don't split args after pushing to stack. Handle
4732         doubleword/even reg alignment.
4733         (arm_va_arg): Handle all doubleword aligned args.
4734         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
4735         on ABI, not CPU.
4736         (arm_compute_save_reg0_reg12_mask): Fix comment.
4737         (thumb_get_frame_size, thumb_get_frame_size): Remove.
4738         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
4739         value for alignment.
4740         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
4741         to match.
4742         (thumb_compute_initial_elimination_offset): New function.
4743         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
4744         unneccessary rounding.
4745         * config/arm/arm.h (target_abi_name): Declare.
4746         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
4747         arm_abi_type, ARM_DEFAULT_ABI): Define.
4748         (ARM_FLAG_ATPCS): Remove.
4749         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
4750         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
4751         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
4752         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
4753         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
4754         Contitionalize on ABI, not CPU.
4755         (struct arm_stack_offsets): Define.
4756         (struct machine_function): Add stack_offsets.  Remove frame_size.
4757         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
4758         pushed.
4759         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
4760         doubleword alignment.
4761         (THUMB_INITIAL_ELIMINATION_OFFSET,
4762         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
4763         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
4764         * config/arm/arm.md (align_8): Enable for all targets.
4765         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
4766         (ARM_DEFAULT_ABI): Define.
4767         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
4768         -mstructure-size-boundary.
4769
4770 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4771
4772         * configure.ac: Check for -Wno-variadic-macros; don't use
4773         -pedantic (in stage 1 or a simple 'make all') unless it's available,
4774         and if it's available, use it.  Also, clean up check for
4775         -Wno-long-long.
4776         * configure: Regenerate.
4777
4778 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4779
4780         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
4781         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
4782         (MULTILIB_DEFAULTS): Use it.
4783         (MIPS_CPU_STRING_DEFAULT): Remove.
4784         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
4785         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
4786         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
4787         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
4788         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
4789         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
4790         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
4791         accordingly.
4792
4793 2004-03-24  DJ Delorie  <dj@redhat.com>
4794             Richard Sandiford  <rsandifo@redhat.com>
4795
4796         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
4797         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
4798         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
4799         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
4800         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
4801         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
4802         if TARGET_FIX_VR4122.
4803         * config/mips/mips.md (define_attr length): Account for nops inserted
4804         after macc and dmult when using -mfix-vr4122-bugs.
4805         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
4806         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
4807         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
4808         * config/mips/vr4122-div.S: New file.
4809         * doc/invoke.texi: Document -mfix-vr4122-bugs.
4810
4811 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4812
4813         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
4814         (TARGET_MIPS4130): New macro.
4815         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
4816         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
4817         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
4818         with PROCESSOR_R4130.
4819         * config/mips/mips.md (define_attr cpu): Add r4130.
4820         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
4821
4822 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4823             Richard Sandiford  <rsandifo@redhat.com>
4824
4825         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
4826
4827 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
4828
4829         PR preprocessor/14438
4830         * cpplib.c (do_pragma): Remove line_change call after pragma
4831         handler.
4832
4833 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
4834
4835         * doc/extend.texi (ARM Built-in Functions): Replace with correct
4836         declarations.
4837
4838 2004-03-23  Roger Sayle  <roger@eyesopen.com>
4839
4840         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
4841         if flag_unsafe_math_optimizations.
4842         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
4843         and TARGET_80387 expand using truncdfsf2_noop pattern.
4844         (truncxfsf2): Likewise using truncxfsf2_noop.
4845         (truncxfdf2): Likewise using truncxfdf2_noop.
4846         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
4847
4848 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
4849
4850         * hooks.c (hook_constcharptr_tree_null): New hook.
4851         * hooks.h (hook_constcharptr_tree_null): New prototype.
4852         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
4853         * target.h (mangle_fundamental_type): New target hook.
4854         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
4855         target hook at rs6000_mangle_fundamental_type.
4856         (rs6000_mangle_fundamental_type): New function.
4857         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
4858
4859 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
4860
4861         PR 12267, 12391, 12560, 13129, 14114, 14133
4862         * c-tree.h: Forward declare struct c_binding.  Declare
4863         c_override_bindings_to_false.  Update prototypes.
4864         (struct lang_identifier): Update comments.  Change fields to be
4865         struct c_binding *.
4866         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
4867         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
4868         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
4869         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
4870         * c-common.h: Update prototypes.
4871         * c-decl.c (struct c_scope): Update commentary.  Remove names,
4872         names_last, parms, parms_last, tags, and shadowed fields.  Add
4873         bindings and depth fields.
4874         (scope_freelist): Move to more appropriate location.
4875         (c_print_identifier): Update for changes to struct lang_identifier.
4876         (objc_mark_locals_volatile): Update for new bindings structures.
4877         (global_bindings_p): Honor c_override_global_bindings_to_false.
4878         (pushlevel): Rename to push_scope; take no arguments; use the
4879         scope_freelist; initialize scope->depth and check for overflow.
4880         (poplevel): Rename to pop_scope; totally rewritten for new bindings
4881         structures.
4882         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
4883         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
4884         Improve some commentary.  Adjust handling of forward parm decls.
4885         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
4886         Preserve C_DECL_IN_EXTERNAL_SCOPE.
4887         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
4888         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
4889         decls.  Rewrite for new bindings structures.  Improve commentary.
4890         Eliminate the copy_node call.
4891         (implicit_decl_warning): Use the "diag" idiom (as seen in
4892         locate_old_decl) to reduce code duplication; call locate_old_decl
4893         if appropriate.  Relocate to remove need for forward declaration.
4894         (implicitly_declare): Adjust for new bindings structures.  Kludge
4895         around Objective-C not-really-builtin functions.
4896         (undeclared_variable): Improve diagnostics.  If current_function_decl
4897         is nonnull but current_function_scope is null, use current_scope.
4898         Use bind.
4899         (lookup_tag): Adjust for new bindings structures.  Kludge around
4900         Objective-C's tag declarations that wind up in the external scope.
4901         (lookup_name): Adjust for new bindings structures.  Kludge around
4902         c-common.c's pseudo-typedefs that wind up in the external scope.
4903         (lookup_name_current_level): Rename lookup_name_in_scope; take a
4904         second argument indicating the scope to examine; rewrite for
4905         new bindings structures.
4906         (c_init_decl_processing): Adjust for renamed functions.  Do not
4907         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
4908         First scope pushed is the external scope, not the global scope.
4909         (builtin_function): Use bind, not pushdecl.  Adjust other bits
4910         for new data structures.  Keep track of builtins that should be
4911         made visible automatically.
4912         (start_decl): Adjust diagnostics.  Remove unnecessary call to
4913         expand_decl.
4914         (grokparms): Return 0 if arg_types is error_mark_node.
4915         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
4916         reversed sense.  Rewrite for new bindings structures.  Do not
4917         leave any decls in the scope, to prevent pop_scope from doing
4918         contradictory things with them.
4919         (finish_struct, finish_enum): Remove redundant diagnostics.
4920         (build_enumerator): Don't cascade diagnostics for error_mark_node.
4921         Mark location where -pedantic changes the meaning of the program.
4922         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
4923         parameter decls into the function's scope structure using bind.
4924         Warn here about function definitions in the wrong style.
4925         Adjust diagnostics.
4926         (store_parm_decls): Correct the determination of whether a
4927         function was defined with a prototype.
4928         (c_write_global_declarations): Operate on all file decls and on
4929         the external scope.  Split body of the loop to...
4930         (c_write_global_declarations_1): ... this new function, to avoid
4931         code duplication.
4932         (truly_local_externals, first_builtin_decl, last_builtin_decl)
4933         (make_scope, pop_scope, in_parm_level_p, set_block)
4934         (any_external_decl, record_external_decl, bind_label, getdecls)
4935         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
4936         (c_reset_state): Delete.
4937         (visible_builtins, c_override_global_bindings_to_false)
4938         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
4939         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
4940         (external_scope, binding_freelist, bind, free_binding_and_advance)
4941         (push_file_scope, pop_file_scope): New.
4942         (pushtag, pushdecl_top_level, lookup_label, declare_label)
4943         (define_label, c_make_fname_decl, finish_decl)
4944         (mark_forward_parm_decls, build_compound_literal)
4945         (grokdeclarator, start_function, check_for_loop_decls)
4946         (identifier_global_value, record_builtin_type): Minor adjustments
4947         for new bindings structures.  Improve diagnostics and commentary.
4948         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
4949         pushlevel/poplevel respectively.
4950         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
4951         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
4952         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
4953         correct loop over multiple translation units; call fatal_error if
4954         requested to compile more than one file at once.  (This disables
4955         IMA temporarily - an up-front error being preferable to a crash.)
4956         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
4957         (all actions): Adjust calls to pushlevel/poplevel.
4958         (parsing_iso_function_signature): Delete.
4959         (extdef_1): Fold into extdef.
4960         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
4961         warn here about function definitions in the wrong style.
4962         (after_tyle_declarator, parm_declarator_starttypename)
4963         (parm_declarator_nostarttypename, notype_declarator): Remove
4964         commented-out productions.
4965         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
4966         an empty TREE_LIST node.  Adjust calls to get_parm_info.
4967         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
4968         to suppress -Wold-style-definition after this error.
4969         (c_parse_file): Don't clear the binding stack or call
4970         finish_fname_decls here.  Correct comment.
4971         * c-typeck.c (same_translation_unit_p): Export.
4972         (common_type): Use c_override_global_bindings_to_false, not
4973         pushlevel/poplevel/declare_parm_level.
4974         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
4975         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
4976         and LANG_HOOKS_GETDECLS with do-nothing stubs.
4977         * objc/objc-lang.c: Likewise.
4978         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
4979         get_parm_info.
4980         (OBJC_VOID_AT_END): Delete; replace all uses
4981         with void_list_node.
4982         (generate_forward_declaration_to_string_table): Delete.
4983         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
4984
4985         * coverage.c (create_coverage): Don't pushdecl anything.
4986         * langhooks.c (lhd_clear_binding_stack): Call
4987         lang_hooks.decls.poplevel, not poplevel.
4988         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
4989         circular list rather than going into an infinite loop.
4990
4991 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
4992
4993         * optabs.c (expand_binop): When synthesizing double word rotates
4994         from single word shifts, use a new register target if the provided
4995         target is not a REG already.
4996
4997 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4998
4999         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
5000         * c-common.c (handle_mode_attribute): Add extra arg to
5001         build_pointer_type_for_mode and build_reference_type_for_mode.
5002         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5003         for INTEGER_CST.
5004         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
5005         Chain pointers via TYPE_NEXT_PTR_TO.
5006         (build_reference_type_for_mode): Similarly.
5007         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
5008         and build_reference_type_for_mode.
5009         (tree_check4_failed): New function.
5010         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
5011         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
5012         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
5013         Add check.
5014
5015 2004-03-23  Roger Sayle  <roger@eyesopen.com>
5016
5017         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
5018         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
5019         when both A and B are nonnegative.
5020         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
5021         nonzero.
5022
5023 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5024
5025         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
5026         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
5027
5028 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5029
5030         PR optimization/14669
5031         * fold-const.c (fold): Only unwiden integer comparisons for equality
5032         and inequality operators, or when the signedness doesn't change.
5033
5034 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
5035
5036         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
5037         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
5038         * config/sparc/t-linux: New file.
5039
5040 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
5041
5042         * gcse.c (can_assign_to_reg_p): New function, split out from...
5043         (want_to_gcse_p): ...here.
5044         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
5045         the rhs of a store.
5046
5047 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
5048
5049         * c-typeck.c (same_translation_unit_p): Fix pasto.
5050
5051 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
5052
5053         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
5054         (PARAM_MAX_SCHED_REGION_INSNS): New.
5055         * sched-rgn.c: Include params.h
5056         (MAX_RGN_BLOCKS): Delete.
5057         (MAX_RGN_INSNS): Delete.
5058         (too_large): Return bool.  Convert to PARAM_VALUE.
5059         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
5060         * doc/invoke.texi (param): Document max-sched-region-blocks and
5061         max-sched-region-insns.
5062
5063 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5064
5065         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
5066         for base types.
5067
5068 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
5069
5070         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
5071         change.
5072
5073 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
5074
5075         PR c/14069
5076         * c-decl.c (finish_struct): Change type of incorrect flexible array
5077         field into error_mark_node.
5078
5079 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
5080
5081         PR target/14580
5082         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
5083         who are not local for Darwin PIC.
5084
5085 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
5086
5087         * regrename.c (regrename_optimize): Set regs_ever_live for all
5088         registers introduced as replacement.
5089
5090 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
5091
5092         PR middle-end/14470
5093         * expr.c (mark_queue): New function.
5094         (emit_insns_enqueued_after_mark): New function replacing
5095         emit_queue.  Clear the body of emitted queued insns.
5096         (emit_queue): Call emit_insns_enqueued_after_mark.
5097         (store_expr): Mark the increment queue on entry.  Emit
5098         only the incrementations queued when expanding the source.
5099
5100 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
5101
5102         * configure.ac: Allow --disable-coverage-flags (for the future benefit
5103         of top level bootstrap, and consistency).  Reindent.
5104         * configure: Regenerate.
5105
5106 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
5107
5108         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
5109         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
5110         unnecessary casts.
5111
5112 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
5113
5114         PR target/14291
5115         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
5116         __MINGW32__.
5117
5118 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5119
5120         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
5121         to nonimmediate_operand.
5122         ("*doloop_di"): Likewise.
5123
5124 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
5125
5126         * real.h (struct real_value): Use the same type for all
5127         bitfields.  Rename exp to uexp.
5128         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
5129         Adjust all uses of exp...
5130         * builtins.c: ... here, ...
5131         * emit-rtl.c: ... here, and ...
5132         * real.c: ... and here.
5133
5134 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5135
5136         * pretty-print.c (pp_base_maybe_space): New function.
5137         * pretty-print.h (pp_base_maybe_space): Declare.
5138         (pp_maybe_space): New macro.
5139
5140 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5141
5142         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
5143
5144 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5145
5146         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
5147         of using register multiplication cost.
5148         (expand_mult): Adapt choose_mult_variant call.
5149         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
5150         of MODE; pass appropriate cost bound.  Adjust result when
5151         performing signed multiplication by a negative constant.
5152         Don't use intermediate modes larger than word_mode.
5153
5154 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5155
5156         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
5157         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
5158         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
5159         * explow.c (expr_size): Likewise.
5160         * expr.h (placeholder_list, find_placeholder): Deleted.
5161         * expr.c (store_constructor): Likewise.
5162         (get_inner_reference): Likewise.  Also don't call find_placeholder.
5163         (placeholder_list, find_placeholder): Deleted.
5164         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
5165         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
5166         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
5167         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
5168         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
5169         Likewise.
5170         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
5171         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
5172         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
5173         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
5174         Clean up by using first_rtl_op.
5175         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
5176         (substitute_placeholder_in_expr): New function.
5177         * tree.def (WITH_RECORD_EXPR): Deleted.
5178         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
5179         (substitute_placeholder_in_expr): New.
5180
5181 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
5182
5183         * dojump.c (prefer_and_bit_test): Fix which part of
5184         the and_test is replaced.
5185
5186 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
5187
5188         * frontends.texi: Add missing line.
5189
5190 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
5191             Chris Devers  <cdevers@pobox.com>
5192             Joseph S. Myers  <jsm@polyomino.org.uk>
5193
5194         * doc/frontends.texi: Rewrite.
5195         * doc/gcc.texi: Update last modification date.
5196
5197 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
5198
5199         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
5200         message before redirecting the edge.
5201
5202 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5203
5204         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
5205         flag.
5206         * explow.c (force_not_mem): Set REG_POINTER flag according to
5207         MEM_POINTER one.
5208         * rtl.h (MEM_POINTER): New macro.
5209         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
5210         for MEM_POINTER.
5211
5212 2004-03-20  Roger Sayle  <roger@eyesopen.com>
5213
5214         PR target/13889
5215         * cse.c (fold_rtx): Avoid substituting constants into unary
5216         conversion operations.
5217
5218 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5219
5220         * fold-const.c (fold): Replace "expr" with "t".
5221
5222 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
5223
5224         PR c/12373
5225         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
5226         DECL_ORIGINAL_TYPE if there isn't one.
5227
5228 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5229
5230         * fold-const.c (fold): Replace "final_type" with "type".
5231         Remove variable "final_type".
5232
5233 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5234
5235         * fold-const.c (fold): Constify "type".
5236         Replace "TREE_TYPE (t)" with "type".
5237
5238 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5239
5240         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
5241         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
5242         via (*targetm.foo) () with targetm.foo ().
5243
5244 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
5245
5246         PR other/14630
5247         * doc/install.texi: Add info directory category and entry.
5248
5249 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5250
5251         * fold-const.c (fold): Replace "t" with "tem" where it is used
5252         as a temporary variable.  Remove "orig_t" and all of its uses.
5253
5254 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5255
5256         * fold-const.c (fold): Remove variable "invert".
5257         Move the handling of relational expressions that can be folded
5258         to a constant ...
5259         (fold_relational_const): ... here.
5260         (tree_expr_nonzero_p): New.
5261
5262 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
5263
5264         PR c/14635
5265         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
5266         DEF_GCC_BUILTIN.
5267
5268 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
5269
5270         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
5271         (GTFILES): Add $(srcdir)/dojump.h.
5272         (gt-dojump.h): New dependency.
5273         * dojump.c (and_reg, and_test, shift_test): New static variables.
5274         (prefer_and_bit_test): New function.
5275         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
5276
5277 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5278
5279         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
5280         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
5281         reorg.c, tree.h: Fix comment typos.
5282
5283 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
5284
5285         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
5286         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
5287         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
5288         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
5289         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
5290         vmsdbgout.c: Replace calls via (*targetm.foo) () with
5291         targetm.foo ().
5292
5293 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
5294
5295         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
5296         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
5297         always_inline attribute.
5298         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
5299         Treat expansion as completed even if literal argument is
5300         invalid (so that other expansions are not tried in vain).
5301
5302 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
5303
5304         * loop-doloop.c (add_test): Replace GEN_INT (0) with
5305         const0_rtx.
5306
5307 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
5308
5309         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
5310         ...
5311         (fold_abs_const): ... here.
5312
5313 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5314
5315         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
5316
5317 2004-03-19  Denis Chertykov  <denisc@overta.ru>
5318
5319         PR target/11520
5320         * config/avr/avr.md ("call_insn"): Handle explicit integer
5321         specially.
5322         (call_value_insn): Likewise.
5323
5324 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5325
5326         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
5327
5328 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
5329
5330         * fold-const.c (negate_expr): Move the handling of constants
5331         ...
5332         (fold_negate_const): ... here.
5333
5334 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5335
5336         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
5337         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
5338         * tree.c (debug_no_type_hash): Deleted.
5339         (type_hash_canon): Abort if passed a variant.
5340         Check lang_hooks.types.hash_types.
5341         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
5342         (build_array_type): Remove unnecessary allocation of pointer type.
5343         (build_complex_type): Properly qualify resulting type.
5344
5345 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
5346
5347         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
5348
5349 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
5350
5351         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
5352         (expand_mult): ...here.
5353         (extract_high_half): New, split out from expand_mult_highpart.
5354         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
5355         (expand_highpart): Evaluate the cost of a shift/add sequence,
5356         then see if any of the specialized optabs are cheaper.
5357
5358 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
5359
5360         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
5361
5362 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5363
5364         * convert.c (convert_to_real): Add more math builtins.
5365
5366 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5367
5368         * convert.c (convert_to_real): Reformat using switch stmt.
5369
5370 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
5371
5372         * c-common.c (pointer_int_sum): Do not complain about using
5373         pointers to pointers-to-members.
5374
5375 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
5376
5377         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
5378         have moved to the target hooks structure".
5379
5380 2004-03-18  James E Wilson  <wilson@specifixinc.com>
5381
5382         * config/mips/mips.md (type): Split move into arith and fmove.  Split
5383         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
5384         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
5385         Likewise.
5386         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
5387         Likewise.
5388         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
5389         rm7_fp_quick): Likewise.
5390         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
5391         rm9k_fquick): Likewise.
5392         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
5393         Likewise.
5394         (ir_sr70_icmp): Delete.
5395
5396 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5397
5398         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
5399         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
5400         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
5401         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
5402         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
5403         Protect with proper check.
5404         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
5405         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
5406         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
5407         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
5408         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
5409         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
5410         not TYPE_FIELDS.
5411         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
5412
5413 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
5414
5415         * gcse.c (eliminate_partially_redundant_loads): Reject change if
5416         dest is set between beginning and current insn.
5417
5418 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
5419
5420         * c-decl.c (grokdeclarator): Do not complain about redeclaring
5421         visible "static" identifiers "extern" in a local scope.
5422         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
5423         post-increments/decrements.
5424
5425 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
5426
5427         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
5428         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
5429         (xtensa_va_start): Remove assignment to current_function_arg_words.
5430
5431 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
5432
5433         * alias.c (record_set): Detect the case where a register is assigned
5434         a new value that has the same base term as the old one.
5435
5436 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5437
5438         * doloop.c: Removed.
5439         * loop-doloop.c: New file.
5440         * Makefile.in (doloop.o): Remove.
5441         (loop-doloop.o): New.
5442         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
5443         * cfgloopanal.c (get_loop_level): New function.
5444         * loop-iv.c (iv_number_of_iterations): Handle case when loop
5445         is leaved immediatelly.
5446         * loop.c (strength_reduce): Do not call doloop optimization.
5447         * loop.h (LOOP_BCT): Removed.
5448         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
5449         (rest_of_handle_loop2): Call doloop_optimize_loops.
5450         (rest_of_compilation): Test for optimizations moved to
5451         rest_of_handle_loop2.
5452
5453 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
5454
5455         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
5456         for mixed mode.
5457         (rs6000_emit_prologue): Ditto.
5458         (rs6000_emit_epilogue): Ditto.
5459         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
5460         macro for mixed mode.
5461
5462 2004-03-18  Jan Hubicka  <jh@suse.cz>
5463
5464         * predict.c (propagate_freq): Compute correctly frequency of
5465         EXIT_BLOCK.
5466
5467 2004-03-17  Eric Christopher  <echristo@redhat.com>
5468
5469         * builtins.c (apply_args_size): Use reg_raw_mode.
5470         (apply_result_size): Ditto.
5471
5472 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5473
5474         PR target/14620
5475         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
5476
5477 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
5478
5479         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
5480         32-bit builds when defaulting to 32-bit.
5481
5482 2004-03-17  Jan Hubicka  <jh@suse.cz>
5483
5484         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
5485         array.
5486
5487 2004-03-17  James E Wilson  <wilson@specifixinc.com>
5488
5489         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
5490         (hazard_nop): Change type to nop.
5491         (type): Split arith into arith, shift, slt, clz.  Delete darith.
5492         Fix all uses.  Change arith to multi if more than one insn emitted.
5493         * config/mips/5400.md (ir_vr54_arith): Likewise.
5494         * config/mips/5500.md (ir_vr55_arith): Likewise.
5495         * config/mips/7000.md (rm7_int_other): Likewise.
5496         * config/mips/9000.md (rm9k_int): Likewise.
5497         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
5498
5499 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
5500
5501         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
5502         to hold the subtype tree instead of recomputing it several times.
5503
5504 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
5505
5506         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
5507         CC_INVERT.
5508         * config/mn10300/mn10300.md (cc): Remove "invert".
5509
5510 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5511
5512         * builtins.c (integer_valued_real_p): Add builtin rint.
5513         (fold_builtin): Likewise.
5514         * convert.c (convert_to_real): Likewise.
5515
5516         * convert.c (convert_to_real): Fix typos in `long double'
5517         builtins.
5518
5519 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
5520
5521         PR c++/14481
5522         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
5523         generated COMPOUND_EXPRs.
5524
5525 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5526
5527         * config/h8300/t-rtems (h8300-*-rtems*): New.
5528
5529 2004-03-16  Eric Christopher  <echristo@redhat.com>
5530
5531         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
5532
5533 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5534
5535         * config/i386/i386-protos.h: Add a prototype for
5536         ix86_reverse_condition.
5537         * config/i386/i386.c (ix86_reverse_condition): New.
5538         * config/i386/i386.h (REVERSE_CONDITION): Use
5539         ix86_reverse_condition.
5540         * config/i386/i386.md: Use ix86_reverse_condition instead of
5541         REVERSE_CONDITION.
5542
5543 2004-03-16  J. Brobecker  <brobecker@gnat.com>
5544
5545         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
5546
5547 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5548
5549         PR bootstrap/12974
5550         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
5551
5552 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5553
5554         * c-common.c (c_common_type_for_mode): Build vector types on
5555         demand.
5556         (handle_mode_attribute): Deprecate using the mode attribute
5557         to create vector types.  Fix indentation.
5558         (vector_type_node_list): Remove.
5559         (handle_vector_size_attribute): Create vector types on demand.
5560         Strip a NON_LVALUE_EXPR from the attribute if there is one.
5561         * c-typeck.c (comptypes): Make vector types compatible if they
5562         have the same underlying mode.
5563         (convert_for_assignment): Use comptypes to convert between
5564         vector types.
5565         * tree.c (build_common_tree_nodes_2): Do not create vector types.
5566         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
5567         vector types.
5568         * tree.h: Remove vector types.
5569         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
5570         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
5571         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
5572         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
5573         * doc/extend.texi (Vector Types): Document how to use the
5574         vector_size attribute to create vectors, rather than mode.
5575
5576         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
5577         * config/i386/emmintrin.h: Likewise.
5578         * config/i386/mmintrin.h: Likewise.
5579         * config/i386/xmmintrin.h: Likewise.
5580         * config/sh/ushmedia.h: Likewise.
5581
5582 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5583
5584         * config/freebsd-spec.h, config/arc/arc-protos.h,
5585         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
5586         config/arm/linux-gas.h, config/arm/semi.h,
5587         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
5588         config/ia64/freebsd.h, config/mips/7000.md,
5589         config/mips/9000.md, config/ns32k/ns32k-protos.h,
5590         config/sparc/pbd.h: Update copyright.
5591
5592 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5593
5594         PR target/14577
5595         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
5596
5597 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5598
5599         * combine.c (combine_simplify_rtx): Remove the "last"
5600         parameter and its documentation.  Adjust recursive calls.
5601         (simplify_logical): Always perform the only simplification
5602         controlled by "last", if the simplified expression is
5603         actually different.
5604         (try_combine): Do not pass the "last" parameter to
5605         combine_simplify_rtx.
5606
5607 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
5608
5609         PR target/14599
5610         * config/mips/mips.md (UNSPEC_GP): New constant.
5611         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
5612         an UNSPEC instead of (reg $gp).
5613         (mips16_gp_pseudo_reg): Change accordingly.
5614         (print_operand): Print $gp directly when handling CONST_GP_P.
5615
5616 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5617
5618         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
5619         * longlong.h: Make code 68060 clean when compiling for m68060.
5620
5621 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5622
5623         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
5624         * doc/md.texi: Clarify description of "i" constraint.
5625
5626 2004-03-15  James E Wilson  <wilson@specifixinc.com>
5627
5628         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
5629         Split store into store, fpstore, fpidxstore.  Fix all uses.
5630         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
5631         Likewise.
5632         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
5633         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
5634         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
5635         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
5636         ir_sr70_fstore): Likewise.
5637
5638 2004-03-15  Richard Henderson  <rth@redhat.com>
5639
5640         PR middle-end/14535
5641         * except.c (collect_one_action_chain): Record action for cleanup
5642         outer of exception spec.
5643
5644 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
5645
5646         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5647         Fix the check for abort and only do the mmap if we can.
5648
5649 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
5650
5651         * config/sparc/sparc.h: Rework comments about the code model
5652         in 64-bit environment and the mode 'Pmode'.
5653         * doc/invoke.texi (SPARC options): Rework description of the
5654         different code models supported in 64-bit environment.
5655
5656 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5657
5658         * defaults.h (REVERSIBLE_CC_MODE): Define.
5659         * jump.c (reversed_comparison_code_parts): Don't check if
5660         REVERSIBLE_CC_MODE is defined.
5661
5662 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5663
5664         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
5665         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
5666         hosthooks.h, params.h, ra-colorize.c, web.c,
5667         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
5668         config/avr/avr-protos.h, config/avr/avr.md,
5669         config/fr30/fr30-protos.h, config/fr30/fr30.md,
5670         config/h8300/fixunssfsi.c, config/i386/darwin.h,
5671         config/i386/freebsd.h, config/i386/freebsd64.h,
5672         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
5673         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
5674         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
5675         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
5676         config/pa/pa64-regs.h, config/rs6000/aix41.h,
5677         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
5678         config/sparc/aout.h, config/sparc/freebsd.h,
5679         config/sparc/litecoff.h, config/vax/vax-protos.h,
5680         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
5681         copyright.
5682
5683 2004-03-15  Paul Brook  <paul@codesourcery.com>
5684
5685         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
5686
5687 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5688
5689         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
5690         (pp_c_cv_qualifier): Document.
5691         (pp_c_space_for_pointer_operator): Likewise.
5692         (pp_c_integer_constant): Likewise.
5693         (pp_c_identifier): Likewise.
5694         (pp_c_init_declarator): Don't print function body.
5695
5696 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5697
5698         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
5699         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
5700         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
5701         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
5702         wording and grammar.
5703
5704 2004-03-14  Roger Sayle  <roger@eyesopen.com>
5705
5706         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
5707         with lang_hooks.foo ().
5708         * builtins.c (expand_builtin_va_arg): Likewise.
5709         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
5710         c_common_type_for_mode, c_common_nodes_and_builtins,
5711         handle_mode_attribute, handle_vector_size_attribute): Likewise.
5712         * c-convert.c (convert): Likewise.
5713         * c-format.c (check_format_types): Likewise.
5714         * c-objc-common.c (c_tree_printer): Likewise.
5715         * c-typeck.c (build_unary_op, build_conditional_expr,
5716         build_binary_op): Likewise.
5717         * calls.c (try_to_integrate, expand_call,
5718         emit_library_call_value_1): Likewise.
5719         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
5720         Likewise.
5721         * cgraphunit.c (record_call_1, cgraph_analyze_function,
5722         cgraph_expand_function): Likewise.
5723         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
5724         * coverage.c (build_fn_info_type, build_ctr_info_type,
5725         build_gcov_info, create_coverage): Likewise.
5726         * dbxout.c (dbxout_init): Likewise.
5727         * diagnostic.c (diagnostic_report_current_function): Likewise.
5728         * dojump.c (do_jump): Likewise.
5729         * dwarf2out.c (dwarf2_name): Likewise.
5730         * except.c (init_eh): Likewise.
5731         * explow.c (expr_size, int_expr_size): Likewise.
5732         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
5733         Likewise.
5734         * expr.c (store_expr, store_constructor, safe_from_p,
5735         expand_expr_real, do_store_flag, try_casesi): Likewise.
5736         * function.c (push_function_context_to, pop_function_context_from,
5737         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
5738         put_var_into_stack, allocate_struct_function, current_function_name):
5739         Likewise.
5740         * integrate.c (copy_decl_for_inlining, expand_inline_function):
5741         Likewise.
5742         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
5743         lhd_print_error_function): Likewise.
5744         * opts.c (handle_option, decode_options): Likewise.
5745         * passes.c (open_dump_file): Likewise.
5746         * print-tree.c (print_node): Likewise.
5747         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
5748         expand_decl_cleanup, emit_case_nodes): Likewise.
5749         * stor-layout.c (variable_size): Likewise.
5750         * toplev.c (announce_function, wrapup_global_declarations,
5751         check_global_declarations, compile_file, default_tree_printer,
5752         process_options, lang_dependent_init, finalize): Likewise.
5753         * tree-dump.c (dequeue_and_dump): Likewise.
5754         * tree-inline.c (remap_decl, remap_block, copy_body_r,
5755         initialize_inlined_parameters, declare_return_variable,
5756         inlinable_function_p, expand_call_inline, optimize_inline_calls,
5757         walk_tree, copy_tree_r): Likewise.
5758         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5759         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
5760         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
5761         variably_modified_type_p, dump_tree_statistics): Likewise.
5762         * varasm.c (assemble_variable, compare_constant, copy_constant,
5763         force_const_mem, compute_reloc_for_constant, output_constant,
5764         output_addressed_constants, initializer_constant_valid_p): Likewise.
5765
5766 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
5767
5768         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
5769
5770 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
5771
5772         * doc/install.texi: Reflect autoconf and automake version for
5773         libffi. Update autoconf version to 2.59.
5774
5775 2004-03-13  Roger Sayle  <roger@eyesopen.com>
5776
5777         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
5778         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
5779         make_range, build_range_check, fold_range_test, unextend,
5780         constant_boolean_node, fold_binary_op_with_conditional_arg,
5781         fold_truthop, fold_mathfn_compare, fold_inf_compare,
5782         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
5783         with lang_hooks.foo ().
5784
5785 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
5786
5787         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
5788
5789 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
5790
5791         * doc/install.texi: Note status of -fnew-ra.
5792
5793 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
5794
5795         PR middle-end/14470
5796         * expr.c (store_expr): Call emit_queue before generating the move
5797         from the temporary to the original target.  Protect the temporary
5798         from emit_queue.
5799
5800 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
5801
5802         PR target/14533
5803         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
5804         other than UNSPEC_GOTOFF.
5805
5806 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
5807
5808         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
5809         to arm_legitimate_index_p.  Update all callers with SET as default
5810         value.
5811         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
5812         range if OUTER is a sign-extend operation on QImode.  Correctly
5813         reject shift operations on sign-extended QImode addresses.
5814         (bad_signed_byte_operand): Delete.
5815         (arm_extendqisi_mem_op): New function.
5816         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
5817         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
5818         constraints.
5819         (CONSTRAINT_LEN): New.
5820         (EXTRA_CONSTRAINT): Delete.  Replace with...
5821         (EXTRA_CONSTRAINT_STR): ... this.
5822         (PREDICATE_CODES): Remove bad_signed_byte_operand.
5823         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
5824         is now always default.
5825         (define_splits for bad sign-extend loads): Delete.
5826         (arm_extendqisi, arm_extendqisi_v5): Likewise.
5827         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
5828         Rework 'U' constraint to 'Uv'.
5829         * arm-protos.h: Remove bad_signed_byte_operand.  Add
5830         arm_extendqisi_mem_op.
5831         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
5832         Add Uq constraint.
5833
5834 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
5835
5836         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
5837         with targetm version.
5838
5839         PR target/14567
5840         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
5841         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
5842         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
5843         Update all users of RS6000_ARG_SIZE.
5844         (function_arg_advance): Count fregno using mode size.
5845         (function_arg): Handle long double split over regs and memory.
5846         (function_arg_partial_nregs): Likewise.
5847         (rs6000_va_arg): Repackage complex args.
5848
5849 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
5850
5851         PR target/14047
5852         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
5853         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
5854         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
5855
5856 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
5857
5858         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
5859         prototype.
5860         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
5861         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5862
5863 2003-03-12  Andrew Pinski  <apinski@apple.com>
5864
5865         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5866         Use ret instead of result. Use addr instead of base.
5867
5868 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
5869
5870         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
5871         fixes required by libstdc++ and update installation instructions
5872         for libstdc++.a.
5873
5874 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
5875
5876         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
5877         leading '@' on fastcall symbols before stripping suffix.
5878
5879 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5880
5881         * combine.c (unmentioned_reg_p): New function to check whether an
5882         expression is a "specialization" of another, i.e. that there are
5883         no registers or memory references mentioned in the first that don't
5884         appear in the second.
5885         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
5886         (combine_instructions): Also try combining instructions using the
5887         REG_EQUAL note from a preceding log-linked instruction.
5888
5889 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5890
5891         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
5892
5893 2004-03-12  Matt Austern  <austern@apple.com>
5894
5895         * target.h (struct gcc_target): New target hook, unwind_label.
5896         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
5897         * output.h (default_emit_unwind_label): New function.
5898         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
5899         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
5900         (TARGET_SUPPORTS_HIDDEN): New target macro.
5901         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
5902         that corresponds to this FDE.
5903         (FRAME_BEGIN_LABEL): Allow target to override default label.
5904         (output_call_frame_info): If FDEs are linknonce, then use extra
5905         indirection for FDE encoding, output a label for each FDE, and
5906         output an empty label for each function without an FDE.
5907         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
5908         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
5909         decls with DECL_ONE_ONLY set, if that macro is defined.
5910         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
5911         for a SUPPORTS_ONE_ONLY target.
5912         * config/darwin-protos.h (darwin_unique_section): Declare.
5913         (darwin_asm_named_section): Likewise.
5914         (darwin_section_type_flags): Likewise.
5915         (darwin_non_lazy_pcrel): Likewise.
5916         (darwin_emit_unwind_label): Likewise.
5917         (darwin_make_decl_one_only): Likewise.
5918         * config/darwin.c (machopic_finish): Get rid of tweak that
5919         eliminate stubs for symbols that are defined.
5920         (darwin_encode_section_info): Don't treat weak functions as defined.
5921         (darwin_make_decl_one_only): Define.
5922         (darwin_asm_named_section): Likewise.
5923         (darwin_section_type_flags): Likewise.
5924         (darwin_unique_section): Likewise.
5925         (darwin_emit_unwind_label): Likewise.
5926         (darwin_non_lazy_pcrel): Likewise.
5927         (darwin_asm_output_dwarf_delta): Difference between two labels is
5928         local only if both labels are local.
5929         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
5930         (ASM_MAKE_LABEL_LINKONCE): Likewise.
5931         (TARGET_SUPPORTS_HIDDEN): Likewise.
5932         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
5933         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
5934         (FRAME_BEGIN_LABEL): Likewise.
5935         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
5936         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5937         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
5938         (TARGET_ASM_UNIQUE_SECTION): Define.
5939         (EH_FRAME_SECTION_NAME): Define.
5940         (EH_FRAME_SECTION_ATTR): Likewise.
5941         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
5942         (TARGET_ASM_NAMED_SECTION): Likewise.
5943         (TARGET_SECTION_TYPE_FLAGS): Likewise.
5944         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
5945         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
5946         TARGET_ASM_EMIT_UNWIND_LABEL.
5947
5948 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5949
5950         * builtins.c (expand_builtin_mathfn): Add pow10* to the
5951         existing exp10* case.
5952         (expand_builtin): Likewise.
5953
5954 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5955
5956         * doc/tm.texi (registers) <Values in Registers>: Add
5957         entry for REGMODE_NATURAL_SIZE.
5958
5959 2004-03-12  Richard Henderson  <rth@redhat.com>
5960
5961         PR target/14547
5962         * target.h (struct gcc_target): Move calls substructure before
5963         booleans.  Add split_complex_arg.
5964         * function.c (assign_parms, split_complex_args): Use it.
5965         * calls.c (expand_call): Likewise.
5966         (split_complex_values): Likewise.  Check for splittable types
5967         before allocating memory.
5968         (split_complex_types): Likewise.
5969         * system.h (SPLIT_COMPLEX_ARGS): Poison.
5970         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
5971         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
5972         * config/alpha/alpha.c (alpha_split_complex_arg): New.
5973         (TARGET_SPLIT_COMPLEX_ARG): New.
5974         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
5975         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
5976         (rs6000_override_options): Zap it for non-AIX.
5977         (rs6000_function_value): Use targetm.calls.split_complex_arg.
5978         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
5979         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
5980         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
5981         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
5982         SPLIT_COMPLEX_ARGS entry.
5983
5984 2004-03-11  Richard Henderson  <rth@redhat.com>
5985
5986         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
5987         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
5988         (alpha_emit_xfloating_arith): Update to match.
5989         (alpha_emit_xfloating_compare): Likewise.
5990         (alpha_emit_xfloating_cvt): Likewise.
5991         (alpha_emit_xfloating_libcall): Take already built symbol,
5992         mark call const.
5993         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
5994         op1 in a register.
5995
5996 2004-03-11  Richard Henderson  <rth@redhat.com>
5997
5998         PR target/14539
5999         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
6000
6001         * simplify-rtx.c (simplify_relational_operation): Fix typo.
6002
6003 2004-03-11  Richard Henderson  <rth@redhat.com>
6004
6005         PR middle-end/14477
6006         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
6007
6008 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6009
6010         PR target/14262
6011         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
6012         defined, pass small BLKmode values in registers in the low-order part.
6013
6014 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
6015
6016         * combine.c (if_then_else_cond): Check for NULL return value of
6017         simplify_gen_subreg.
6018
6019 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6020
6021         PR target/14496
6022         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
6023         TARGET_SINGLE_FLOAT.
6024
6025 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
6026
6027         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
6028         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
6029         * config/ia64/ia64.c (ia64_init_libfuncs): New.
6030         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
6031
6032 2004-03-11  Roger Sayle  <roger@eyesopen.com>
6033
6034         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
6035         -((int)X>>C) where C is an integer constant one bit less than the
6036         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
6037         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
6038
6039         * simplify-rtx.c (simplify_unary_operation): Also implement the
6040         above transformations at the RTL level.
6041
6042 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
6043
6044         * real.c (encode_ibm_extended): Do round low word.
6045
6046 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
6047
6048         * config/arm/arm.md (is_xscale): Comment this attribute and move
6049         it a bit further up in the file, closer to related attributes.
6050
6051 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
6052
6053         * config/host-solaris.c (sol_gt_pch_use_address): Add
6054         missing terminating marker to comment.
6055
6056 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
6057
6058         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
6059         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
6060         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
6061         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
6062         move_operand as source predicate in all cases.
6063         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
6064         Test reg_or_0_operand.  Use move_operand as source predicate.
6065         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
6066         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
6067         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
6068         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
6069         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
6070         Use move_operand as source predicate.  Remove 'K' constraint.
6071         (*movqi_internal): Likewise movqi_internal.
6072         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
6073         reg_or_0_operand.  Use move_operand as source predicate.
6074         (*movsf_softfloat): Likewise movsf_internal2.
6075         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
6076         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
6077         (*movdf_softfloat): Likewise movdf_internal2.
6078         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
6079         for DImode if !TARGET_64BIT.
6080         (mips_legitimize_move): Simplify accordingly.
6081
6082 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
6083
6084         PR/14362
6085         * var-tracking.c (struct variable_def): Added field refcount.
6086         (variable_htab_free): Decrease the refcount and delete variable
6087         only if there are no more references.
6088         (unshare_variable): New function.
6089         (vars_copy_1): Increase refcount instead of copying the variable.
6090         (variable_union): Share the variables where possible, unshare
6091         the variables if needed.
6092         (variable_different_p): Return false if var1 and var2 are
6093         the same structure.
6094         (variable_was_changed): Init the refcount of new variable.
6095         (set_frame_base_location): Unshare variable if needed.
6096         (set_variable_part): Init the refcount of new variable.
6097         Unshare the variables if needed.
6098         (delete_variable_part): Unshare the variables if needed.
6099         (emit_notes_for_differences_1): Init the refcount of new variable.
6100         (vt_add_function_parameters): Do not add function parameters to
6101         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
6102         (vt_initialize): Do not add frame_base_decl to IN set of
6103         ENTRY_BLOCK_PTR because it is unused anyway.
6104
6105 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
6106
6107         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
6108         (vars_copy): Likewise.
6109         (variable_union): Likewise.
6110         (set_variable_part): Likewise.
6111         (delete_variable_part): Likewise.
6112
6113 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
6114
6115         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
6116         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
6117         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
6118         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
6119         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
6120         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
6121         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
6122         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
6123         config/stormy16/stormy16.c: Fix comment typos and formatting.
6124
6125 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
6126
6127         * configure: Regenerate, since I forgot to while committing Paolo's
6128         changes.
6129
6130 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
6131
6132         PR ada/14131
6133         Move language detection to the top level.
6134         * configure.ac: Remove code to detect languages,
6135         it now lives exclusively in the top level.
6136         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
6137         top level, renamed to ACX_PROG_GNAT.
6138
6139 2004-03-10  Richard Henderson  <rth@redhat.com>
6140
6141         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
6142         extra arguments.
6143         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
6144         and host_xmake_file fragments.
6145         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
6146         (gt_pch_restore): Similarly for gt_pch_use_address.
6147         (default_gt_pch_get_address): New.
6148         (mmap_gt_pch_get_address): Split out of gt_pch_save.
6149         (default_gt_pch_use_address): Split out of gt_pch_restore.
6150         (mmap_gt_pch_use_address): Likewise.
6151         * hooks.c (hook_voidp_size_t_null): Remove.
6152         (hook_bool_voidp_size_t_false): Remove.
6153         * hooks.h: Likewise.
6154         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
6155         default_ or mmap_ definitions.
6156         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
6157         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
6158         and gt_pch_use_address.
6159         * config/host-linux.c, config/host-solaris.c: New files.
6160         * config/x-linux, config/x-solaris: New files.
6161         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
6162         Update for changed definition.
6163         (darwin_rs6000_gt_pch_use_address): Likewise.
6164         * doc/hostconfig.texi: Update docs.
6165
6166 2004-03-10  Richard Henderson  <rth@redhat.com>
6167
6168         PR c/14517
6169         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
6170         except for pedantic c90 mode.
6171
6172 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
6173
6174         * configure.ac: Bump AC_PREREQ to 2.59.
6175         * configure: Regenerate.
6176
6177 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
6178
6179         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
6180         (exp10_optab, exp2_optab): Define corresponding macros.
6181         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
6182         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
6183         using exp10?f2 and exp2?f2 patterns.
6184         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
6185         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
6186         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
6187         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6188
6189         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
6190         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
6191         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
6192
6193 2004-03-10  Anthony Green  <green@redhat.com>
6194
6195         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
6196
6197 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
6198
6199         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
6200         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
6201         __LONGDOUBLE128.
6202         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
6203         TARGET_OS_AIX_CPP_BUILTINS.
6204         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
6205         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
6206         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
6207         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
6208         previous change.
6209
6210 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6211
6212         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
6213
6214 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
6215
6216         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6217         __LONGDOUBLE128 on AIX.
6218
6219 2004-03-10  Andrew Haley  <aph@redhat.com>
6220
6221         PR optimization/14381
6222         * function.c (expand_function_end): Emit a blockage insn before
6223         the epilogue when -fnon-call-exceptions is used.
6224
6225         * except.c (expand_start_all_catch): Make comment more accurate.
6226
6227 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
6228
6229         PR target/14480
6230         * config/rs6000/t-rtems: Add missing file on branch.
6231
6232 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
6233
6234         * dbxout.c (dbxout_symbol_location): Do not output references
6235         to optimized-out constant pool symbols.
6236
6237 2004-03-10  Andreas Schwab  <schwab@suse.de>
6238
6239         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
6240         twon34_r.
6241
6242 2004-03-09  James E Wilson  <wilson@specifixinc.com>
6243
6244         * alias.c (alias_sets_might_conflict_p): New.
6245         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
6246         * common.opt (Wstrict-aliasing=): New.
6247         * flags.h (warn_strict_aliasing): Change type to int.
6248         * opts.c (warn_strict_aliasing): Change type to int.
6249         (common_handle_option): Handle OPT_Wstrict_aliasing_.
6250         * tree.h (alias_sets_might_conflict_p): Declare it.
6251         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
6252
6253 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
6254
6255         PR bootstrap/12371
6256         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
6257         (CALL_USED_REGISTERS): Likewise.
6258         (REG_CLASS_CONTENTS): Likewise.
6259         (REG_ALLOC_ORDER): New.
6260         (REGNO_REG_CLASS): Use regno_reg_class.
6261         * config/m68k/m68k.c: Add regno_reg_class array.
6262
6263 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
6264
6265         * config/ia64/ia64.md (divsi3): Fix algorithm.
6266           (udivsi3): Ditto.
6267           (setf_exp_xf): Remove '*' from name.
6268         * testsuite/gcc.dg/20040309-1.c: New test.
6269
6270 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
6271
6272         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
6273         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
6274         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
6275         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
6276         (sparc_aout_select_rtx_section): Don't check
6277         SUNOS4_SHARED_LIBRARIES.
6278         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
6279
6280 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
6281
6282         PR other/14474
6283         * doc/md.texi (Pattern Ordering, Dependent Patterns)
6284         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
6285         INTERNALS".
6286
6287 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
6288
6289         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
6290         (LIBGCC_SPEC): Update to match.
6291
6292 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
6293
6294         * c-decl.c (last_function_parms, last_function_parm_tags)
6295         (last_function_parm_others, current_function_parms)
6296         (current_function_parm_tags, current_function_parm_others):
6297         Delete.
6298         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
6299         New macros.
6300         (grokdeclarator): For function definitions, save the arg-info
6301         block from the declarator in DECL_ARGUMENTS.
6302         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
6303         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
6304         contains only PARM_DECLs.  Improve diagnostics.
6305         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
6306         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
6307         (store_parm_decls_newstyle): Take the function to operate on,
6308         and an arg-info block, as arguments; don't get anything from
6309         current_function_* globals.
6310         (store_parm_decls_oldstyle): Likewise.
6311         (store_parm_decls): Pass fndecl and its arg-info block down to
6312         store_parm_decls_newstyle/oldstyle.  Send functions with empty
6313         argument lists through store_parm_decls_newstyle to reduce
6314         overhead.
6315         (pushdecl): Comment on the problems with the call to copy_node.
6316         Clear DECL_ARGUMENTS of the old node after copying it, if it
6317         is an arg-info block instead of a chain of decls.
6318         (start_function): Do not manipulate current_function_parm* or
6319         last_function_parm*.
6320
6321 2004-03-09  Roger Sayle  <roger@eyesopen.com>
6322             Andrew Pinski  <pinskia@physics.uc.edu>
6323
6324         * ifcvt.c (noce_try_sign_mask): New function to transform
6325         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
6326         (noce_process_if_block): Call noce_try_sign_mask.
6327
6328 2004-03-09  Andrew Pinski  <apinski@apple.com>
6329
6330         * c-typeck.c (tagged_types_tu_compatible_p):
6331         Fix typo.
6332
6333 2004-03-09  Roger Sayle  <roger@eyesopen.com>
6334
6335         * simplify-rtx.c (simplify_const_relational_operation): New function
6336         renamed from simplify_relational_operation.
6337         (simplify_relational_operation): Change prototype to accept an
6338         additional mode argument.  Call simplify_const_relational_operation.
6339         (simplify_gen_relational): Update simplify_relational_operation call.
6340         (simplify_ternary_operation): Update simplify_relational_operation
6341         subroutine call to use simplify_const_relational_operation instead.
6342
6343         * rtl.h (simplify_const_relational_operation): Prototype here.
6344         (simplify_relational_operation): Add addtional mode argument.
6345
6346         * combine.c (combine_simplify_rtx): Update calls to
6347         simplify_relational_operation.
6348         (simplify_set): Likewise.
6349         (gen_binary): Likewise.
6350         * cse.c (fold_rtx): Likewise.
6351         * dojump.c (compare_from_rtx): Likewise.
6352         (do_compare_rtx_and_jump): Likewise.
6353         * integrate.c (subst_constants): Likewise.
6354         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
6355
6356 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
6357
6358         * config/m32r/m32r.md: Remove all define_peephole's.
6359
6360 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
6361
6362         * config/rs6000/rs6000.md: Remove trailing whitespace.
6363
6364 2004-03-08  Eric Christopher  <echristo@redhat.com>
6365
6366         * Makefile.in (site.exp): Add libiconv variable definition.
6367
6368 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
6369
6370         * configure: Regenerate for config/accross.m4 correction.
6371
6372 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
6373
6374         PR target/14480
6375         * config/rs6000/t-rtems: Add missing file on branch.
6376
6377 2004-03-08  Roger Sayle  <roger@eyesopen.com>
6378
6379         PR middle-end/14289
6380         * c-typeck.c (c_mark_addressable): A register variable should
6381         be considered global if its not automatic, i.e. TREE_PUBLIC,
6382         TREE_STATIC or DECL_EXTERNAL.
6383         * function.c (put_var_into_stack): Call abort when placing a
6384         hard register into the stack, if x_parm_reg_stack_loc is NULL.
6385
6386 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
6387
6388         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
6389         ("*extendqisi2_short_displ"): Likewise.
6390
6391 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6392
6393         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
6394         (comp_operator): Likewise.
6395         * config/pdp11/pdp11-protos.h: Remove corresponding
6396         prototypes.
6397
6398 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
6399
6400         * expr.c (highest_pow2_factor_for_type): Rename into
6401         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
6402         TYPE_ALIGN when the target is a COMPONENT_REF.
6403         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
6404
6405 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
6406
6407         * config/rs6000/rs6000.c: Formatting fix.
6408         (legitimate_offset_address_p): Correct offset range check.
6409
6410         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
6411         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
6412         and MASK_STRING.
6413
6414 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
6415
6416         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
6417         for little endian.
6418         ("ashrdi3_no_power"): Disable for little endian.
6419         (ashrdi3): Same.
6420
6421 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6422
6423         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
6424         builtins.
6425
6426 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
6427
6428         PR target/14471
6429         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
6430         case, checking for -no-mul-bug-abort option.
6431         * configure, config.in: Regenerate.
6432         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
6433         and -mno-mul-bug-workaround.
6434         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
6435         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
6436         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
6437         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
6438         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
6439         sure mulu.d is not last on cache-line.
6440         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
6441         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
6442         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
6443         (TARGET_SWITCHES): New options -mmul-bug-workaround and
6444         -mno-mul-bug-workaround.
6445         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
6446         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
6447         * config/cris/cris.c (cris_operand_extend_operator): Clarify
6448         relation to MULT in head comment.
6449         (cris_op_str): Abort for MULT.
6450         (cris_print_operand) <case '!'>: New case.
6451
6452 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
6453
6454         PR debug/11983
6455         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
6456         dw_val_class_vec.  Replace use throughout file.
6457         (dw_float_const): Delete.
6458         (dw_vec_const): New.
6459         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
6460         throughout file.
6461         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
6462         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
6463         (size_of_die): Adjust dw_val_class_vec sizing.
6464         (output_die): Output dw_val_class_vec.
6465         (insert_int, extract_int, insert_float): New functions.
6466         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
6467         Handle CONST_VECTOR.
6468         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
6469
6470 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
6471
6472         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
6473         AltiVec abi cannot co-exist.
6474
6475         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
6476
6477 2004-03-07  Jan Hubicka  <jh@suse.cz>
6478
6479         * except.c (emit_to_new_bb_before):  Break fallthru edges.
6480
6481 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
6482
6483         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
6484         ("*lshrsi3"): Also accept an immediate for 68HC12.
6485         ("*ashrsi3_const"): Likewise.
6486         ("*ashrsi3"): Likewise.
6487         ("*ashlsi3_const"): Likewise.
6488         ("*ashlsi3"): Likewise.
6489         ("cmphi_1_hc12"): Compare two hard register by pushing them and
6490         comparing with a pop; don't use a split for that.
6491         ("cmphi split"): Disable compare split for 68HC12.
6492
6493         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
6494         the status operands if they have side effects.
6495
6496 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
6497
6498         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
6499         definition.
6500         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
6501         config/h8300/h8300.h, config/ia64/ia64.h,
6502         config/mcore/mcore.h, config/mmix/mmix.h,
6503         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
6504         config/stormy16/stormy16.h, config/v850/v850.h,
6505         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
6506         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
6507         definition.
6508
6509 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6510
6511         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
6512         <XOR_EXPR>: Fold x ^ x as zero.
6513         <AND_EXPR>: Fold x & x as x.
6514
6515 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6516
6517         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
6518         "foo++ == const" into "++foo == const+incr".
6519
6520 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
6521
6522         * config/mips/mips.c (mips_in_small_data_p): Return false if
6523         TARGET_ABICALLS.
6524
6525 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
6526
6527         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
6528         the stack register.
6529         (expand_prologue): Don't make an interrupt or a trap handler a far
6530         symbol.
6531         (m68hc11_initial_elimination_offset): Likewise.
6532
6533 2004-03-06  Richard Henderson  <rth@redhat.com>
6534
6535         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
6536
6537 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6538
6539         * config/ns32k/ns32k-protos.h: Add a prototype for
6540         ns32k_notice_update_cc.
6541         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
6542         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
6543         ns32k_notice_update_cc.
6544
6545 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6546
6547         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
6548         "*load_multiple_si"): Allow only if reload_completed.
6549         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
6550         Likewise.
6551
6552 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6553
6554         * config/vax/vax-protos.h: Add a prototype for
6555         vax_notice_update_cc.
6556         * config/vax/vax.c (vax_notice_update_cc): New.
6557         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
6558         vax_notice_update_cc.
6559
6560 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
6561
6562         * collect2.c (main): Only export initfunc and finifunc if
6563         LD_INIT_SWITCH not defined.
6564         (scan_prog_file): Only export constructors and destructors if
6565         LD_INIT_SWITCH not defined.  Only export symbols not found in
6566         shared objects.
6567
6568 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6569
6570         * pa.md (icacheflush): Reorder operands to make match_scratch operand
6571         last.
6572         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
6573         from calls to gen_icacheflush.
6574
6575 2004-03-06  Richard Henderson  <rth@redhat.com>
6576
6577         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
6578         (TARGET_LONG_DOUBLE_128): New.
6579         (TARGET_SWITCHES): Add long-double-{128,64}.
6580         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
6581         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
6582         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
6583         (WIDEST_HARDWARE_FP_SIZE): New.
6584         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
6585         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
6586         if TARGET_VAX_FLOAT.
6587         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
6588         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
6589
6590 2004-03-06  Richard Henderson  <rth@redhat.com>
6591
6592         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
6593         botched rtx class conversion.
6594
6595 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6596
6597         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
6598         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
6599
6600         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
6601         macros.
6602         * fold-const.c (fold_mathfn_compare, fold): Likewise.
6603
6604 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6605
6606         PR target/14343
6607         * config/i386/i386.md (movv2di_internal): Conditionalize on
6608         TARGET_SSE, not TARGET_SSE2.
6609
6610 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
6611
6612         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
6613         duplicated line.
6614
6615 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6616
6617         * builtins.c: Consistently use logN not log* in comments.
6618
6619 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
6620
6621         * rtl.h (mem_expr_equal_p): Function prototype added.
6622         * cfgcleanup.c (merge_memattrs): New function.
6623         (flow_find_cross_jump): Call merge_memattrs for matching insns.
6624         * emit-rtl.c (mem_expr_equal_p): New function.
6625
6626 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
6627
6628         * objc/objc-act.c (synth_module_prologue): Const-qualify
6629         objc_selector type if using the GNU runtime; fix generated
6630         signatures for objc_msg_lookup and objc_msg_lookup_super
6631         to match what GNU ObjC headers provide; reformat and clean up.
6632         (synth_self_and_ucmd_args): Use previously constructed (and
6633         hence possibly const-qualified) objc_selector type.
6634
6635 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6636
6637         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
6638
6639 2004-03-05  Jason Merrill  <jason@redhat.com>
6640
6641         * tree.h (TYPE_HASH): Use TYPE_UID.
6642         (TREE_HASH): New macro with old definition of TYPE_HASH.
6643         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
6644         (build_array_type, build_function_type): Likewise.
6645         (build_method_type_directly): Likewise.
6646         (build_offset_type, build_complex_type): Likewise.
6647         (type_hash_list, attribute_hash_list): Likewise. Now static.
6648         * except.c: s/TYPE_HASH/TREE_HASH/.
6649
6650 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
6651
6652         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
6653         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
6654         __va_ndx by 2 words when referencing an argument on the stack.
6655         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
6656         words when an arg on the stack is first seen.
6657
6658 2004-03-05  Paul Brook  <paul@codesourcery.com>
6659
6660         * arm.h (ARM_FLAG_VFP): Remove.
6661         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
6662         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
6663
6664 2004-03-05  Paul Brook  <paul@codesourcery.com>
6665
6666         * function.c (assign_parms): Include pretend alignment offset.
6667
6668 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6669
6670         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
6671         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
6672
6673 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
6674
6675         * configure.ac: When passing --enable-languages to subdir
6676         configure when host != build, make sure we don't pass an empty
6677         value.
6678         * configure: Regenerate.
6679
6680 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
6681
6682         PR 13577
6683         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
6684         options.
6685
6686 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6687
6688         * simplify-rtx.c (simplify_relational_operation): If
6689         flag_wrapv is set, do not move terms between the two
6690         side of a relational operator.
6691
6692 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6693
6694         * rtlanal.c: Include target.h and output.h
6695         (rtx_cost, address_cost, default_address_cost): Move from...
6696         * cse.c (rtx_cost, address_cost, default_address_cost):
6697         ... this file.
6698         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
6699         * Makefile.in: Adjust dependencies.
6700
6701 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
6702
6703         * cse.c (cse_end_of_basic_block): Make static.
6704         * local-alloc.c (function_invariant_p): Move to
6705         reload1.c.
6706         * loop.c (libcall_other_reg, record_excess_regs):
6707         Make static.
6708         * reload1.c (function_invariant_p): Moved here
6709         from local-alloc.c, made static.
6710         * rtl.h (cse_end_of_basic_block, function_invariant_p,
6711         libcall_other_reg, record_excess_regs): Remove
6712         declarations.
6713
6714 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6715
6716         * config/m32r/m32r.c (signed_comparison_operator): Add a
6717         missing parenthesis.
6718
6719 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
6720
6721         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
6722         going to call mmap again.  Read the file into the right place.
6723         Give a fatal error if we have to relocate.
6724
6725 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
6726
6727         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
6728         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
6729
6730 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
6731
6732         PR other/14354
6733         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
6734         round the same.  When rounding, clear bits that would cause a
6735         second rounding in pack_d.
6736         (_fpmul_parts): Ditto.  Remove #if 0:d code.
6737
6738 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
6739
6740         PR c++/14425, c++/14426
6741         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
6742         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
6743         Change C++ definitions to accept a 'const int' argument;
6744         the prototypes already do.
6745         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
6746         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
6747         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
6748         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
6749         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
6750         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
6751         end in ..._int; change them to accept an int instead of a char
6752         as the last parameter.
6753
6754 2004-03-04  Phil Edwards  <phil@codesourcery.com>
6755
6756         * genmultilib:  Change '=' to '-' when translating option names
6757         to directory names.
6758
6759 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6760
6761         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
6762         stack slot for temp used for result of BLKmode but in integral mode.
6763
6764 2004-03-04  Jan Hubicka  <jh@suse.cz>
6765
6766         * reload.c (find_reloads): Reorganize if seqeunce to switch.
6767
6768         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
6769         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
6770
6771 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
6772
6773         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
6774         * testsuite/gcc.dg/20040303-1.c: New test.
6775
6776 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6777
6778         * ppro.md: Rewrite as a DFA pipeline description.
6779         * i386.md: Remove all uses of the ppro_uops attribute.
6780         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
6781         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
6782         ix86_sched_reorder, ix86_variable_issue,
6783         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
6784         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
6785         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
6786         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
6787         * athlon.md (athlon_ssecmp_load): Fix comment
6788
6789 2004-03-04  Stuart Hastings  <stuart@apple.com>
6790
6791         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
6792
6793 2004-03-04  Stuart Hastings  <stuart@apple.com>
6794
6795         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
6796         686, tell Darwin assembler to allow prefetch insns, non-empty def
6797         of SUBTARGET_OPTION_TRANSLATE_TABLE.
6798
6799 2004-03-04  DJ Delorie  <dj@redhat.com>
6800
6801         PR optimization/14282
6802         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
6803         between a call and the assignment of its return value.
6804
6805 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6806
6807         * config/h8300/h8300.c: Put a comment for every function.
6808
6809 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6810
6811         * config/h8300/h8300.md: Add comments about peephole2's.
6812
6813 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6814
6815         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
6816
6817 2004-03-04  Jan Hubicka  <jh@suse.cz>
6818
6819         * cfgcleanup.c (thread_jump): Update call of cselib_init.
6820         * cselib.c (cselib_record_memory): New static variable.
6821         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
6822         Give up on memories when asked for.
6823         (cselib_init): Accept new argument.
6824         * cselib.h (cselib_init): Update prototype.
6825         * gcse.c (local_cprop_pass): Update call of cselib_init.
6826         * loop.c (load_mems): Update call of cselib_init.
6827         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
6828         * sched-deps.c (sched_analyze): Update call of cselib_init.
6829
6830 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6831             GP <gp@qnx.com>
6832
6833         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
6834         when compiling PIC.
6835
6836 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
6837
6838         PR/14362
6839         * var-tracking.c (track_expr_p): Do not track variables which
6840         should be ignored for debugging purposes.
6841
6842 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6843
6844         * real.c (encode_ibm_extended): Don't bother rounding low double.
6845         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
6846         when fmt->pnan < fmt->p.
6847
6848 2004-03-04  Eric Christopher  <echristo@redhat.com>
6849
6850         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
6851         only range of valid arg registers and fixed_regs.
6852
6853 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6854
6855         PR target/14406
6856         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
6857         (abstf2, abstf2_internal): New define_expand.
6858
6859 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6860
6861         PR optimization/14235
6862         * expr.c (convert_move): Copy the source to a new pseudo
6863         when converting from a sub-word source to a larger-than-word
6864         register which conflicts with the source.
6865
6866 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
6867
6868         PR 13728
6869         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
6870         parameters with the same name, unless one is a forward decl.
6871         Do not issue a redundant-redeclaration warning for forward
6872         decls of parameters.
6873
6874 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6875
6876         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
6877         configuration.
6878
6879 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
6880
6881         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
6882
6883 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6884
6885         * target-def.h (TARGET_OPTF): Delete.
6886         * c-opts.c (TARGET_OPTF): Define.
6887
6888 2004-03-04  Jan Hubicka  <jh@suse.cz>
6889
6890         * cselib.c (cselib_finish): Fix another miss-application of my previous
6891         patch.
6892
6893 2004-03-03  Mike Stump  <mrs@apple.com>
6894
6895         Add framework support for darwin.
6896
6897         * c-incpath.c: Include target.h and machmode.h.
6898         (add_path): Use a consistent style for cpp_dir.  Initialize
6899         p->construct to 0.
6900         (add_cpp_dir_path): New.
6901         (register_include_chains): Add use of extra_includes callback.
6902         (hook_void_int): Add.
6903         (target_c_incpath): Add.
6904         * c-incpath.h (add_cpp_dir_path): New.
6905         (target_c_incpath_s): Add.
6906         (target_c_incpath): Add.
6907         (C_INCPATH_INIT): Add.
6908         * c-opts.c (c_common_missing_argument,
6909         c_common_handle_option): Add -F argument processing.
6910         * c.opt: Add -F argument processing.
6911         * gcc.c (trad_capable_cpp): Add -F argument processing.
6912         * cppfiles.c (find_file_in_dir): Update to use construct
6913         callback.
6914         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
6915         cpp_get_prev): New.
6916         (_cpp_find_file): Use search_path_exhausted.
6917         (make_cpp_dir): Initialize construct to 0.
6918         * cpplib.h (missing_header_cb
6919         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
6920         (cpp_callbacks): Add missing_header
6921         (cpp_dir): Add construct.
6922         * target-def.h: (TARGET_OPTF): New.
6923         * hooks.c (hook_void_int, hook_void_charptr): Add.
6924         * hooks.h (hook_void_int, hook_void_charptr): Add.
6925         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
6926         $(MACHMODE_H) dependencies.
6927         * doc/invoke.texi (Darwin Options): Document -F.
6928         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
6929         (TARGET_OPTF): Add.
6930         * fix-header.c (target_c_incpath): Add.
6931
6932         * config/darwin-c.c: Add c-incpath.h include.
6933         (using_frameworks, find_subframework_file,
6934         find_subframework_header, add_system_framework_path,
6935         frameworks_in_use, num_frameworks, max_frameworks,
6936         add_framework, find_framework, struct framework_header,
6937         framework_header_dirs, framework_construct_pathname,
6938         find_subframework_file, add_system_framework_path,
6939         add_framework_path, framework_defaults,
6940         darwin_register_frameworks, find_subframework_header): Add.
6941         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
6942         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
6943         (CPP_SPEC): Add __APPLE_CC__ support.
6944         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
6945
6946 2004-03-04  Jan Hubicka  <jh@suse.cz>
6947
6948         * cselib.c (cselib_finish): Fix miss-application of my previous
6949         patch.
6950
6951 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6952
6953         * hooks.c (hook_tree_tree_identity): New.
6954         * hooks.h: Add a prototype for hook_tree_tree_identity.
6955         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
6956         instead of MD_ASM_CLOBBERS.
6957         * system.h (MD_ASM_CLOBBERS): Poison.
6958         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
6959         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
6960         * target.h (gcc_target): Add md_asm_clobbers.
6961         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
6962         (ix86_md_asm_clobbers): New.
6963         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
6964         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
6965         TARGET_MD_ASM_CLOBBERS.
6966
6967 2004-03-03  Stuart Hastings  <stuart@apple.com>
6968
6969         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
6970
6971 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6972
6973         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
6974
6975         * config/sparc/sparc.h (ASM_FLOAT): Delete.
6976         (ASM_DOUBLE): Likewise.
6977         (ASM_LONGDOUBLE): Likewise.
6978         * config/sparc/pbd.h (ASM_INT_OP): Delete.
6979
6980 2003-03-03  Richard Henderson  <rth@redhat.com>
6981
6982         PR opt/13862
6983         * cselib.c (cselib_record_sets): Don't record multiple sets in
6984         asm insns.
6985
6986 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
6987
6988         * common.opt: Add description of the new -fgcse-after-reload flag.
6989
6990         * flags.h (flag_gcse_after_reload): Declaration of global variable.
6991
6992         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
6993         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
6994         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
6995         get_bb_avail_insn, hash_scan_set_after_reload,
6996         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
6997         gcse_after_reload, get_bb_avail_insn): New functions to implement
6998         gcse-after-reload.
6999         (gcse_after_reload_main): New function, the main entry point to
7000         gcse-after-reload.
7001
7002         * rtl.h (gcse_after_reload_main): Declaration of the new function.
7003
7004         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
7005
7006         * toplev.c (flag_gcse_after_reload): Initialization.
7007
7008         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
7009
7010         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7011         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
7012         the gcse after reload optimization.
7013
7014         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
7015         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
7016         parameters.
7017
7018         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
7019
7020 2004-03-03  Nicolas Pitre <nico@cam.org>
7021
7022         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
7023         small negative values.
7024
7025 2004-03-03  Jan Hubicka  <jh@suse.cz>
7026
7027         * cselib.c (hash_table):  Remove GTY marker.
7028         (reg_values): Turn into array.
7029         (used_regs): Likewise.
7030         (n_used_regs): New static variable.
7031         (reg_values_old): Kill.
7032         (clear_table): Update uses of arrays.
7033         (cselib_lookup): Likewise.
7034         (cselib_record_set): Likewise.
7035         (cselib_init): Likewise.
7036         (cselib_finish): Likewise.
7037         (cselib_udpate_varray_sizes): Kill.
7038         * cselib.h (cselib_update_varray_sizes): Kill.
7039
7040 2004-03-03  Paul Brook  <paul@codesourcery.com>
7041
7042         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
7043
7044 2004-03-03  Jan Hubicka  <jh@suse.cz>
7045
7046         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
7047         Rename from ...; make statistics transparent.
7048         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
7049         (loc_descriptor): New structure.
7050         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
7051         add_statistics):
7052         New static function.
7053         (ggc_record_overhead, dump_statistics): New global function.
7054         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7055         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
7056         from ...; accept locations
7057         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7058         ggc_realloc, ggc_alloc_typed):  ... this one.
7059         from ...; accept locations
7060         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
7061         ggc_alloc_stat): Rename from ... ; pass locations
7062         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
7063         ... this one.
7064         (ggc_alloc_stat): Record overehead.
7065         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
7066         ggc_realloc, ggc_alloc_typed):  Turn to macros
7067         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
7068         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
7069         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
7070         * langhooks.h (lhd_make_node): Declare.
7071         (LANG_HOOKS_MAKE_TYPE): Default to new function,
7072         * langhooks.c (lhd_make_node): New.
7073         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
7074         locations.
7075         (rtx_alloc, swallow_copy_rtx): ... this one.
7076         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
7077         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
7078         * toplpev.c (finalize): Dump stats.
7079         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
7080         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
7081         Rename from ... ; pass locators.
7082         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7083         build?,  build_decl): Declare.
7084         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
7085         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
7086         Declare.
7087         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
7088         build?,  build_decl): New macros.
7089         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
7090         * statistics.h: New file.
7091
7092 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7093             Richard Sandiford  <rsandifo@redhat.com>
7094
7095         * config/mips/mips.h (MASK_FIX_SB1): Bump.
7096         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
7097         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
7098         * config/mips/mips.c (mips_output_division): Fill the branch delay
7099         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
7100         TARGET_FIX_R4400.
7101         (mips_output_division): Adjust accordingly.
7102         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
7103         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
7104
7105 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
7106
7107         * alias.c (rtx_equal_for_memref_p): Use predicates
7108         to test rtx classes and new rtx class codes, possibly
7109         splitting conditionals that tested against '<' and 'o'.
7110         * caller-save.c (save_call_clobbered_regs): Likewise.
7111         * combine.c (contains_muldiv, find_split_point, subst,
7112         combine_simplify_rtx, simplify_if_then_else,
7113         simplify_set, simplify_logical, expand_compound_operation,
7114         make_compound_operation, if_then_else_cond, known_cond,
7115         apply_distributive_law, cached_nonzero_bits,
7116         cached_num_sign_bit_copies, simplify_shift_const,
7117         gen_binary, simplify_comparison, update_table_tick,
7118         record_value_for_reg, get_lsat_value_validate): Likewise.
7119         * cse.c (mention_regs, find_best_addr, find_comparison_args,
7120         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
7121         Likewise.
7122         * emit-rtl.c (copy_insn_1): Likewise.
7123         * expr.c (force_operand): Likewise.
7124         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
7125         * flow.c (notice_stack_pointer_modification_1,
7126         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
7127         and_reg_cond, elim_reg_cond): Likewise.
7128         * function.c (update_epilogue_consts): Likewise.
7129         * genattrtab.c (attr_rtx_1): Likewise.
7130         * genopinit.c (gen_insn): Likewise.
7131         * integrate.c (subst_constants): Likewise.
7132         * jump.c (reversed_comparison_code_parts,
7133         reversed_comparison_code, delete_related_insns,
7134         rtx_renumbered_equal_p): Likewise.
7135         * local-alloc.c (block_alloc): Likewise.
7136         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
7137         canonicalize_condition): Likewise.
7138         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
7139         Likewise.
7140         * optabs.c (add_equal_node, expand_binop): Likewise.
7141         * predict.c (estimate_probability): Likewise.
7142         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
7143         * recog.c (validate_replace_rtx_1, comparison_operator,
7144         offsettable_address_p, constrain_operands): Likewise.
7145         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
7146         Likewise.
7147         * regclass.c (scan_one_insn): Likewise.
7148         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
7149         * regrename.c (kill_autoinc_value): Likewise.
7150         * reload.c (find_reusable_reload, find_reloads,
7151         reg_overlap_mentioned_for_reload_p): Likewise.
7152         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
7153         * rtl.c (copy_rtx): Likewise.
7154         * rtl.h (CONSTANT_P, INSN_P): Likewise.
7155         * rtlanal.c (commutative_operand_precedence): Likewise.
7156         * sched-deps.c (conditions_mutex_p): Likewise.
7157         * sched-rgn.c (is_cfg_nonregular): Likewise.
7158         * simplify-rtx.c (simplify_gen_binary,
7159         simplify_gen_relational, simplify_replace_rtx,
7160         simplify_unary_operation, simplify_binary_operation,
7161         simplify_ternary_operation, simplify_rtx): Likewise.
7162         * unroll.c (reg_dead_after_loop): Likewise.
7163         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
7164         print_operand): Likewise.
7165         * config/arc/arc.c (proper_comparison_operator): Likewise.
7166         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
7167         Likewise.
7168         * config/avr/avr.c (_reg_unused_after): Likewise.
7169         * config/frv/frv.c (frv_ifcvt_modify_tests,
7170         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
7171         * config/i386/i386.c (ix86_comparison_operator,
7172         ix86_carry_flag_operator, fcmov_comparison_operator,
7173         arith_or_logical_operator, print_operand,
7174         ix86_expand_binary_operator, ix86_binary_operator_ok):
7175         Likewise.
7176         * config/i386/i386.md: Likewise.
7177         * config/ia64/ia64.c (not_postinc_memory_operand,
7178         ia64_print_operand, update_set_flags, errata_emit_nops):
7179         Likewise.
7180         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
7181         CONSTRAINT_OK_FOR_S): Likewise.
7182         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
7183         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
7184         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
7185         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
7186         Likewise.
7187         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
7188         eqne_comparison_operator, signed_comparison_operator):
7189         Likewise.
7190         * config/mips/mips.c (cmp_op, symbolic_expression_p):
7191         Likewise.
7192         * config/mmix/mmix (mmix_foldable_comparison_operator,
7193         mmix_comparison_operator): Likewise.
7194         * config/pa/pa.c (hppa_legitimize_address): Likewise.
7195         * config/rs6000/rs6000.c (stmw_operation,
7196         branch_comparison_operator, trap_comparison_operator,
7197         ccr_bit): Likewise.
7198         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
7199         * config/s390/s390.c (s390_alc_comparison,
7200         s390_slb_comparison):L Likewise.
7201         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
7202         Likewise.
7203         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
7204         noov_compare_op, noov_compare64_op, v9_regcmp_op,
7205         emit_hard_tfmode_operation, reg_unused_after)
7206         * doc/md.texi, doc/rtl.texi: Likewise.
7207
7208         * ra-debug.c: Add 2004 to list of copyright years.
7209         * unroll.c: Likewise.
7210
7211         * combine.c (simplify_logical): Remove dummy test,
7212         (apply_distributive_law): Fix typo in comment.
7213         GET_CODE (x) == AND so x is a commutative binary op.
7214         * jump.c (delete_related_insns): simplify loop
7215         condition, move testing of RTX codes inside the loop.
7216         (rtx_renumbered_equal_p): do not use RTX_CODE.
7217         * rtl.c (rtx_class): Declare as enum rtx_class.
7218         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
7219         Move to RTX_COMM_COMPARE class.
7220         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
7221         Move to RTX_CONST_OBJ class.
7222         * rtl.h (enum rtx_class): New declaration,
7223         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
7224         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
7225         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
7226         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
7227         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
7228         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
7229         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
7230         OBJECT_P): New macros.
7231         * config/sparc/sparc.c (noov_compare_op): Remove register
7232         from parameter.
7233
7234 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7235
7236         * target.h: Remove texi jargons in comments.
7237
7238 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7239
7240         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
7241         threshold to 0x4f.
7242
7243         Revert:
7244         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7245         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
7246         as well.
7247         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
7248         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
7249
7250 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7251
7252         * doc/md.texi (cbranchmode4): New.
7253
7254 2004-03-02  Eric Christopher  <echristo@redhat.com>
7255
7256         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
7257         fix_trunc.
7258         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
7259         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
7260         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
7261         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
7262
7263 2004-03-02  Richard Henderson  <rth@redhat.com>
7264
7265         PR middle-end/11767
7266         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
7267         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
7268         before the compare, if flag_non_call_exceptions.
7269
7270 2004-03-02  Richard Henderson  <rth@redhat.com>
7271
7272         PR middle-end/14327
7273         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
7274         emitting the label, not after.
7275
7276 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7277
7278         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
7279         (m68hc11_mov_addr_mode): Likewise.
7280         (m68hc11_override_options): Initialize them based on target.
7281         (register_indirect_p): Allow a MEM for indirect addressing modes and
7282         use flags to control what is allowed.
7283         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
7284         supported addressing modes.
7285         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
7286         (go_if_legitimate_address_internal): Likewise.
7287         (m68hc11_indirect_p): Likewise and check the mode.
7288         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
7289
7290 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7291
7292         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
7293         (expand_builtin_setjmp_setup): Use
7294         targetm.builtin_setjmp_frame_value instead of
7295         BUILTIN_SETJMP_FRAME_VALUE.
7296         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
7297         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
7298         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
7299         * target.h (gcc_target): Add builtin_setjmp_frame_value.
7300         * targhooks.c (default_builtin_setjmp_frame_value): New.
7301         * targhooks.h: Add a prototype for
7302         default_builtin_setjmp_frame_value.
7303         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
7304         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
7305
7306 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7307
7308         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
7309         sequences of moves.
7310         (add peepholes): New peepholes to optimize sequences adding small
7311         constants.
7312         (bset peepholes): New peepholes to transform an OR in a bset form
7313         (bclr peepholes): Likewise for bclr form.
7314         (cmp peepholes): New peepholes to avoid register copies when comparing.
7315
7316 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7317
7318         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
7319         to separate push from moves.
7320         ("*pushdf_internal"): Likewise.
7321         ("*pushsf_internal"): Likewise.
7322         ("*pushsi_internal"): Likewise.
7323         ("movdi_internal"): Use define_insn_and_split; non push operand.
7324         ("movdf_internal"): Likewise.
7325         ("movsf_internal"): Likewise.
7326         ("movsi_internal"): Likewise.
7327         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
7328         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
7329         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
7330
7331 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7332
7333         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
7334         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
7335         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
7336         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
7337         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
7338         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
7339         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
7340         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
7341         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
7342         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
7343         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
7344
7345 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7346
7347         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
7348         (SOFT_XY_REGNUM): Define.
7349         (cmp split): Use the above instead of hard coded numbers.
7350         (8-bit op split): No need to check the mode; allow Q_REG.
7351         (ashift split): Adjust the first operand if it uses the SP and we
7352         are pushing the shifted value.
7353         (plus shift split): Fix when a source is in register D+X.
7354         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
7355
7356 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7357
7358         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
7359         comparing with Z register.
7360
7361 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7362
7363         * cfgloop.h (struct loop_desc): Removed.
7364         (struct loop): Fields simple, desc and has_desc removed.
7365         (simple_loop_p, count_loop_iterations): Declaration removed.
7366         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
7367         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
7368         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
7369         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
7370         simple_loop_exit_p, variable_initial_value, variable_initial_values,
7371         simple_condition_p, simple_increment, count_strange_loop_iterations,
7372         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
7373         Removed.
7374         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
7375
7376 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7377
7378         * genattrtab.c: Don't handle MATCH_INSN.
7379         * genrecog.c: Likewise.
7380         * gensupport.c: Likewise.
7381         * rtl.def (match_insn): Remove.
7382         * doc/md.texi (match_insn, match_insn2): Remove.
7383
7384 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
7385
7386         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
7387         macro results in memory allocation.
7388
7389 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
7390
7391         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
7392         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
7393         %(fbsd_dynamic_linker),
7394         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
7395         config/i386/freebsd.h
7396         * config/arm/freebsd.h: Ditto.
7397         * config/i386/freebsd.h: Ditto.
7398         * config/i386/freebsd64.h: Ditto.
7399         * config/ia64/freebsd.h: Ditto.
7400         * config/rs6000/sysv4.h: Ditto.
7401         * config/sparc/freebsd.h: Ditto.
7402
7403 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
7404
7405         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
7406
7407 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7408
7409         * rtl.def (define_combine): Remove.
7410
7411 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7412
7413         * config/h8300/h8300.md: Tweak formatting.
7414
7415 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7416
7417         * config/h8300/h8300.md (*cmphi_h8300): Rename to
7418         *cmphi_h8300_znvc.
7419         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
7420
7421 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
7422
7423         PR bootstrap/14356
7424         * gcc.c (process_command): Remove const-qualification from argv.
7425         (main): Likewise.
7426
7427 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7428
7429         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
7430         pushqi1_h8300hs_advanced.  Adjust its caller.
7431         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
7432         Adjust its caller.
7433
7434 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
7435
7436         * Makefile.in (install-libgcc, install-multilib): Pass
7437         mkinstalldirs var to libgcc.mk.
7438
7439 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7440
7441         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
7442         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
7443
7444 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7445
7446         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
7447         * config/h8300/h8300.md: Split several peephole2's, each into
7448         two.
7449
7450 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7451
7452         * dominance.c (recount_dominator): Handle postdominators.
7453
7454 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
7455
7456         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
7457         (NUM_SYMBOL_TYPES): Likewise.
7458         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
7459         (mips_unspec_address): Declare.
7460         (mips_gotoff_page, mips_gotoff_global): Delete.
7461         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
7462         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
7463         (mips_symbolic_constant_p, mips_symbolic_address_p)
7464         (mips_symbol_insns): Handle new symbol types.
7465         (general_symbolic_operand): New predicate.
7466         (mips_unspec_address): Make extern.
7467         (mips_gotoff_page, mips_gotoff_global): Delete.
7468         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
7469         Handle new symbol types.
7470         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
7471         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
7472         mips_unspec_address directly.
7473         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
7474         the documentation of -mexplicit-relocs.
7475
7476 2004-03-01  Jeff Law  <law@redhat.com>
7477
7478         * fold-const.c (fold): An equality comparison of a non-weak object
7479         against zero has a known result.  Similarly an equality comparison
7480         of the address of two non-weak, unaliased symbols has a known result.
7481
7482         * ggc-page.c (struct page_entry): New field PREV.
7483         (ggc_alloc): Update PREV field appropriately.
7484         (sweep_pages): Likewise.
7485         (ggc_free): Likewise.  Use PREV field rather than loop to
7486         improve ggc_free performance.
7487
7488 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
7489
7490         * config/mips/mips.c (mips_output_division): Use the division
7491         instruction to fill the delay slot of a zero check.
7492         (mips_idiv_insns): Adjust accordingly.
7493
7494 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
7495
7496         * config.gcc: Create a default tmake_file for linux, and use
7497         it in all but two linux clauses.  Comment those two.
7498
7499 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
7500
7501         * combine.c (try_combine):  Do not refer to is_replaced.
7502         (gen_lowpart_for_combine):  Perverse subregs now have a
7503         more politically correct name.
7504         * cse.c (cse_insn): Likewise.
7505         * jump.c: Fix bogus reference to delete_insn.
7506
7507 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
7508
7509         PR debug/14328
7510         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
7511         constants as signed values.
7512
7513         PR middle-end/13448
7514         * c-tree.h (readonly_warning): Rename to ...
7515         (readonly_error): ... this.
7516         * c-typeck.c (build_unary_op): Adjust accordingly.
7517         (readonly_warning): Rename to ...
7518         (readonly_error): ... this and issue errors, not warnings.
7519         (build_modify_expr): Call readonly_error, not readonly_warning.
7520         (c_expand_asm_operands): Likewise.
7521         * tree-inline.c (optimize_inline_calls): Do not inline functions
7522         after errors have occurred.
7523
7524 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7525
7526         * configure.ac: Rearrange some threading code for clarity;
7527         add section comment.
7528         * configure: Regenerate.
7529
7530 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7531
7532         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
7533         typos.
7534         * doc/cppopts.texi: Fix a typo.
7535
7536 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7537
7538         * config/i386/i386.md: Fix formatting.
7539
7540 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7541
7542         * configure.ac: Add some comments delineating sections of code.
7543
7544         * doc/install.texi: Note that libada uses autoconf 2.57 also.
7545
7546         * doc/install.texi: Fix idiot typo in previous commit.
7547
7548         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
7549
7550 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7551
7552         * config/h8300/h8300.md: Add comments about peephole2's.
7553
7554 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7555
7556         * config/h8300/h8300.md: Tweak operand numbers of some
7557         peephole2's.
7558
7559 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7560
7561         * config/h8300/h8300.md: Tweak comments about peephole2's.
7562
7563 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7564
7565         PR middle-end/14203
7566         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
7567         instead of testing whether DECL_RTL is not NULL.
7568
7569 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7570
7571         * config/sh/sh.c: Fix formatting.
7572
7573 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7574
7575         * config/sh/sh.c: Convert to ISO-C.
7576
7577 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
7578
7579         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
7580         my previous patch.
7581
7582         * config/darwin.h (machopic_finish): Output stub even if the
7583         symbol is already defined.
7584
7585 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7586
7587         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
7588
7589 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7590
7591         * genattr.c (main): Don't define
7592         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
7593         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
7594         (DFA_PIPELINE_INTERFACE): Likewise.
7595         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
7596         (DFA_PIPELINE_INTERFACE): Likewise.
7597
7598 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
7599
7600         * config/mips/mips.md (tstsi, tstdi): Delete.
7601
7602 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7603
7604         * config/mips/mips.c (override_options): Remove an obsolete
7605         duplicate definition of the "e" constraint.
7606         * config/mips/mips.h: Update a comment accordingly.
7607
7608 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7609
7610         * config/mips/mips.md: Complete the unfinished R4000
7611         multiply/shift errata workaround.  Improve documentation.
7612         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
7613         has a hilo hazard.
7614         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
7615         (muldi3, muldi3_internal): Likewise.
7616         (muldi3_internal2): Remove, replacing with...
7617         (muldi3_mult3, muldi3_r4000): ...these new patterns.
7618         (mulsidi3): Take the errata into account.
7619         (mulsidi3_32bit): Remove, replacing with...
7620         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
7621         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
7622         (umulsidi3): Take the errata into account.
7623         (umulsidi3_32bit): Remove, replacing with..
7624         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
7625         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
7626         TARGET_FIX_R4000.
7627         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
7628         (smuldi3_highpart, umuldi3_highpart): Likewise.
7629         * doc/invoke.texi: Document the errata workaround.
7630
7631 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7632
7633         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
7634         * config/mips/mips.h (MASK_FIX_SB1): Bump.
7635         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
7636         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
7637         * config/mips/mips.c (mips_idiv_insns): New function.
7638         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
7639         (mips_output_division): Add a workaround for the R4000 divide/shift
7640         errata.
7641         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
7642         the length of an "idiv" instruction.
7643         * doc/invoke.texi: Document the new switches.
7644
7645 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7646
7647         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
7648         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
7649
7650 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7651
7652         PR optimization/14229
7653         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
7654
7655 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
7656
7657         * fold-const.c (fold): Strip NOPs that change the signedness
7658         for RSHIFT too.  Expand comment.
7659
7660 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
7661
7662         PR optimization/7871
7663         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
7664         from or to call insns.
7665
7666 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
7667
7668         PR optimization/7871
7669         * flow.c (propagate_one_insn): Interpret calls as setting global
7670         registers, not merely clobbering them.
7671
7672 2004-02-27  Dale Johannesen  <dalej@apple.com>
7673
7674         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
7675         config/darwin-protos.h:  Ditto.
7676         config/darwin.h:  Remove call to it.
7677         * combine.c (distribute_notes): Do not place a REG_DEAD note
7678         when value is both set and used.
7679
7680 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7681
7682         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
7683         as well.
7684         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
7685         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
7686
7687 2004-02-27  Andrew Pinski  <apinski@apple.com>
7688
7689         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
7690         Speedup common case of the type values being in the same order.
7691
7692 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
7693
7694         * config/ia64/ia64.h (no-inline-float-divide): New option.
7695         * config/ia64/ia64.h (no-inline-int-divide): New option.
7696         * config/ia64/ia64.h (no-inline-sqrt): New option.
7697         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
7698         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
7699         * config/ia64/ia64.c (ia64_override_options): Modify error
7700         checking for inlined division/sqrt.
7701
7702 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7703
7704         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
7705         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
7706         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
7707         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
7708         copyright.
7709
7710 2004-02-27  Paul Brook  <paul@codesourcery.com>
7711
7712         * function.c (assign_parms): Don't count pretend args for alignment.
7713
7714 2004-02-27  Richard Henderson  <rth@redhat.com>
7715
7716         * passes.c: New file.
7717         * Makefile.in (OBJS-common): Add it.
7718         * diagnostic.c (rtl_dump_and_exit): Move decl ...
7719         * flags.h (rtl_dump_and_exit): ... here.
7720         * output.h (size_directive_output, last_assemble_variable_decl):
7721         Move from toplev.c.
7722         * rtl.h (reg_alloc): Move from toplev.c.
7723         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
7724         struct dump_file_info, enum dump_file_index, dump_file_tbl,
7725         open_dump_file, close_dump_file, rest_of_decl_compilation,
7726         rest_of_type_compilation, rest_of_handle_final,
7727         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
7728         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
7729         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
7730         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
7731         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
7732         rest_of_handle_tracer, rest_of_handle_if_conversion,
7733         rest_of_handle_if_after_combine, rest_of_handle_web,
7734         rest_of_handle_branch_prob,
7735         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
7736         rest_of_handle_addressof, rest_of_handle_sibling_calls,
7737         rest_of_handle_jump_bypass, rest_of_handle_inlining,
7738         rest_of_handle_null_pointer, rest_of_handle_combine,
7739         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
7740         rest_of_handle_gcse, rest_of_handle_loop_optimize,
7741         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
7742         (decode_d_option): Use enable_rtl_dump_file.
7743         (compile_file, finalize, do_compile): Move profile+combine+graph
7744         cleanup to finish_optimization_passes.
7745         * toplev.h (init_optimization_passes, finish_optimization_passes,
7746         enable_rtl_dump_file): Declare.
7747
7748 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
7749             Roger Sayle  <roger@eyesopen.com>
7750
7751         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
7752         operands to build a tree with swapped operands.
7753         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
7754         'unsignedp' predicate to specify the signedness.
7755
7756 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7757
7758         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
7759         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
7760         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
7761         comment typos and formatting.  Follow spelling conventions.
7762
7763 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
7764
7765         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
7766         fix_truncsfsi2.
7767
7768         * config/rs6000/spe.md: Delete spe_efsctuiz.
7769         Add spe_fixuns_truncsfsi2.
7770         Add spe_fix_truncsfsi2.
7771
7772 2004-02-26  Eric Christopher  <echristo@redhat.com>
7773
7774         * c-lex.c (c_lex_string_translate): New variable.
7775         (lex_string): Use to determine string translation.
7776         * c-pragma.h: Prototype.
7777         * c-parse.in (start_string_translation): New. Set above.
7778         (stop_string_translation): Ditto.
7779         (attribute, attribute_list, asm_def, asm_stmt,
7780         asm_operand): Use above functions.
7781         * cp/parser.c (cp_parser_declaration): Translate strings
7782         unless token is RID_EXTERN. Set c_lex_string_translate
7783         for recursive use.
7784         (cp_parser_asm_definition): Only translate argument strings
7785         to asms.
7786         (cp_parser_asm_operand_list): Ditto.
7787         (cp_parser_attribute_list): Do not translate attribute strings.
7788
7789 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7790
7791         * stmt.c (expand_start_case_dummy): Remove.
7792         * tree.h: Remove the corresponding prototype.
7793
7794 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7795
7796         * builtins.c (apply_args_register_offset): Remove.
7797         * tree.h: Remove the corresponding prototype.
7798
7799 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7800
7801         * stor-layout.c (is_pending_size): Remove.
7802         * tree.h: Remove the corresponding prototype.
7803
7804 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7805
7806         * recog.c (validate_replace_src): Remove.
7807         * recog.h: Remove the corresponding prototype.
7808
7809 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7810
7811         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
7812         MAYBE_REG_PARM_STACK_SPACE.
7813         * function.c: Likewise.
7814         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
7815         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7816         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
7817         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7818
7819 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7820
7821         * c-decl.c (c_expand_deferred_function): Remove.
7822         * c-tree.h: Remove the corresponding prototype.
7823
7824 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7825
7826         * postreload.c (reload_cse_move2add): Generate just a PLUS
7827         instead of an entire SET.
7828
7829 2004-02-26  Jan Hubicka  <jh@suse.cz>
7830
7831         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
7832         /pentium4m.
7833         * i386.c (override_options): Add support for new CPUs.
7834         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
7835         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
7836         constants.
7837         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
7838
7839 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
7840
7841         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
7842
7843 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
7844
7845         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
7846         (sparc_emit_fixunsdi): New prototype.
7847         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
7848         (sparc_emit_fixunsdi): New function.
7849         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
7850         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
7851         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
7852         to sparc_emit_floatunsdi.
7853         (fixuns_truncsfdi2): New expander.
7854         (fixuns_truncdfdi2): Likewise.
7855
7856 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
7857
7858         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
7859         unless HAVE_cc0.
7860
7861 2004-02-25  Richard Henderson  <rth@redhat.com>
7862
7863         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
7864         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
7865         use (op0-op1) == 0 if op0 is a pointer.
7866         * config/alpha/alpha.md (cmpdi): Use some_operand.
7867         (three comparison combine splits): Remove.
7868
7869 2004-02-25  Richard Henderson  <rth@redhat.com>
7870
7871         PR c/12794
7872         * c-common.c (handle_alias_attribute): Reject the attribute if
7873         current_function_decl is set.
7874
7875 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7876
7877         * config.gcc: Add comment describing extra_gcc_objs.
7878         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
7879         * configure.ac (extra_gcc_objs): New substitution variable.
7880         (host_extra_gcc_objs): Don't substitute.
7881         * configure: Regenerate.
7882         * Makefile.in: Use extra_gcc_objs.
7883
7884 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7885
7886         * doc/contrib.texi: Add an entry for myself.
7887
7888 2004-02-25  Jan Hubicka  <jh@suse.cz>
7889
7890         * basic-block.h (make_eh_edge, break_superblocks): Declare.
7891         * cfgbuild.c (make_eh_edge):  Make global.
7892         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
7893         * except.c (build_post_landing_pads, connect_post_landing_pads,
7894         dw2_build_landing_pads, sjlj_emit_function_enter,
7895         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7896         sjlj_build_landing_pads): Update CFG.
7897         (emit_to_new_bb_before): New function.
7898         (finish_eh_generation): Do not rebuild the CFG.
7899
7900 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7901
7902         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
7903         target_cpu_default defines.
7904         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
7905         * pa.h (TARGET_DEFAULT): Likewise.
7906
7907 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
7908
7909         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
7910         comparisons with regard to signedness.
7911
7912 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7913
7914         * arm.c (thumb_legitimize_address): New function.
7915         * arm-protos.h: Prototype it.
7916         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
7917         (LEGITIMIZE_ADDRESS): Use it.
7918
7919 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
7920
7921         * reload1.c (reload): Only spill eliminable register with multiple
7922         adjacent elimination alternatives if all alternatives fail.
7923
7924 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7925
7926         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
7927         is -4095...+4095 inclusive.
7928
7929 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
7930
7931         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
7932         the bootstrap failure with Sun CC 5.4 and 5.5.
7933
7934 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
7935
7936         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
7937         which modifies NEWREG.
7938         (cse_condition_code_reg): Update the mode of CC_REG in
7939         CC_SRC_INSN on our own.
7940
7941 2004-02-24  Michael Matz  <matz@suse.de>
7942
7943         * config/i386/i386.c (ix86_comp_type_attributes): Check for
7944         regparm attributes.
7945
7946 2004-02-24  Richard Henderson  <rth@redhat.com>
7947
7948         * toplev.c (dump_file_tbl): Rename from dump_file.
7949         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
7950         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
7951         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
7952         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
7953         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
7954         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
7955         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
7956         s/rtl_dump_file/dump_file/g.
7957
7958 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
7959
7960         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
7961         (spe_fixuns_truncsfsi2): Delete.
7962
7963         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
7964         (fixuns_truncsfsi2): Delete.
7965
7966 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
7967
7968         PR/14240
7969         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
7970
7971 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
7972
7973         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
7974
7975 2004-02-24  Jason Merrill  <jason@redhat.com>
7976
7977         * tree.c (check_qualified_type): New fn.
7978         (get_qualified_type): Use it.  If type already has the desired
7979         quals, just return it.
7980         * tree.h: Declare it.
7981
7982 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
7983
7984         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
7985         TARGET_SCHED_FINISH_GLOBAL): New macros.
7986
7987         * target.h (md_init_global, md_finish_global): Function
7988         declarations corresponding to new target macros.
7989
7990         * haifa-sched.c (sched_init, sched_finish): Allow target to
7991         call the new schedular hooks.
7992
7993         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
7994         call to update_life_info.
7995
7996         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
7997         flag_schedule_insns for SH4.
7998
7999         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
8000         find_set_regmode_weight, find_insn_regmode_weight,
8001         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
8002         sh_variable_issue, high_pressure, ready_reorder,
8003         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
8004         functions used to throttle the insn movement in first
8005         scheduling pass for SH.
8006
8007         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
8008         TARGET_SCHED_FINISH_GLOBAL.
8009
8010 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
8011
8012         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
8013         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
8014         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
8015         symbols in sections named by the user.
8016         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
8017         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
8018         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
8019         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
8020         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
8021         the above.
8022         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
8023         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
8024         one more pseudo to further improve code generation.
8025         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
8026         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
8027         inside UNSPEC.
8028         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
8029         * config/frv/frv.c (frv_legitimate_address_p): Added
8030         allow_double_reg_p argument.  Adjust all callers.  Use it to
8031         decide whether to enable double-register indirect addressing.
8032         (frv_funcdesc_alias_set): Remove.
8033         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
8034         register.  Emit movdi_ldd.
8035         (ldd_address_operand): New.
8036         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
8037         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8038         (PREDICATE_CODES): Add ldd_address_operand.
8039         * config/frv/frv.md (movdi_ldd): New.
8040         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
8041         intermediate computations if possible.
8042         (symGOTOFF2reg_i): Fix harmless typo.
8043         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
8044         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
8045         relocated p_vaddr to vaddr type.
8046         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
8047         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
8048         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
8049         MEM, or use a funcdesc alias set.  Use regular move instead of
8050         ldd.
8051         (dbl_memory_one_insn_operand): Recognize function descriptors by
8052         type or by alias set, and don't split them.
8053         * config/frv/frv.md (call, call_value): Never use call_internal
8054         for fdpic.
8055         (call_internal, call_value_internal): Never match for FDPIC.
8056         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
8057         call_value_fdpicsi): Require FDPIC.
8058         (ldd): Removed.
8059         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
8060         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
8061         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
8062         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
8063         FDPIC.  Compute data base address.
8064         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
8065         before the other self-specs are processed.
8066         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
8067         Build with -fPIC.
8068         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
8069         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
8070         inhibit_libc is defined.
8071         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
8072         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
8073         __FRV_FDPIC__.
8074         (__RELOC_POINTER): Define.
8075         (_Unwind_IteratePhdrCallback): Use it.
8076         * config/frv/frv.h (Twrite): Define.
8077         (TRANSFER_FROM_TRAMPOLINE): Use it.
8078         * config/frv/linux.h (INVOKE__main): Undefine.
8079         (Twrite): Override.
8080         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
8081         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
8082         (-mlibrary-pic): Emphasize that this option generates EABI code.
8083         (-mcpu): Add fr550.
8084         (-mpack): Remove.
8085         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
8086         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
8087         and CONSTs in FDPIC mode.
8088         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
8089         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
8090         * config/frv/frv.c (move_source_operand): Don't accept symbolic
8091         constants.
8092         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
8093         rather than 'i' constraint for the 2-instruction alternative.
8094         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
8095         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
8096         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
8097         EXTRA_CONSTRAINT_FOR_Y.
8098         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
8099         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
8100         (addsi3): Change 'Y' constraint to 'Q'.
8101         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
8102         * reload.c (CONST_POOL_OK_P): New macro.
8103         (find_reloads): Use it to decide whether a constant can be forced
8104         into memory.
8105         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
8106         constant satisfies got12_operand.
8107         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
8108         (frv_legitimate_address_p): Check for valid unspec offsets using
8109         got12_operand rather than frv_legitimate_fdpic_operand_p.
8110         (frv_legitimate_fdpic_operand_p): Delete.
8111         (frv_emit_movsi): Abort if we try to use the FDPIC register during
8112         or after reload.
8113         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
8114         TARGET_FDPIC.
8115         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
8116         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
8117         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
8118         (frv_fdpic_fptr_operand): Don't declare here.
8119         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
8120         rather than fdpic_got12_operand.
8121         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
8122         got12_operand and const_unspec_operand.
8123         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
8124         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
8125         (symbolic_operand): Remove.
8126         (const_unspec_operand): New predicate.
8127         * config/frv/frv.md (*movsi_got): Use got12_operand.
8128         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
8129         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
8130         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
8131         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
8132         * config/frv/frv.c (frv_unspec): New structure.
8133         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
8134         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
8135         validate CONST indices.  Use frv_output_const_unspec to print them.
8136         (frv_print_operand): Update call to unspec_got_name.  Use
8137         frv_output_const_unspec to print constant unspecs.
8138         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
8139         Reject UNSPECs otherwise.
8140         (unspec_got_name): Take the relocation number as argument, not an
8141         rtx containing it.
8142         (frv_output_addr_const_extra): Remove, replacing with...
8143         (frv_output_const_unspec): ...this new function.
8144         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
8145         (gpr_or_int12_operand): Use fdpic_got12_operand.
8146         (dbl_memory_one_insn_operand): Likewise.
8147         (fdpic_got12_operand): Use frv_const_unspec_p.
8148         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
8149         are already legitimate.  Use frv_small_data_reloc_p when deciding
8150         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
8151         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
8152         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
8153         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
8154         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
8155         label, for real this time.
8156         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
8157         representation of visibility.
8158         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
8159         such.
8160         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
8161         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
8162         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
8163         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
8164         it was explicitly disabled.
8165         (frv_stack_info): There is no need to save the link register in every
8166         frame unless TARGET_LINKED_FP is true.
8167         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
8168         frame pointer if the stack pointer might change value.
8169         (frv_return_addr_rtx): Check and process "count" argument.
8170         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
8171         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
8172         (frv_find_base_term): Declare.
8173         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
8174         (FIND_BASE_TERM): Define.
8175         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
8176         small_data_register_operand, small_data_symbolic_operand.  Add
8177         symbolic_operand.
8178         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
8179         (frv_print_operand_memory_reference, output_move_single): Remove
8180         special handling for unlegitimized sdata addresses.
8181         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
8182         and symbolic addresses.
8183         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
8184         (frv_find_base_term): New function.
8185         (int_2word_operand): Check specifically for symbolic address constants.
8186         (pic_register_operand, pic_symbolic_operand): Delete.
8187         (small_data_register_operand, small_data_symbolic_operand): Delete.
8188         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
8189         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
8190         (move_source_operand): Only accept CONSTs if they're a two-insn
8191         symbolic constant.
8192         (fdpic_got12_operand): Don't require TARGET_FDPIC.
8193         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
8194         using gen_symGOTOFF2reg*.
8195         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
8196         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
8197         themselves a cost of 3 insns.
8198         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
8199         Change predicate to symbolic_operand.
8200         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
8201         (*movsi_lda_sdata): Delete.
8202         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
8203         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
8204         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
8205         frv-*-*linux*.
8206         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
8207         label.
8208         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
8209         -multilib-library-pic.
8210         (LINK_SPEC): Add -z text for -mfdpic.
8211         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
8212         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
8213         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
8214         Override.
8215         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
8216         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
8217         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
8218         crtstuff-generated files.
8219         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
8220         * config.gcc: Add frv-*-*linux*.
8221         * config/frv/linux.h, config/frv/t-linux: New.
8222         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
8223         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
8224         when -mfdpic even if a linker script is explicitly listed.
8225         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
8226         * config/frv/frv.c (frv_override_options): Clear asm_out
8227         unaligned_op for SImode on FDPIC.
8228         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
8229         argument passed to decl_readonly_section.
8230         (frv_assemble_integer): Revert 2003-09-30's change, but make the
8231         whole block run with FDPIC even with -fno-PIC.
8232         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
8233         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
8234         symbol or label plus offset to memory.
8235         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
8236         GOTOFF and GPREL for LABEL_REF.
8237         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
8238         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
8239         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
8240         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
8241         * doc/invoke.texi: Document them.
8242         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
8243         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
8244         (frv_splittable_got_operand): Removed.
8245         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
8246         LO_SUM.  Add comments.
8247         (frv_override_options): Moved enabling of FDPIC to
8248         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
8249         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
8250         (frv_legitimize_fdpic_address): Don't duplicate logic in
8251         frv_emit_movsi.
8252         (frv_gen_GPsym2reg): New.
8253         (unspec_got_name): Added gprel.
8254         (frv_expand_fdpic_call): Add support for inlining PLTs.
8255         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
8256         (gpr_or_int12_operand): Added GPREL12.
8257         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
8258         (small_data_symbolic_operand): Fail if FDPIC.
8259         (fdpic_splittable_got_operand): Removed.
8260         (fdpic_got12_operand): Added GPREL12.
8261         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
8262         when appropriate.  Fix sdata GOTOFF.
8263         (frv_legitimate_constant_p): Require legitimate PIC operand for
8264         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
8265         (frv_assemble_integer): Move FDPIC funcdesc handling out of
8266         flag_pic case.
8267         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
8268         frv_assemble_integer fails.
8269         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
8270         (SUBTARGET_DRIVER_SELF_SPECS): New.
8271         (ASM_SPEC): Don't pass -mno-fdpic.
8272         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
8273         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
8274         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
8275         -multilib-library-pic.
8276         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
8277         condexec_si_media_operator, condexec_sf_add_operator and
8278         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
8279         and condexec_sf_unary_operator.
8280         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
8281         New.
8282         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
8283         movsi_internal.  Give them internal names.  movsi_got has type
8284         int.
8285         (fdpic got splitters): Remove.
8286         (symGPREL2reg, symGPREL2reg_hilo): New.
8287         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
8288         to -mlibrary-pic.  Map -multilib-library-pic to it.
8289         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
8290         Document.
8291         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
8292         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
8293         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
8294         (frv_cannot_force_const_mem): New function.
8295         (const_small_data_p, plus_small_data_p): Update comments on sdata
8296         on FDPIC.
8297         (frv_override_options): Set flag_pie for FDPIC too.
8298         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
8299         call-saved registers on FDPIC.
8300         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
8301         don't force LR to be preserved.
8302         (frv_expand_prologue): Likewise.
8303         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
8304         (frv_frame_pointer_required): Don't force it just because the
8305         FDPIC register is used.
8306         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
8307         operand only if !condexec_p.
8308         (frv_legitimize_address): Return the FDPIC-legitimized address.
8309         Don't match small data here on FDPIC.
8310         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
8311         symbols.  Use TRUE/FALSE instead of 1/0.
8312         (frv_local_funcdesc_p): New.
8313         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
8314         immediates when possible.
8315         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
8316         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
8317         an UNSPEC_GOT.
8318         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
8319         12-bit immediates when possible.
8320         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
8321         are not legitimate pic operands.
8322         (frv_in_small_data_p): Re-enable for FDPIC.
8323         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
8324         (FRV_GLOBAL_P): Removed.
8325         * config/frv/frv.md: Add modes to CONSTs.
8326         (movsi_got): New.
8327         (movsi_lo_sum_got): Use separate matches instead of match_dup.
8328         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
8329         (fdpic splittable operations): Match on flag_pic != 1.
8330         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
8331         * config/frv/frv.c (frv_asm_out_constructor,
8332         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
8333         bytes, not bits.
8334         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
8335         * config/frv/frv.c (frv_assemble_integer): Reject complex
8336         expressions referencing function SYMBOL_REFs.
8337         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
8338         (move_source_operand): Reject CONSTs that reference function
8339         SYMBOL_REFs on FDPIC.
8340         (frv_emit_movsi): If we get such a CONST, break it up.
8341         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
8342         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
8343         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
8344         MEM.
8345         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
8346         (frv_trampoline_size): Increase for FDPIC.
8347         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
8348         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
8349         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
8350         Disable use of GOTOFF for now.
8351         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
8352         Disable use of small data in FDPIC for now.
8353         (frv_asm_output_mi_thunk): Implement for FDPIC.
8354         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
8355         * config/frv/frv.c (frv_asm_out_constructor): Use
8356         frv_assemble_integer for FDPIC pointers.
8357         (frv_asm_out_destructor): Likewise.
8358         * config/frv/frv.md (ldd): Fix order of operands.  Use
8359         address_operand for input.
8360         2003-09-18  DJ Delorie  <dj@redhat.com>
8361         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
8362         (unspec_got_name): Correct typo.
8363         (frv_emit_movsi): Pre-expand splittable GOTs.
8364         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
8365         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
8366         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
8367         * config/frv/t-frv: Add -mfdpic multilibs.
8368         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
8369         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
8370         * config/frv/frv.c (frv_override_options): -mfdpic assumes
8371         flag_pic, default to 32-bit pics, require DWORD ops.
8372         (frv_override_options): Add W and Z constraints.
8373         (frv_expand_prologue): No pic prologue for -mfdpic.
8374         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
8375         (frv_print_operand_memory_reference): Handle GOT constants.
8376         (frv_legitimate_address_p): Allow GOT constants.
8377         (frv_legitimize_address): Handle GOT addresses too.
8378         (frv_legitimate_fdpic_operand_p): New.
8379         (frv_legitimize_fdpic_address): New.
8380         (unspec_got_name): New.
8381         (frv_output_addr_const_extra): New.
8382         (frv_expand_fdpic_call): New.
8383         (frv_fdpic_fptr_operand): New.
8384         (gpr_or_int12_operand): Handle GOT operands.
8385         (int_2word_operand): Handle GOT operands.
8386         (fdpic_operand): New.
8387         (fdpic_splittable_got_operand): New.
8388         (fdpic_got12_operand): New.
8389         (frv_emit_movsi): Handle GOT operands.
8390         (frv_assemble_integer): -mfdpic doesn't use rofixups.
8391         (frv_print_operand): Support 'g' code for GOT operands.
8392         * config/frv/frv-protos.h: Add prototypes as needed.
8393         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
8394         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
8395         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
8396         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
8397         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
8398         R_FRV_GOTOFFLO): New.
8399         (movsi_high_got, movsi_lo_sum_got): New.
8400         (*movsi_pic): Don't use this splitter for -mfdpic.
8401         (addsi3): Allow GOT references also.
8402         (call, call_value): Handle -mfdpic separately.
8403         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
8404         call_value_fdpicsi): New.
8405         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
8406         symGOTOFF2reg_i): New.
8407         * config/frv/frv.h (MASK_FDPIC): New.
8408         (TARGET_FDPIC): New.
8409         (TARGET_SWITCHES): Add -mfdpic.
8410         (FDPIC_FPTR_REGNO): New.
8411         (FDPIC_REGNO): New.
8412         (OUR_FDPIC_REG): New.
8413         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
8414         FDPIC_CALL_REGS.
8415         (REG_CLASS_NAMES): Likewise.
8416         (REG_CLASS_CONTENTS): Likewise.
8417         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
8418         (EXTRA_CONSTRAINT): Add it here.
8419         (FRV_GLOBAL_P): New.
8420         (OUTPUT_ADDR_CONST_EXTRA): New.
8421
8422 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8423
8424         * config/sparc/sparc.h: Remove commented-out definitions of
8425         TARGET_EDOM and GEN_ERRNO_RTX.
8426
8427 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8428
8429         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
8430         df_analyse with df_analyze.
8431
8432 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
8433
8434         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
8435         beginning of block.
8436
8437 2004-02-23  James E Wilson  <wilson@specifixinc.com>
8438
8439         * calls.c (precompute_arguments): Update comment.
8440
8441 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8442
8443         * et-forest.c: Replace et_occurences with et_occurrences.
8444
8445 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8446
8447         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
8448         with iv_analyze.
8449
8450 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
8451
8452         * config/i386/i386.c: Rename pni to sse3.
8453         * config/i386/i386.h: Likewise.
8454         * config/i386/i386.md: Likewise.
8455         * config/i386/pmmintrin.h: Likewise.
8456         * doc/extend.texi: Likewise.
8457         * doc/invoke.texi: Likewise.
8458
8459 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
8460             Kazu Hirata  <kazu@cs.umass.edu>
8461
8462         Remove -fwritable-strings.
8463         * c-common.c (fix_string_type): Don't check
8464         flag_writable_strings.
8465         (fix_string_type): Likewise.
8466         * c-opts.c (set_std_c89): Don't initialize
8467         flag_writable_strings.
8468         (set_std_c99): Likewise.
8469         * common.opt (fwritable-strings): Remove.
8470         * flags.h: Remove the external declaration of
8471         flag_writable_strings.
8472         * opts.c (common_handle_option) <OPT_fwritable_strings>:
8473         Remove.
8474         * toplev.c (flag_writable_strings): Remove.
8475         (f_options): Remove an entry for writable-strings.
8476         * varasm.c (const_hash_1) <STRING_CST>: Don't check
8477         flag_writable_strings.
8478         (compare_constant) <STRING_CST>: Likewise.
8479         (build_constant_desc): Likewise.
8480         * config/darwin.c (machopic_select_section): Likewise.
8481         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
8482         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
8483         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
8484         * config/mips/mips.c (mips_select_section): Likewise.
8485         (mips_encode_section_info): Likewise.
8486         * config/pa/pa.c (pa_select_section): Likewise.
8487         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
8488         * config/v850/v850.c (v850_select_section): Likewise.
8489         * doc/invoke.texi (-fwritable-strings): Remove.
8490         (-fno-const-strings): Don't mention -fwritable-strings.
8491         * doc/trouble.texi: Don't mention -fwritable-strings.
8492
8493 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
8494
8495         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
8496
8497 2004-02-23  Dale Johannesen  <dalej@apple.com>
8498
8499         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
8500         (movdf_hardfloat64):  Ditto.
8501         (movdf_softfloat64):  Ditto.
8502
8503 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
8504         * config/rs6000/rs6000.c (function_arg): call to
8505         rs6000_mixed_function_arg for DFmode moved to allow
8506         normal DFmode incoming register assignment.
8507
8508 2004-02-23  Dale Johannesen  <dalej@apple.com>
8509
8510         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
8511         (movdf_hardfloat64):  Ditto.
8512
8513 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8514
8515         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
8516         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
8517         copyright.
8518
8519 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
8520
8521         PR c/14156
8522         * c-typeck.c (c_expand_return): Change check for VAR_DECL
8523         to use DECL_P instead.
8524
8525         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
8526         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
8527
8528 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8529
8530         * Makefile.in (opts.o): Depend on target.h.
8531         * opts.c (decode_options): Use targetm.default_short_enums
8532         instead of DEFAULT_SHORT_ENUMS.
8533         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8534         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
8535         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
8536         * target.h (gcc_target): Add default_short_enums.
8537         * config/cris/cris.h: Remove a comment about
8538         DEFAULT_SHORT_ENUMS.
8539         * config/ip2k/ip2k.h: Likewise.
8540         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
8541         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
8542
8543 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8544             Falk Hueffner  <falk@debian.org>
8545
8546         PR c/14188
8547         * builtins.c (expand_builtin_va_arg): Emit an informative message
8548         if a trap is generated.
8549         * c-typeck.c (build_function_call): Likewise.
8550
8551 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8552
8553         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
8554         fopen.
8555         * libgcov.c: Include sys/stat.h.
8556         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
8557         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
8558         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
8559         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
8560
8561 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
8562
8563         * reorg.c: Remove comments about dead ports.
8564
8565 2004-02-22  Christopher Faylor  <cgf@redhat.com>
8566
8567         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
8568         extra host object file when targetting cygwin rather than generic
8569         object files.
8570
8571 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
8572
8573         Merge from tree-ssa:
8574         2003-11-20  Richard Henderson  <rth@redhat.com>
8575
8576                 * tree-inline.c (insert_decl_map): New.
8577                 (remap_decl, remap_type, remap_block, copy_body_r,
8578                 initialize_inlined_parameters, declare_return_variable,
8579                 remap_save_expr): Use it.
8580
8581         * function.c (copy_body_r): Add mapping from id->ret_label to
8582         id->ret_label.  Revert test for ret_label.
8583
8584 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8585
8586         * genoutput.c (process_template): Strip trailing whitespace in @
8587         templates and issue a warning if there was any.
8588
8589 2004-02-21  Christopher Faylor  <cgf@redhat.com>
8590
8591         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
8592         object file when targetting cygwin.
8593         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
8594         overridden by top-level Makefile.
8595
8596 2004-02-21  Roger Sayle  <roger@eyesopen.com>
8597
8598         * config/i386/i386.c (standard_80387_constant_p): Also prefer
8599         the x87's load constant instructions when optimizing for size.
8600
8601 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
8602
8603         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
8604         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
8605         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
8606         * fold-const.c: Likewise.
8607         * simplify-rtx.c: Likewise.
8608
8609 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
8610
8611         * combine.c (can_combine_p): Don't ignore SETs marked with
8612         REG_EH_REGION notes.
8613         (try_combine): When attemting to fix unrecognized insns, don't
8614         split a PARALLEL that contains the original i2.
8615
8616 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
8617
8618         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
8619         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
8620         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
8621         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
8622         (vector, pixel, bool): #define to __vector, __pixel and __bool.
8623         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
8624         portion of header.
8625         (__altivec_link_error_invalid_argument): Remove prototype; will use
8626         __builtin_altivec_compiletime_error("vec_*") instead.
8627         (vec_*): Fix/complete set of available operation overloads given the
8628         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
8629         cv-correctness of pointer arguments; in C, always check for correct
8630         argument types before macro expansion.
8631         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
8632         defining Darwin/PowerPC-specific '-f[no-]altivec' and
8633         '-W[no-]altivec-long-deprecated' switches.
8634         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
8635         '__vector', '__pixel' and '__bool' macros using
8636         '__attribute__((altivec(...)))' types.
8637         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
8638         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
8639         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
8640         New type nodes.
8641         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
8642         handling '-W[no-]altivec-long-deprecated'.
8643         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
8644         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
8645         altivec_expand_dst_builtin): Remove casts from integer literals.
8646         (altivec_expand_builtin): Likewise; handle expansion of new
8647         '__builtin_altivec_compiletime_error' function.
8648         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
8649         types, and make them distinct from other vector types; register
8650         '__builtin_altivec_compiletime_error' function.
8651         (print_operand): For 'P', print a full target register name instead of
8652         merely its number.
8653         (rs6000_attribute_table): Add "altivec" attribute.
8654         (rs6000_handle_altivec_attribute): New function.
8655         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
8656         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
8657         maps to).
8658         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
8659         declare.
8660         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
8661
8662 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8663
8664         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
8665         check.
8666         (shift_mix4left+2): Delete redundant pattern.
8667
8668 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8669
8670         * alias.c (OUTGOING_REGNO): Don't define the default.
8671         * builtins.c (OUTGOING_REGNO): Likewise.
8672         (INCOMING_REGNO): Likewise.
8673         (apply_args_register_offset): Always use OUTGOING_REGNO.
8674         * combine.c (OUTGOING_REGNO): Likewise.
8675         * sibcall.c (OUTGOING_REGNO): Likewise.
8676         * defaults.h (INCOMING_REGNO): Provide the default.
8677         (OUTGOING_REGNO): Likewise.
8678
8679 2004-02-21  Jan Hubicka  <jh@suse.cz>
8680
8681         * params.def (max-peeled-insns, max-completely-peeled-insns,
8682         max-once-peeled-insns): Set to 400.
8683
8684 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8685
8686         PR c++/12007
8687         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
8688         are set for parameters before outputing debugging information.
8689
8690 2004-02-20  Falk Hueffner  <falk@debian.org>
8691
8692         PR target/14201
8693         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
8694         numbers.
8695
8696 2004-02-20  Per Bothner  <per@bothner.com>
8697
8698         * input.h:  Don't #include line-map.h.  It may cause link problems
8699         with undefined linemap_line_start when line-map.h is included but
8700         line-map.o is not linked, as currently happens with gengtype on
8701         compilers that don't support inline.
8702         * toplev.c:  So we do have to explicitly #include line-map.h here.
8703
8704 2004-02-20  Richard Henderson  <rth@redhat.com>
8705
8706         * doc/invoke.texi: Add -Wvariadic-macros.
8707
8708 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8709
8710         * haifa-sched.c (sched_emit_insn): Remove.
8711         * sched-int.h: Remove the corresponding prototype.
8712
8713 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8714
8715         Revert:
8716         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8717         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8718         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8719         * config/cris/cris.h: Remove a comment about
8720         DEFAULT_SHORT_ENUMS.
8721         * config/ip2k/ip2k.h: Likewise.
8722         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8723
8724 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
8725             Tom Tromey  <tromey@redhat.com>
8726
8727         * doc/install.texi: Moved --disable-libgcj and
8728         --with-system-zlib documentation to new section for
8729         Java-specific options.
8730         Added explicit Cross-Compiler-Specific Options subheading.
8731         Added section for Java-specific options.
8732
8733 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
8734
8735         * doc/install.texi (Building the Ada compiler): Remove
8736         example.
8737
8738 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8739
8740         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
8741
8742 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8743
8744         * gcc.c (process_command): Allow translation of the copyright
8745         symbol but not the rest of the copyright message.
8746         * gcov.c (print_version): Likewise.  Allow translation of the
8747         message about warranty.
8748
8749 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
8750
8751         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
8752         predicate.
8753         ("*andsi_clear"): Tweak constraints to not match postincrement.
8754         Adjust the predicate to exclude a volatile memory reference.
8755         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
8756         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
8757
8758 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
8759
8760         * move-if-change: Remove.
8761         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
8762         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
8763         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
8764         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
8765         (s-gtyp-gen, s-iov): Use the top level move-if-change.
8766         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
8767
8768 2004-02-19  James E Wilson  <wilson@specifixinc.com>
8769
8770         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
8771         for operand2.  Add condition that requires register_operand operand2
8772         before reload.
8773
8774 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
8775             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8776
8777         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
8778         * config/mips/mips.md: Expand comment above unaligned loads and stores.
8779
8780 2004-02-19  Richard Henderson  <rth@redhat.com>
8781
8782         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
8783         * tree.c (build0, build1, build2, build3, build4): Split out from...
8784         (build): ... here.  Call them.
8785         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
8786
8787         * convert.c (convert_to_integer): Remove extra build argument.
8788         * tree-inline.c (expand_call_inline): Likewise.
8789
8790 2004-02-19  Richard Henderson  <rth@redhat.com>
8791
8792         * c-opts.c (warn_variadic_macros): New.
8793         (c_common_handle_option): Set it.
8794         (sanitize_cpp_opts): Copy it to cpp_opts.
8795         * c.opt (Wvariadic-macros): New.
8796         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
8797         * cppinit.c (cpp_create_reader): Initialize it.
8798         * cppmacro.c (parse_params): Check it.
8799
8800 2004-02-19  David Daney <ddaney@avtrex.com>
8801
8802         PR preprocessor/14198
8803         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
8804         builtin_assert ("machine=mips")
8805
8806 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8807
8808         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8809         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8810         * config/cris/cris.h: Remove a comment about
8811         DEFAULT_SHORT_ENUMS.
8812         * config/ip2k/ip2k.h: Likewise.
8813         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8814
8815 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8816
8817         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
8818         when passing single SFmode quantities in general registers,
8819         put them in the high half.
8820
8821 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8822
8823         * doc/md.texi (Standard Names): Document additional dependency on
8824         fix pattern.
8825
8826         * optabs.c (ftruncify): Remove.
8827         (expand_fix): Manually inline ftruncify above.
8828         (can_fix_p): Add FIXME note.
8829
8830 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8831
8832         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
8833         spe_fixuns_truncsfsi2.
8834
8835         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
8836         fixuns_truncsfsi2.
8837
8838 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
8839
8840         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
8841         * testsuite/gcc.dg/20040219-1.c: New test.
8842
8843 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
8844
8845         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
8846         "*subsf3_cconly"): Subtraction is not commutative.
8847
8848 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8849
8850         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
8851         (sdbout_symbol): If called before sdbout_init, queue DECL for
8852         later and return.
8853         (sdbout_init): Set sdbout_initialized true, process decls
8854         queued earlier by sdbout_symbol.
8855         (sdbout_finish): Use size_t for index variable.
8856
8857 2004-02-19  Jeff Law  <law@redhat.com>
8858
8859         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
8860         for unordered comparison codes.
8861
8862 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
8863
8864         * reload1.c (reload): Correct comment.
8865         (scan_paradoxical_subregs): Remove #if 0 and old comment.
8866         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
8867         register variables are not used by reload.
8868
8869 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
8870
8871         PR target/14209
8872         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
8873         constraints to not match postincrement.  Adjust the predicate to
8874         exclude a volatile memory reference.
8875
8876 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8877
8878         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
8879
8880 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8881
8882         * hooks.c (hook_void_tree_int): Remove.
8883         (hook_void_constcharptr): Likewise.
8884         (hook_int_void_0): Likewise.
8885         * hooks.h: Remove the prototypes for the above three
8886         functions.
8887         * targhooks.c (hook_bool_machine_mode_true): Remove.
8888         * targhooks.h: Remove the prototype for
8889         hook_bool_machine_mode_true.
8890
8891 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8892
8893         * emit-rtl.c (subreg_realpart_p): Remove.
8894         (reorder_insns_with_line_notes): Likewise.
8895         (end_full_sequence): Likewise.
8896         * rtl.h: Remove the prototype for the above functions.
8897
8898 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8899
8900         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
8901         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8902         config/iq2000/iq2000.h, config/m32r/m32r.h,
8903         config/pdp11/pdp11.h, config/sparc/sparc.h,
8904         config/xtensa/xtensa.h: Remove commented-out or useless
8905         definitions of CASE_VECTOR_PC_RELATIVE.
8906
8907 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8908
8909         * loop.c (all_sets_invariant_p): Remove.
8910
8911 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
8912
8913         PR target/12916
8914         * config/sparc/sparc.h (NPARM_REGS): Delete.
8915         (BASE_RETURN_VALUE_REG): Likewise.
8916         (BASE_OUTGOING_VALUE_REG): Likewise.
8917         (BASE_PASSING_ARG_REG): Likewise.
8918         (BASE_INCOMING_ARG_REG): Likewise.
8919         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
8920         TARGET_ARCH64, not TARGET_V9.
8921         (function_arg_slotno): Dispatch based on the mode class.
8922         Handle vector modes like floating-point modes.
8923         (function_arg_record_value_1): Handle vector types like
8924         floating-point types.
8925         (function_arg_record_value_2): Likewise.
8926         Calculate regno after mode transformation.
8927         (function_arg): Handle vector modes like floating-point modes.
8928         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
8929         If ARCH64, do not recheck alignment.
8930         (function_arg_pass_by_reference): Reorder the conditions.
8931         (sparc_return_in_memory): Move after function_arg_padding.
8932         Implement calling conventions for vector modes.
8933         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
8934         (function_value): Move scope of 'regbase'.
8935         Implement calling conventions for vector modes.
8936         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
8937         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
8938         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
8939         the argument is passed by reference.
8940         (sparc_type_code): Handle vector types.
8941
8942 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
8943
8944         * function.c (assign_parms): When building decl_rtl for
8945         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
8946
8947 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
8948
8949         * expr.c (is_aligning_offset): Check if we are aligning the
8950         expressions's address over BIGGEST_ALIGNMENT in bytes, not
8951         in bits.
8952
8953 2003-02-18  Matt Austern  <austern@apple.com>
8954
8955         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
8956         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
8957         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
8958         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
8959         spec string.
8960         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
8961
8962 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
8963
8964         * dwarf2out.c (loclabel_num): Move outside #ifdef
8965         DWARF2_DEBUGGING_INFO and mark with GTY(()).
8966         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
8967         Mark with GTY(()).
8968         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
8969         Allocate memory with ggc_alloc.  No need to copy anything.
8970         (ia64_hpux_file_end): Update to match.
8971
8972 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
8973
8974         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
8975         by default.
8976
8977 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8978
8979         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
8980         ("divmodtisi3"): Likewise.
8981         ("udivmoddi4", "udivmodtidi3"): Likewise.
8982         ("divmodsi4", "divmoddisi3"): Likewise.
8983         ("udivmodsi4", "udivmoddisi3"): Likewise.
8984         ("udivsi3", "umodsi3"): Likewise.
8985
8986 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8987
8988         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
8989         placeholder insn when chunkifying the pool.
8990
8991 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8992
8993         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
8994         generating PIC code.
8995
8996 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8997
8998         * config/h8300/h8300-protos.h: Add a prototype for
8999         h8300_expand_branch.
9000         * config/h8300/h8300.c (h8300_expand_branch): New.
9001         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
9002         bgtu, beq, bne): Call h8300_expand_branch().
9003
9004 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9005
9006         * config/h8300/h8300-protos.h: Add prototypes for
9007         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
9008         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
9009         (h8300_hard_regno_mode_ok): Likewise.
9010         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
9011         h8300_hard_regno_nregs().
9012         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
9013
9014 2004-02-18  Per Bothner  <per@bothner.com>
9015
9016         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
9017         partly reverts my 2003-10-01 change, because we're back to logically
9018         including <command line> inside the main line.
9019         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
9020         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
9021         Fixes PR preprocessor/14103.
9022
9023         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
9024         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
9025         (cpp_push_include):  Don't need to increment pfile's line field.
9026         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
9027
9028         * c-ppoutput.c (print struct):  New first_time field.
9029         (init_pp_output):  Set print.first_time.
9030         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
9031         which is set also for (say) <command line>.  Clear print.first_time.
9032
9033         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
9034         does not match the code, so fix both.
9035         (should_stack_file):  Inline include_pch_p function.
9036         (include_pch_p):  Remove pointless function.
9037
9038         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
9039
9040 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9041
9042         * config/h8300/h8300.md (four define_peephole2's): Use
9043         h8300_regs_ok_for_stm().
9044
9045 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9046
9047         * config/h8300/h8300-protos.h: Update the prototype for
9048         expand_a_rotate().
9049         * config/h8300/h8300.c (expand_a_rotate): Remove the first
9050         argument.
9051         * config/h8300/h8300.md: Update all callers.
9052
9053 2004-02-18  Jan Hubicka  <jh@suse.cz>
9054
9055         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
9056         floats.
9057         (simplify_binary_operation): Deal with logicals on floats.
9058
9059         * i386.md (SSE fabs splitters): Emit new patterns.
9060         (SSE cmov splitters): Likewise.
9061         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
9062         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
9063         subregs.
9064         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
9065         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
9066
9067 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9068
9069         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
9070         by hand.
9071         (output_a_rotate): Tweak a comment.
9072         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
9073         (*rotlhi3_1): Change to rotlhi3_1.
9074         (*rotlsi3_1): Change to rotlsi3_1.
9075
9076 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
9077
9078         PR target/13866
9079         * arm.c (load_multiple_operation): Don't insist that the source reg
9080         of a post-increment component is the same as the destination.
9081         (store_multiple_operation): Likewise.
9082
9083 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9084
9085         * config/h8300/h8300.md: Move movsf patterns into one section
9086         of the file.
9087
9088 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9089
9090         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
9091         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
9092         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
9093         config/mips/linux64.h, config/pa/pa-64.h,
9094         config/rs6000/aix51.h, config/rs6000/aix52.h,
9095         config/rs6000/spe.md, config/sparc/linux.h,
9096         config/sparc/linux64.h: Update copyright.
9097
9098 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
9099
9100         * config/h8300/h8300.md: Move push patterns into one
9101         section of the file.
9102
9103 2004-02-18  Mark Mitchell <mark@codesourcery.com>
9104
9105         PR c++/11326
9106         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
9107         fntype.
9108
9109 2004-02-18  Paul Brook  <paul@codesourcery.com>
9110
9111         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
9112
9113 2004-02-18  Paul Brook  <paul@codesourcery.com>
9114
9115         PR debug/12934
9116         * dwarf2out.c (loc_descriptor_from_tree): Handle
9117         EXPR_WITH_FILE_LOCATION.
9118
9119 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
9120
9121         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
9122         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
9123         trailing whitespace from instructions.
9124
9125 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
9126
9127         * configure.ac: When generating auto-build.h, pass
9128         --enable-languages to the sub-configure.
9129         Put quotes around ${program_transform_name} when generating
9130         name of as, ld, nm, objdump.
9131         * configure: Regenerate.
9132
9133 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
9134
9135         * Makefile.in (s-check, s-config, s-conditions, s-flags)
9136         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
9137         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
9138         (s-preds, s-iov): Do not depend on move-if-change.
9139
9140 2004-02-17  James E Wilson  <wilson@specifixinc.com>
9141
9142         * caller-save.c (insert_restore): Pass mem through copy_rtx.
9143         (insert_save): Likewise.
9144
9145 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9146
9147         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
9148         warning.
9149
9150 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9151
9152         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
9153         *one_cmplsi2_h8300.
9154         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
9155
9156 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9157
9158         * config/h8300/h8300-protos.h: Update the prototype of
9159         fix_bit_operand().
9160         * config/h8300/h8300.c (fix_bit_operand): Remove the second
9161         argument "what".
9162         * config/h8300/h8300.md: Update all callers.
9163
9164 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9165
9166         * config/h8300/h8300.c (fix_bit_operand): Change the name of
9167         the last argument to "code" from "type".
9168
9169 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9170
9171         * config/h8300/h8300.c: Remove an extern declaration of
9172         rtx_equal_function_value_matters.
9173
9174 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9175
9176         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
9177         by hand.
9178         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
9179         (*iorqi3_1): Change to iorqi3_1.
9180         (*xorqi3_1): Change to xorqi3_1.
9181
9182 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9183
9184         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
9185         typos.
9186
9187 2004-02-17  Jan Hubicka  <jh@suse.cz>
9188
9189         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
9190
9191 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
9192
9193         PR optimization/14119
9194         * combine.c (try_combine): When attemting to fix unrecognized insns,
9195         don't delete SETs marked with REG_EH_REGION notes.
9196
9197 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
9198
9199         * combine.c (simplify_if_then_else): Do not replace
9200         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
9201         modes differ.
9202
9203 2004-02017  Steven Bosscher  <stevenb@suse.de>
9204
9205         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
9206         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
9207         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
9208         * ada/utils.c: Likewise.
9209         * cp/decl.c: Likewise.
9210         * f/com.c: Likewise.
9211         * java/class.c: Likewise.
9212
9213 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9214
9215         * config/h8300/h8300.md: Fix comment typos.
9216
9217 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9218
9219         * config/mips/t-iris6gld: Renamed to ...
9220         * config/mips/t-irix-gld: ... this.
9221         * config.gcc (mips-sgi-irix6*): Reflect this
9222         (mips-sgi-irix5*): Use it with GNU ld.
9223
9224         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
9225         to ...
9226         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
9227         * config/mips/t-irix-gld: Reflect this.
9228         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
9229
9230         * config/mips/iris5gld.h: New file.
9231         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
9232         Only use collect2 without gas.
9233
9234         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
9235         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
9236         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
9237         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
9238
9239         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
9240         * config/mips/iris5.h: ... here.
9241
9242         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
9243         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
9244         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
9245
9246         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
9247         using irix_startfile_spec, irix_endfile_spec.
9248
9249 2004-02-16  Gunther Nikl  <gni@gecko.de>
9250
9251         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
9252
9253 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9254
9255         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
9256         insns by hand.
9257
9258 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9259
9260         * cfghooks.c (split_edge): Speed up updating of dominators.
9261
9262 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
9263
9264         PR c++/11326
9265         * c-common.c (flag_abi_version): Remove.
9266         * c-common.h (flag_abi_version): Likewise.
9267         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
9268         * c.opt (fabi-version): Remove.
9269         * calls.c (expand_call): Always pass a function type to
9270         struct_value_rtx.  Use convert_memory_address.
9271         * common.opt (fabi-version): Add it.
9272         * flags.h (flag_abi_version): Likewise.
9273         (abi_version_at_least): New macro.
9274         * opts.c (common_handle_option): Add OPT_fabi_version.
9275         * toplev.c (flag_abi_version): Define it.
9276         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
9277         New function.
9278         (ia64_output_mi_thunk): Use it.
9279         (ia64_struct_value_rtx): Likewise.
9280
9281 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9282
9283         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
9284         Don't generate insns by hand.
9285
9286 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
9287
9288         PR c++/14178
9289         * doc/invoke.texi (fabi-version): The default is 2 now.
9290
9291 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9292
9293         * loop-iv.c: New file.
9294         * Makefile.in (loop-iv.o): New.
9295         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
9296         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
9297         num_loop_branches): New functions.
9298         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
9299         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
9300         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
9301         get_simple_loop_desc, free_simple_loop_desc): Declare.
9302         (simple_loop_desc): New inline function.
9303         (struct rtx_iv, struct niter_desc): New.
9304         * cfgloopmanip.c (loopify): Specify semantics more precisely.
9305         * expr.c (force_operand): Handle subregs of expressions created by
9306         loop unroller.
9307         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
9308         parts of the initialization to toplev.c
9309         * loop-unroll.c (loop_exit_at_end_p): New.
9310         (unroll_and_peel_loops): Call iv_analysis_done.
9311         (decide_peel_once_rolling, decide_peel_completely,
9312         decide_unroll_stupid, decide_unroll_constant_iterations,
9313         decide_unroll_runtime_iterations, decide_peel_simple,
9314         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
9315         unroll_loop_runtime_iterations): Use new simple loop analysis.
9316         * loop-unswitch.c (compare_and_jump_seq): New.
9317         (may_unswitch_on_p): Renamed to ...
9318         (may_unswitch_on): Use new iv analysis.
9319         (reversed_condition): Export.
9320         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
9321         * predict.c (estimate_probability): Use new simple loop analysis.
9322         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
9323         canon_condition, simplify_using_condition): Declare.
9324         * stor-layout.c (get_mode_bounds): New.
9325         * toplev.c (rest_of_handle_loop2): Some parts of
9326         initialization/finalization moved here from loop-init.c.
9327
9328 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
9329
9330         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
9331         pointer.
9332         (CALL_USED_REGISTERS): Likewise.
9333         (REG_ALLOC_ORDER): Likewise.
9334         (REG_CLASS) <GENERAL_REGS>: Likewise.
9335
9336 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
9337
9338         * doc/md.texi (Insn Canonicalizations): Document left-chaining
9339         in associative operators.
9340         * rtlanal.c (commutative_operand_precedence): Create some new
9341         variables.  Prefer a commutative operand on the left, then
9342         binary expressions, then NEG and NOT.
9343
9344 2004-02-16  Matthias Klose  <doko@debian.org>
9345
9346         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
9347         in terms of SHLIB_SOVERSION.
9348         * config/m68k/t-slibgcc-elf-ver: New file.
9349         * config/pa/t-slibgcc-elf-ver: New file.
9350         * config.gcc (m68k-linux, parisc-linux): Use them when not
9351         sjlj exceptions are not configured.
9352
9353 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
9354
9355         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
9356
9357 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
9358
9359         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
9360
9361 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
9362
9363         * doc/sourcebuild.texi: Mention backends.html.
9364
9365 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
9366
9367         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
9368         line-map.c, line-map.h, var-tracking.c: Fix comment
9369         formatting.
9370
9371 2004-02-16  Richard Henderson  <rth@redhat.com>
9372
9373         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
9374
9375         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
9376
9377 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
9378
9379         * config/h8300/h8300.md: Remove unnecessary parallels from
9380         all define_insn and define_split patterns.
9381
9382 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
9383
9384         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
9385         "clobber").
9386
9387 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
9388
9389         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
9390         '%#'.
9391
9392 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
9393
9394         * config/ia64/ia64.c, config/mips/mips.c,
9395         config/mmix/mmix-modes.def: Fix comment typos.
9396
9397 2004-02-15  Roger Sayle  <roger@eyesopen.com>
9398
9399         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
9400         (get_directive_line): Remove unused function prototype.
9401
9402 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
9403
9404         * tree-inline.c (copy_body_r): Do not replace ret_label.
9405
9406 2004-02-14  Jan Hubicka  <jh@suse.cz>
9407
9408         * i386.c (x86_four_jump_limit): New variable.
9409         (k8_avoid_jump_misspredicts): Rename to ...
9410         (ix86_avoid_jump_misspredicts): .. this one.
9411         (ix86_pad_returns): Break out from ...
9412         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
9413         to.
9414         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
9415
9416 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
9417
9418         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
9419         PARALLEL is NULL.
9420
9421 2004-02-14  Per Bothner  <per@bothner.com>
9422
9423         * fix-header.c (line_table):  Move local variable in main to global.
9424         * scan.h (line_table):  Use it.
9425         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
9426         line (recently renamed to src_loc) before calling recognized_function.
9427
9428 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
9429
9430         * Makefile.in: Fix comment typos.
9431
9432 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
9433
9434         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
9435         for start_value when it is directly moved into reg, and factorize
9436         the retrieval of GET_MODE (reg).
9437
9438 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
9439
9440         * config/mips/mips-protos.h (mips_load_got_page): Delete.
9441         (mips_load_got_global): Delete.
9442         (mips_gotoff_page): Declare.
9443         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
9444         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
9445         UNSPEC_LOAD_GOT pattern rather than a MEM.
9446         (*load_got[sd]i): New patterns.
9447         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
9448         (mips_load_got_page, mips_load_got_global): Delete.
9449         (mips_gotoff_page): New function.
9450         (override_options): Don't initialize mips_got_alias_set.
9451
9452 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
9453
9454         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
9455         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
9456         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
9457         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
9458         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
9459         * config/mips/mips.c: Fix some overly-long lines.
9460         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
9461         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
9462
9463 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9464
9465         * configure.ac: Search for as, ld below libexec/gcc.
9466         * configure: Regenerate.
9467
9468 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
9469
9470         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
9471         __builtin_arm_setwcx ().
9472         * config/arm/arm.c (arm_expand_builtin): Generate operands
9473         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
9474
9475 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
9476
9477         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
9478         and "wmuluh" to "wmulsm" and "wmulum", respectively.
9479         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
9480         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
9481         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
9482         (_mm_mulhi_pu16): Likewise.
9483
9484 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
9485
9486         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
9487         DECL_NAME != 0 before dereferencing.
9488
9489 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
9490
9491         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
9492         (s390_output_addr_const_extra): Declare.
9493         (s390_output_pool_entry): Remove FILE * argument.
9494         * config/s390/s390.c (s390_output_symbolic_const): Remove.
9495         (s390_output_addr_const_extra): New function.
9496         (print_operand_address): Call output_addr_const instead of
9497         s390_output_symbolic_const.
9498         (print_operand): Likewise.
9499         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
9500         Remove FILE * argument.
9501         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
9502         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
9503         call.
9504
9505 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9506
9507         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
9508         (struct edge, struct vertex, struct graph): New.
9509         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
9510         free_graph): New functions.
9511
9512 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
9513
9514         * config/mips/mips.md (casesi_internal, casesi_internal_di):
9515         Use ".set macro" to avoid warnings about multi-instruction
9516         macros, since they're intentional.
9517
9518 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
9519
9520         * config/darwin.h: Add include guards.  Remove old, now incorrect,
9521         comment about STANDARD_EXEC_PREFIX.
9522
9523         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
9524         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
9525         for installing .1 manpages.  Add rules for installing cpp
9526         and gcov manpages under their installed names.
9527
9528 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
9529
9530         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
9531         host, but try LD_FOR_TARGET first.
9532         * configure: Rebuilt.
9533
9534 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9535
9536         * dbxout.c: Move declaration of dbxout_type_decl outside
9537         #ifdef DBX_DEBUGGING_INFO.
9538         * c-parse.in: Don't give the asmdef production a type.
9539
9540 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9541
9542         * debug.h (struct gcc_debug_hooks): Add type_decl field.
9543         (debug_nothing_tree_int): Prototype.
9544         (dwarf_debug_hooks): Delete, unused.
9545         * debug.c (do_nothing_debug_hooks): Update.
9546         (debug_nothing_tree_int): New function.
9547         * langhooks.h (struct lang_hooks_for_decls):
9548         Remove builtin_type_decls field.
9549         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
9550         (LANG_HOOKS_DECLS): Update.
9551         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
9552         Use debug_hooks->type_decl.
9553         * dbxout.c (preinit_symbols): New static.
9554         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9555         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
9556         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
9557         for symbols to output.
9558         (dbxout_type_decl): New function.
9559         (dbxout_symbol): If called before dbxout_init has run, queue
9560         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
9561         to TYPE_DECLs before emitting them.
9562         * xcoffout.c (assign_type_number): Delete.
9563         (xcoff_type_numbers): New static table.
9564         (xcoff_assign_fundamental_type_number): New function.
9565         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
9566         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
9567         * sdbout.c: Include varray.h.
9568         (deferred_global_decls): New static.
9569         (sdb_debug_hooks): Update.
9570         (sdbout_global_decl): If we can't emit something right now,
9571         remember it in deferred_global_decls.
9572         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
9573         (sdbout_init): Initialize deferred_global_decls.
9574         * Makefile.in: Update dependencies of sdbout.o.
9575         * dwarf2out.c (dwarf2out_type_decl): New function.
9576         (dwarf2_debug_hooks): Update.
9577         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
9578         * c-decl.c (getdecls): Just return 0.
9579         (check_for_loop_decls): Don't use getdecls.
9580         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
9581         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
9582
9583 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
9584
9585         * config/s390/s390.c (s390_sched_reorder2): Remove.
9586         (TARGET_SCHED_REORDER2): Do not redefine.
9587
9588 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9589
9590         * c-parse.in (maybe_type_qual): Delete.
9591         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
9592         (asm_argument): New grammar rules.
9593         (extdef_1): Use asmdef.
9594         (maybeasm): Move down with other asm rules; use simple_asm_expr.
9595         (xexpr): Move up with other expression rules.
9596         (stmt): Use asm_stmt.
9597
9598         * c-typeck.c (build_asm_expr): New function - body mostly
9599         pulled from build_asm_stmt.
9600         (build_asm_stmt): Just handle tacking on the volatile qualifier.
9601         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
9602
9603 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
9604
9605         PR bootstrap/13617
9606         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
9607         (mips_declare_object): Make variadic.
9608         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
9609         mips_output_aligned_decl_common.
9610         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
9611         (mips_declare_object): Make variadic.
9612
9613 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9614
9615         * function.c (update_epilogue_consts): Teach about binary operations.
9616
9617         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
9618         previous MEM_VOLATILE in REF.
9619         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
9620         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
9621
9622 2004-02-12  Gunther Nikl  <gni@gecko.de>
9623
9624         * config.gcc: Restore support for m68k-openbsd.
9625
9626 2004-02-12  Jan Hubicka  <jh@suse.cz>
9627
9628         * tree-optimize.c (tree_rest_of_compilation): Do not release
9629         DECL_ARGUMENTS.
9630
9631 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
9632
9633         * doc/install.texi: Fix the spelling of "explicitly".
9634
9635 2004-02-11  Eric Christopher  <echristo@redhat.com>
9636
9637         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
9638         duplicate argument structure of cpp_interpret_string.
9639         * cpphash.h: Move prototype...
9640         * cpplib.h: Here.
9641         * cpplib.c: Fix calls to match new function signature.
9642
9643 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
9644
9645         PR c/456
9646         * cppexp.c (num_binary_op): Don't allow comma operators in #if
9647         constant expressions at all outside C99 mode if pedantic.
9648
9649 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
9650
9651         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
9652         (log10_optab, log2_optab): Define corresponding macros.
9653         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
9654         * genopinit.c (optabs): Implement log10_optab and log2_optab
9655         using log10?f2 and log2?f2 patterns.
9656         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
9657         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
9658         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
9659         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9660
9661         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
9662         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
9663         log2, log2f and log2l built-ins as inline x87 intrinsics.
9664
9665 2004-02-11  Richard Henderson  <rth@redhat.com>
9666
9667         PR target/1532
9668         * flow.c (insn_dead_p): A clobber of a dead hard register is a
9669         dead insn after reload.
9670
9671 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
9672
9673         * tree.h (frame_base_decl): Add GTY marker.
9674         * var-tracking.c (frame_base_decl): Likewise.
9675
9676 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
9677
9678         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
9679         incorrect, hunk.
9680         (add_location_or_const_value_attribute): Use text_section_label,
9681         not TEXT_SECTION_NAME.
9682
9683 2004-02-11  Per Bothner  <per@bothner.com>
9684
9685         Represent column numbers using line-map's source_location.
9686         The "next available source_location" is now managed internally by
9687         line-maps.c rather than by clients.
9688         * line-map.h (struct line_map):  New field column_bits.
9689         <from_line>:  Rename field to start_location.
9690         (struct line_maps):  New fields highest_location and max_column_hint.
9691         (linemap_check_files_exited):  New declaration.
9692         (linemap_line_start):  New declaration.
9693         (linemap_add):  Remove from_line parameter; use highest_location field.
9694         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
9695         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
9696         (CURRENT_LINE_MAP):  Remove macro.
9697         (linemap_position_for_column):  New inline function.
9698         * line-map.c (linemap_init):  Clear new fields.
9699         (linemap_check_files_exited):  New function, extracted from ...
9700         (linemap_free):  Use linemap_check_files_exited.
9701         (linemap_add):  Remove from_line parameter.  Various updates.
9702         (linemap_line_start):  New function.
9703         (linemap_lookeup):  Update for new field names.
9704         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
9705         linemap_position_for_column may unpredictably change the current map,
9706         it is cleaner and simpler for us to not cache it in cpp_reader.
9707         (struct cpp_buffer):  New sysp field.
9708         Changed warned_cplusplus_comments and from_stage3 to bitfields.
9709         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
9710         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
9711         current map using linemap_lookup.
9712         (do_linemarker):  Also set buffer's sysp field.
9713         (destringize_and_run):  No longer need to decrement current line.
9714         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
9715         (search_path_head, open_file_failed):  Use buffer's sysp.
9716         (cpp_make_system_header):  Get current map using linemap_lookup.
9717         Also set buffer's sysp flag.
9718         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
9719         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
9720         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
9721         (struct cpp_reader):  ... and adding saved_line_base field.
9722         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
9723         Update accordingly.  Don't adjust line.
9724         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
9725         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
9726         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
9727         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
9728         * cpplex.c (_cpp_lex_direct):  Likewise.
9729         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
9730         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
9731         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
9732         Remove col field as it is now subsumed by src_loc.
9733         * cpperror.c:  Update various field, parameter, and macro names.
9734         (print_location):  If col==0, try SOURCE_COLUMN of line.
9735         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
9736         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
9737         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
9738         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
9739         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
9740         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
9741         (_cpp_lex_direct):  Use linemap_position_for_column.
9742         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
9743         parameter.  Instead get it from the line_table global.  Adjust callers.
9744         (print):  Remove map field.  Replace line field to src_line.
9745         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
9746         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
9747         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
9748         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
9749         * cpptrad.c (copy_comment):  Rename variable.
9750         * c-lex.c (map):  Remove static variable, for same reason we removed
9751         cpp_reader's map field.
9752         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
9753         to call linemap_lookup.
9754         (cb_line_change):  Token's line field replaced by src_loc.
9755         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
9756         Don't save new_map.
9757
9758         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
9759         source_location.
9760
9761 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9762
9763         * config/rs6000/altivec.md (*movv4si_internal): At least one
9764         operand must be register_operand.
9765         (*movv8hi_internal1): Likewise.
9766         (*movv16qi_internal1): Likewise.
9767         (*movv4sf_internal1): Likewise.
9768
9769 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
9770
9771         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
9772         operand.
9773         (movv4hi_internal): Same.
9774         (movv2sf_internal): Same.
9775         (movv1di_internal): Same.
9776
9777 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
9778
9779         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
9780         TARGET_OLDABI consistently.
9781         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
9782         mips_va_arg,override_options,compute_frame_size,
9783         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
9784         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
9785         and TARGET_OLDABI consistently.
9786         * config/mips/mips.md (exception_receiver): Likewise.
9787         * config/mips/linux64.h: Likewise.
9788
9789 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9790
9791         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
9792         Set AltiVec ABI and vrsave as default for ppc64 linux.
9793         (init_cumulative_args): Post error, if try to return
9794         value in AltiVec register without enable AltiVec.
9795         (function_arg_advance): Ditto for passing arguments.
9796
9797 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
9798
9799         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
9800         a label before updating its usage count.
9801
9802 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
9803
9804         * doc/install.texi: Remove extra cd.
9805
9806 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
9807
9808         * c-common.c (vector_size_helper): Remove; call
9809         reconstruct_complex_type() instead.
9810         * tree.c (reconstruct_complex_type): New function
9811         (formerly vector_size_helper() in c-common.c).
9812         (make_vector): Make externally visible.
9813         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
9814
9815 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9816
9817         * config/h8300/h8300-protos.h: Add a prototype for
9818         h8300_regs_ok_for_stm.
9819         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
9820         * config/h8300/h8300.md (stm_h8300s_2_advanced,
9821         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
9822         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
9823         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
9824         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
9825         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
9826         ldm_h8300s_4_normal, ldm_h8300s_4): Use
9827         h8300_regs_ok_for_stm().
9828
9829 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9830
9831         PR c/14088
9832         * real.c (real_from_string): Look for 'X' as well as 'x' in
9833         hexfloat strings.
9834
9835 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9836
9837         * config/h8300/h8300.md: Remove an incorrect comment about
9838         peephole2.  Add comments.
9839
9840 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
9841
9842         PR/14058
9843         * emit-rtl.c (set_decl_incoming_rtl): New.
9844         * tree.h (set_decl_incoming_rtl): New.
9845         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
9846         DECL_INCOMING_RTL.
9847         * ada/misc.c (adjust_decl_rtl): Likewise.
9848
9849 2004-02-10  Per Bothner  <per@bothner.com>
9850
9851         * c-opts.c (c_common_post_options):   Don't emit working directory
9852         in cpp output if -P was specified.
9853
9854 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9855
9856         PR c/14092
9857         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
9858         negate_expr back to the original type.
9859
9860 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
9861
9862         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
9863         bump retaddr here.
9864
9865 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9866
9867         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
9868         gen_lowpart_SUBREG): Move under the file in which they
9869         are actually declared.
9870
9871 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
9872
9873         * doc/sourcebuild.texi: Add libada documentation.
9874
9875         * doc/install.texi: Update documentation on Ada build, now
9876         that the GNAT lib and tools are built automatically.
9877
9878 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
9879
9880         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
9881         && TARGET_IRIX.
9882
9883 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
9884
9885         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
9886         boundaries outside build_component_ref() call (a macro in ObjC++).
9887
9888 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
9889
9890         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
9891         (init_cumulative_args): Likewise.
9892         (a7_overlap_mentioned_p): Delete prototype.
9893         * config/xtensa/xtensa.c (struct machine_function): Replace
9894         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
9895         Add set_frame_ptr_insn field.
9896         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
9897         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
9898         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
9899         at the function entry and replace the operand with the pseudo.
9900         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
9901         argument and record this flag in CUMULATIVE_ARGS.
9902         (function_arg): Remove result_mode and special-case code to handle
9903         arguments in a7.  Instead, set need_a7_copy flag when there is an
9904         incoming argument in a7.
9905         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
9906         and use the value recorded in cfun->machine->set_frame_ptr_insn.
9907         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
9908         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
9909         special-case code.
9910         (a7_overlap_mentioned_p): Delete.
9911         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
9912         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
9913         arguments to init_cumulative_args and pass "incoming" flag instead.
9914         (BLOCK_REG_PADDING): Delete.
9915         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
9916         checks for reload_in_progress and reload_completed.  Update calls to
9917         xtensa_copy_incoming_a7.
9918         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
9919         to call xtensa_copy_incoming_a7.
9920
9921 2004-02-09  DJ Delorie  <dj@redhat.com>
9922
9923         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
9924         longer modify standard_exec_prefix, standard_bindir_prefix, or
9925         standard_startfile_prefix.
9926
9927 2004-02-09  James E Wilson  <wilson@specifixinc.com>
9928
9929         PR c++/11295
9930         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
9931         to expand_expr_real call, and pass in alt_rtl as last argument.
9932
9933         PR libstdc++/5625
9934         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
9935         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
9936         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
9937         * except.c (expand_builtin_extend_pointer): New.
9938         * except.h (expand_builtin_extend_pointer): Declare.
9939
9940 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
9941
9942         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
9943         unaligned loads and stores.
9944
9945 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9946
9947         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
9948         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
9949
9950         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
9951         * config/mips/iris5.h: ... here.
9952         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
9953
9954         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
9955         * config/mips/iris5.h: ... here.
9956
9957 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9958
9959         * configure.ac: Remove default executable files before AC_PROG_CC.
9960         * configure: Regenerate.
9961
9962 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
9963
9964         PR target/13721
9965         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
9966         print a operand other than a register.
9967
9968 2004-02-09  Roger Sayle  <roger@eyesopen.com>
9969
9970         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
9971         tree code rather than call fold_convert, which doesn't specify a
9972         default floating point to integer conversion.
9973
9974 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
9975
9976         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
9977         code to support SGS assembler.  Reformat adjacent code where possible.
9978         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
9979         definition.
9980         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
9981         for '%#'.
9982         * config/m68k/linux.h, config/m68k/m68k.c,
9983         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
9984         macros and asm_printf() format strings.
9985         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
9986         * config/m68k/linux.h: Update copyright.
9987         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
9988
9989 2004-02-08  Andreas Schwab  <schwab@suse.de>
9990             Bernardo Innocenti  <bernie@develer.com>
9991
9992         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
9993         REGISTER_PREFIX.
9994         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
9995         frame pointer register, overridable by OS targets.
9996         * (M68K_REGNAME): Macro to obtain register name for asm output,
9997         eventually replacing %a6 with M68K_FP_REG_NAME.
9998         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
9999         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
10000         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
10001         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
10002         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
10003
10004 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10005
10006         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
10007         hook_rtx_tree_int_null.
10008         * targhooks.c (default_struct_value_rtx): Remove.
10009         * targhooks.h: Remove the prototype for
10010         default_struct_value_rtx.
10011         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10012         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
10013         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
10014         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
10015         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
10016         config/rs6000/rs6000.c, config/s390/s390.c,
10017         config/stormy16/stormy16.c, config/v850/v850.c,
10018         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
10019         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
10020
10021 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
10022
10023         * README.Portability: Change "ISO C89" to "ISO C90".
10024         * c-parse.in (primary, initelt): Likewise.
10025
10026 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
10027
10028         * real.c (encode_ibm_extended): Normalize the input value before
10029         converting it to a double.  Handle the case where a normal value
10030         rounds to infinity.
10031
10032 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
10033
10034         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
10035         warning.
10036         * cse.c (preferrable): Change to preferable. Update all of its
10037         callers.
10038         * genautomata.c (ainsn): Change
10039         first_ainsn_with_given_equialence_num to
10040         first_ainsn_with_given_equivalence_num.  Update all of its
10041         references.
10042
10043 2004-02-08  Jan Hubicka  <jh@suse.cz>
10044
10045         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
10046
10047 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
10048
10049         * function.c (assign_parms): Fix formatting.
10050
10051 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10052
10053         * default.h (PROMOTE_PROTOTYPES): Remove.
10054         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
10055         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
10056         EXPAND_BUILTIN_SAVEREGS): Poison.
10057         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
10058         hook_bool_tree_false.
10059         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10060         * target.h: Replace SETUP_INCOMING_VARARGS with
10061         targetm.calls.setup_incoming_varargs().
10062         * targhooks.c (default_promote_function_return): Remove.
10063         (default_promote_prototypes): Likewise.
10064         (default_struct_value_rtx): Always abort().
10065         (default_expand_builtin_saveregs): Always print an error
10066         message.
10067         (default_setup_incoming_varargs): Do nothing.
10068         (default_pretend_outgoing_varargs_named): Don't depend on
10069         SETUP_INCOMING_VARARGS.
10070         * targhooks.h: Remove the prototype for
10071         default_promote_function_return and
10072         default_promote_prototypes.
10073
10074 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10075
10076         * system.h (SHARED_SECTION_ASM_OP): Poison.
10077         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
10078         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
10079
10080 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
10081
10082         Bug 13856
10083         * c-decl.c (diagnose_mismatched_decls): Only give special
10084         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
10085         is also true.
10086         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
10087         DECL_FUNCTION_CODE when defining a built-in function.
10088         Don't update DECL_ESTIMATED_INSNS.
10089         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
10090         FUNCTION_DECLs.
10091         * tree.h: Delete DECL_ESTIMATED_INSNS.
10092         * tree-inline.c (struct inline_data): Delete inlined_insns field.
10093         (expand_call_inline, optimize_inline_calls): Don't update
10094         DECL_ESTIMATED_INSNS nor inlined_insns.
10095         * cgraphunit.c (cgraph_analyze_function): Don't update
10096         DECL_ESTIMATED_INSNS.
10097
10098 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
10099
10100         * c-common.c (shadow_warning): Delete.
10101         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
10102         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
10103         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
10104         * c-parse.in (free_parser_stacks): Delete.
10105
10106 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
10107
10108         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
10109         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
10110         Use the top level mkinstalldirs, not the one in the gcc subdir.
10111         * mkinstalldirs: Remove (from the gcc subdir).
10112
10113 2004-02-07  Roger Sayle  <roger@eyesopen.com>
10114
10115         PR middle-end/13696
10116         * fold-const.c (fold_convert): New function to provide type
10117         conversion to the middle-end without using convert.
10118         (negate_expr, associate_trees, size_diffop, omit_one_operand,
10119         operand_equal_for_comparison_p, pedantic_omit_one_operand,
10120         invert_truthvalue, optimize_bit_field_compare, range_binop,
10121         decode_field_reference, make_range, build_range_check, unextend,
10122         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
10123         fold_binary_op_with_conditional_arg, fold_inf_compare,
10124         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
10125         convert with calls to fold_convert.
10126
10127 2004-02-07  Jan Hubicka  <jh@suse.cz>
10128
10129         * genrecog.c (find_operand): add extra argument stop.
10130         (validate_pattern): Verify that mach_dup is duplicating operand
10131         defined lexically earlier.
10132
10133 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10134
10135         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
10136         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
10137         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
10138         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
10139         config/ia64/ia64.h, config/ip2k/ip2k.h,
10140         config/iq2000/iq2000.h, config/mips/iris5.h,
10141         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
10142         config/rs6000/aix51.h, config/rs6000/aix52.h,
10143         config/rs6000/darwin.h, config/rs6000/rs6000.h,
10144         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
10145         config/sparc/linux.h, config/sparc/linux64.h,
10146         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
10147         config/xtensa/xtensa.h: Remove the definitions of
10148         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
10149         MAX_WCHAR_TYPE_SIZE.
10150         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
10151         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
10152
10153 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
10154
10155         PR bootstrap/13990
10156         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
10157         gen_rtx_NE.
10158
10159 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
10160
10161         * var-tracking.c (vt_add_function_parameters): Surround checkings by
10162         #ifdef ENABLE_CHECKING and #endif.
10163
10164 2004-02-07  Roger Sayle  <roger@eyesopen.com>
10165
10166         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
10167         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
10168         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
10169         integer types and floating point with unsafe_math_optimizations.
10170         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
10171         Optimize A - B as A + (-B), if B is easily negated.
10172
10173 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10174
10175         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
10176         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
10177         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
10178         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
10179         Update copyright.
10180
10181 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
10182
10183         * c-ppoutput.c, var-tracking.c: Fix comment typos.
10184
10185 2004-02-06  James E Wilson  <wilson@specifixinc.com>
10186
10187         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
10188         glibc 2.3 or better.
10189
10190 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10191
10192         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
10193         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
10194
10195 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
10196
10197         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
10198         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
10199         (SHLIB_MKMAP_OPTS): Delete.
10200         (TARGET_LIBGCC2_CFLAGS): Add -specs.
10201         (bispecs): Add rule.
10202         * config/rs6000/libgcc-ppc64.ver: New file.
10203         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
10204         (__floatdidf, __floatdisf): Optimize multiply.
10205         (__fixunstfdi): New function.
10206         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
10207         real and imag parts larger than one register.
10208         (function_arg): Correct type of reg used when fp arg split partially
10209         to stack.
10210         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
10211         and __MACH__ or __powerpc64__.
10212
10213 2004-02-06  Roger Sayle  <roger@eyesopen.com>
10214             Ulrich Weigand  <uweigand@de.ibm.com>
10215
10216         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
10217         of gen_highpart or gen_lowpart when the floating point format is
10218         wider than the result mode.
10219
10220 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
10221
10222         * dwarf2out.c (loclabel_num): Move into #ifdef
10223         DWARF2_DEBUGGING_INFO.
10224
10225 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
10226
10227         * objc/objc-act.c (build_super_template) the 'class' field of
10228         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
10229         (get_super_receiver): Likewise.
10230
10231 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10232
10233         * reload1.c (check_eliminable_occurrences): Optimize the reset
10234         of can_eliminate.
10235         (eliminate_regs_in_insn): Likewise.
10236
10237 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
10238             Josef Zlomek  <zlomekj@suse.cz>
10239
10240         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
10241         at the beginning of function, call dwarf2out_var_location for
10242         NOTE_INSN_VAR_LOCATION note.
10243         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
10244         decl_loc_table): New.
10245         (lookup_decl_loc): New function.
10246         (add_var_loc_to_decl): New function.
10247         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
10248         only if can_use_fbreg.
10249         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
10250         functions.
10251         (loc_descriptor): Likewise. Process VAR_LOCATION.
10252         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
10253         (loc_descriptor_from_tree): Call mem_loc_descriptor with
10254         can_use_fbreg == true.
10255         (add_location_or_const_value_attribute): Added parameter enum
10256         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
10257         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
10258         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
10259         with attr == DW_AT_location.
10260         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
10261         if frame_base_decl is defined and has a location list.
10262         (gen_variable_die): Call add_location_or_const_value_attribute with
10263         attr == DW_AT_location.
10264         (dwarf2out_var_location): New function.
10265         (dwarf2out_begin_function): New function.
10266         (dwarf2out_init): Create decl_loc_table.
10267
10268 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
10269
10270         * loop.c (force_movables): Transitively increase the priorities of
10271         all insns forces by an insn, not just the first one.
10272
10273 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
10274             Daniel Berlin <dberlin@dberlin.org>
10275
10276         Josef Zlomek  <zlomekj@suse.cz>
10277         * Makefile.in (var-tracking.o): New.
10278         * common.opt (fvar-tracking): New.
10279         * flags.h (flag_var_tracking): New.
10280         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
10281         * opts.c (common_handle_option): Add OPT_fvar_tracking.
10282         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
10283         * rtl.c (note_insn_name): Likewise.
10284         * rtl.def (VAR_LOCATION): New.
10285         * rtl.h (NOTE_VAR_LOCATION): New.
10286         (NOTE_VAR_LOCATION_DECL): New.
10287         (NOTE_VAR_LOCATION_LOC): New.
10288         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
10289         (variable_tracking_main): New exported function.
10290         * timevar.def (TV_VAR_TRACKING): New.
10291         * toplev.c (enum dump_file_index): Added DFI_vartrack.
10292         (dump_file): "vartrack" was added (-dV).
10293         (flag_var_tracking): New.
10294         (f_options): "var-tracking" was added.
10295         (rest_of_handle_variable_tracking): New function.
10296         (rest_of_compilation): Run variable tracking.
10297         (process_options): If user has not specified flag_var_tracking set it
10298         according to optimize, debug_info_level and debug_hooks.
10299         * tree.h (frame_base_decl): New.
10300         * var-tracking.c: New file.
10301         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
10302         (ia64_override_options): Set flags to run variable tracking in machine
10303         dependent reorg instead of toplev.c.
10304         (ia64_reorg): Run variable tracking if wanted.
10305         * doc/invoke.texi: Mention variable tracking in -dV,
10306         add and -fvar-tracking.
10307         * doc/passes.texi: Added variable tracking pass.
10308
10309         Daniel Berlin <dberlin@dberlin.org>
10310         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
10311         * dbxout.c (dbx_debug_hooks): Likewise.
10312         (xcoff_debug): Likewise.
10313         * debug.c (do_nothing_debug_hooks): Likewise.
10314         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
10315         * dwarfout.c (dwarf_debug_hooks): Likewise.
10316         * sdbout.c (sdb_debug_hooks): Likewise.
10317         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10318         * final.c (final_scan_insn): Call var_location debug hook for each
10319         NOTE_INSN_VAR_LOCATION.
10320
10321 2004-02-06  Jan Hubicka  <jh@suse.cz>
10322
10323         * flow.c (update_life_info): Allocate reg_deaths when called from
10324         scheudler.
10325         (attempt_auto_inc):  Update life ranges accordingly.
10326
10327 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
10328
10329         PR debug/11816
10330         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
10331
10332 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
10333
10334         * cfganal.c (flow_call_edges_add): Never split a libcall block.
10335
10336 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
10337
10338         * dwarf2out.c (output_loc_list): Don't use deltas if we have
10339         a separate line info table in use.
10340         Use the correct size for terminators.
10341         (output_die): Use offset, not delta.
10342
10343 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
10344
10345         * doc/invoke.texi: Remove the pni option from -mfpmath=.
10346
10347 2004-02-06  Jan Hubicka  <jh@suse.cz>
10348
10349         * recog.c (split_all_insns): Do not update reg info.
10350         * regrename.c (regrename_optimize): Likewise.
10351         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
10352         * flow.c (struct propagate_block_info): Add insn_num field.
10353         (reg_deaths): New array.
10354         (life_analysis): Free reg_deaths info.
10355         (allocate_reg_life_data): Allocate reg_deaths array.
10356         (propagate_one_insn): Use new array.
10357         (init_propagate_block): Initialize it.
10358         (free_propagate_block_info): Finish compuation of
10359         REG_LIVE_LENGTH
10360         (attempt_auto_inc): Sanity check that REG_INFO is not
10361         computed at same time.
10362         (mark_used_regs): Update new array.
10363
10364         * reg-stack.c (subst_stack_regs): Unshare clobbers before
10365         substitution.
10366
10367 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10368
10369         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
10370         *extendqisi2_short_displ.
10371
10372 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
10373
10374         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
10375         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
10376         (emit_library_call_value_1): Likewise pass nargs.
10377         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
10378         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
10379         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
10380         parameter instead of scanning TYPE_ARGS_TYPES to count args.
10381         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
10382         prototype.
10383         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
10384         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
10385         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
10386         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
10387         INIT_CUMULATIVE_ARGS.
10388         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
10389         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
10390         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
10391         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
10392         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10393         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
10394         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
10395         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
10396         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
10397         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
10398         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
10399         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
10400
10401 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10402
10403         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
10404         possible.
10405
10406 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10407
10408         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
10409         note containing (plus (reg) (const_int)), where reg is an
10410         eliminable reg, then perform the register elimination without
10411         depending on eliminate_regs().
10412
10413 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10414
10415         * config/arc/arc.c (arc_return_in_memory): Check the return
10416         value of int_size_in_bytes against -1.  Don't check
10417         TREE_ADDRESSABLE.
10418         * config/avr/avr.c (avr_return_in_memory): Check the return
10419         value of int_size_in_bytes against -1.
10420         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
10421         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
10422         Likewise.
10423         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
10424         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
10425         Likewise.
10426
10427 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10428
10429         * config/frv/frv-protos.h: Remove the prototype for
10430         frv_setup_incoming_varargs.
10431         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
10432         (frv_setup_incoming_varargs): Make it static.
10433         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
10434
10435 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10436
10437         * config/fr30/fr30-protos.h: Remove the prototype for
10438         fr30_setup_incoming_varargs.
10439         Update the prototypes for fr30_num_arg_regs and
10440         fr30_function_arg_partial_nregs.
10441         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
10442         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10443         (fr30_setup_incoming_varargs): Make it static.
10444         Add argument second_time.  Don't do anything when second_time
10445         is nonzero.
10446         (fr30_num_arg_regs): Change the type of the first argument to
10447         enum machine_mode.
10448         (fr30_function_arg_partial_nregs): Change the type of the
10449         second argument to enum machine_mode.
10450         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
10451         (SETUP_INCOMING_VARARGS): Remove.
10452
10453 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10454
10455         * config/arc/arc-protos.h: Remove the prototype for
10456         arc_setup_incoming_varargs.
10457         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10458         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10459         (arc_setup_incoming_varargs): Make it static.
10460         (arc_external_libcall): Likewise.
10461         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
10462         Remove the commented-out definition of
10463         ASM_OUTPUT_EXTERNAL_LIBCALL.
10464
10465 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
10466
10467         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
10468         to $$(slibdir) in the installation commands.
10469
10470 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
10471
10472         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
10473         with inner_regno, not regno.
10474         * rtlanal.c (refers_to_regno_p): Same.
10475
10476 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10477
10478         * config.gcc: Remove i370 support.
10479
10480 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10481
10482         * doc/install.texi:  Update automake and autoconf version
10483         requirements.  Note where to find gcj automake version.
10484
10485 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10486
10487         * Makefile.in (generate-manpages): Move dependencies to ...
10488         (man): here.
10489         * doc/makefile.texi: Document new targets.
10490         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
10491
10492 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10493
10494         PR/13485
10495         Makefile.in (srcextra):  Add a level of indirection to ...
10496         (gcc.srcextra): ... here.
10497         (po-generated): Delete.
10498         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
10499         options.c.
10500         (start.encap): Remove superfluous lang.srcextra dependency.
10501         objc/Make-lang.in (po-generated):  Delete.
10502
10503 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10504
10505         * config/ia64/ia64.c (REG_GP): Remove.
10506
10507 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10508
10509         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
10510
10511 2004-02-05  Devang Patel  <dpatel@apple.com>
10512
10513         * dwarf2out.c (force_type_die): Look up input type itself
10514         instead of root_type() of type.
10515
10516 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10517
10518         * config/s390/s390.md ("*tmqidi_ext"): New insn.
10519         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
10520         pre-reload splitters are transformed to post-reload
10521         define_insn_and_split patterns.
10522         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
10523
10524 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10525
10526         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
10527         TARGET_PROMOTE_PROTOTYPES.
10528
10529 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10530
10531         PR middle-end/13750
10532         Revert:
10533         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10534         PR pch/13361
10535         * c-typeck.c (constructor_asmspec): Delete.
10536         (struct initializer_stack): Delete field 'asmspec'.
10537         (start_init): Delete saving of asmspec.
10538         (finish_init): Don't update constructor_asmspec.
10539         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10540         * stmt.c (expand_asm): Duplicate strings from tree.
10541         (expand_asm_operands): Likewise.
10542         * tree.c (tree_size): Update computation of size of STRING_CST.
10543         (make_node): Don't make STRING_CST nodes.
10544         (build_string): Allocate string with tree node.
10545         * tree.def (STRING_CST): Update comment.
10546         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10547         (tree_string): Place contents of string in tree node.
10548         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10549         from tree.
10550
10551 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10552
10553         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
10554         msgid.
10555
10556 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
10557
10558         * config/rs6000/altivec.md (*movv4si_internal): At least one
10559         operand must be altivec_register_operand.
10560         (*movv8hi_internal1): Likewise.
10561         (*movv16qi_internal1): Likewise.
10562         (*movv4sf_internal1): Likewise.
10563
10564 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
10565
10566         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
10567         * configure: Regenerate.
10568
10569 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
10570
10571         * doc/install.texi: Update description of --gxx-include-dir to
10572         give correct default value.
10573
10574 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10575
10576         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
10577         8 with MAC_REG.
10578
10579 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10580
10581         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
10582         gen_rtx_PARALLEL.
10583
10584 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10585
10586         * emit-rtl.c: Update the comment about the file.
10587
10588 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10589
10590         * sourcebuild.texi (Test Idioms): Update testcase naming
10591         conventions.
10592
10593 2004-02-04  Per Bothner  <per@bothner.com>
10594
10595         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
10596         * c-ppoutput.c (pp_dir_change):  New function.
10597         * c-common.h (pp_dir_change):  New declaration.
10598         * cpplib.h (struct cpp_options):  Remove working_directory field.
10599         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
10600         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
10601         Don't handle -fworking_directory here, but in c_common_post_options.
10602         (read_original_directory): Don't back up when done.
10603         Don't clear no-longer used working_directory flag.
10604         * cpplib.h:  Update declarations to match.
10605         * c-lex.c (cb_dir_change):  Move to c-opts.c.
10606         (init_c_lex):  Don't set dir_change callback here, since we want
10607         to set it even if flag_preprocess_only.
10608         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
10609         (c_common_post_options):  Set dir_change callback.
10610         Call pp_dir_change if approporiate.
10611         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
10612         unneeded parameter and result. Do LC_RENAME for <built-in>.
10613         (c_common_post_options):  Call cpp_read_main_file here instead.
10614         (c_common_init):  Update accordingly.
10615         (push_command_line_include):  Don't cpp_push_main_file.
10616         Do LC_RENAME rather than LC_LEASE to get back to main file.
10617         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
10618         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
10619         files, but call finish_options for all files.
10620         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
10621         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
10622         cpp_find_main_file + cpp_push_main_file.
10623         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
10624         * opts.c (handle_options):  Only set main_input_filename first time.
10625
10626 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
10627
10628         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
10629
10630 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
10631
10632         * reload.c (find_equiv_reg): When checking for register overlap,
10633         don't index hard_regno_nregs with a pseudo-reg.
10634
10635 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10636
10637         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
10638
10639 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
10640
10641         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
10642         against FIRST_PSEUDO_REGISTER.
10643
10644 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10645
10646         * Makefile.in: Move target, host overrides after per-language
10647         fragments.
10648
10649         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
10650         (GNATLIBCFLAGS): Remove -g.
10651
10652 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10653
10654         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10655         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10656         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10657         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
10658         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
10659         config/sparc/sparc.c, config/vax/vax.c: Revert the
10660         replacements of "FALLTHRU" with "Fall through" done in the
10661         previous patch.
10662
10663 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10664
10665         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
10666         config/arm/arm.c, config/arm/arm.md,
10667         config/cris/cris-protos.h, config/fr30/fr30.c,
10668         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
10669         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
10670         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
10671         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
10672         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
10673         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
10674         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
10675         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
10676         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10677         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
10678         config/s390/s390.md, config/sparc/netbsd-elf.h,
10679         config/sparc/openbsd.h, config/sparc/sparc.c,
10680         config/xtensa/lib2funcs.S: Fix comment formatting.
10681
10682 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10683
10684         * config/alpha/alpha.c, config/arc/arc.c,
10685         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
10686         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
10687         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
10688         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
10689         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10690         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10691         config/iq2000/iq2000.c, config/m32r/m32r.c,
10692         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
10693         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
10694         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
10695         config/rs6000/rs6000.h, config/sparc/sparc.c,
10696         config/vax/vax.c: Fix comment typos.  Follow spelling
10697         conventions.
10698
10699 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10700
10701         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
10702         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
10703         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
10704         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
10705         config/arm/fpa.md, config/arm/iwmmxt.md,
10706         config/arm/netbsd-elf.h, config/arm/netbsd.h,
10707         config/m68hc11/m68hc11.md, config/mips/iris5.h,
10708         config/mn10300/mn10300.md, config/rs6000/altivec.md,
10709         config/sparc/netbsd-elf.h: Update copyright.
10710
10711 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10712
10713         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10714         for all modes whose size is greater than 8 bytes if ARCH32.
10715         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
10716         by reference if ARCH32.
10717
10718 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
10719
10720         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
10721
10722 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10723
10724         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
10725         to before adddi3 insn patterns.
10726         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
10727         "reload_insi"): Move to before addsi3 insn patterns.
10728
10729 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
10730
10731         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
10732         parameter.  Use it instead of current_function_is_thunk.
10733         * function.h (struct function): Update documentation for is_thunk.
10734         * tree.h (CALL_FROM_THUNK_P): New macro.
10735         * config/alpha/alpha.c (alpha_sa_mask): Do not check
10736         no_new_pseudos when testing current_function_is_thunk.
10737         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
10738
10739 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10740
10741         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
10742         TARGET_SETUP_INCOMING_VARARGS.
10743
10744 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10745
10746         * emit-rtl.c (gen_rtx): Remove.
10747         * genattrtab.c: Don't mention gen_rtx in a comment.
10748         * rtl.h: Remove the prototype for gen_rtx.
10749         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
10750
10751 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10752
10753         * config/arc/arc.h, config/fr30/fr30.h
10754         (SETUP_INCOMING_VARARGS): Remove the target-independent
10755         comments.
10756         * doc/tm.texi: Don't mention deprecated target macros.
10757
10758 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10759
10760         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
10761         target-independent comment.
10762
10763 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10764
10765         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
10766         mention deprecated target macros.
10767
10768 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10769
10770         * config.gcc: Remove obsolete ports and configurations.
10771         * config/linux-aout.h, config/netware.h,
10772         config/t-linux-gnulibc1, config/d30v/abi,
10773         config/d30v/d30v-protos.h, config/d30v/d30v.c,
10774         config/d30v/d30v.h, config/d30v/d30v.md,
10775         config/d30v/libgcc1.asm, config/d30v/t-d30v,
10776         config/dsp16xx/dsp16xx-modes.def,
10777         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10778         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
10779         config/i370/README, config/i370/i370-c.c,
10780         config/i370/i370-protos.h, config/i370/i370.c,
10781         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
10782         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
10783         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
10784         config/i386/moss.h, config/i386/netware.h,
10785         config/i386/svr3.ifile, config/i386/svr3dbx.h,
10786         config/i386/svr3gas.h, config/i386/svr3z.ifile,
10787         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
10788         config/i960/i960-c.c, config/i960/i960-coff.h,
10789         config/i960/i960-modes.def, config/i960/i960-protos.h,
10790         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
10791         config/i960/rtems.h, config/i960/t-960bare,
10792         config/m68k/hp310.h, config/m68k/hp320.h,
10793         config/m68k/hp320base.h, config/m68k/m68kv4.h,
10794         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
10795         Remove.
10796         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
10797         doc/md.texi: Remove mentions of obsolete ports.
10798
10799 2004-02-04  Jan Hubicka  <jh@suse.cz>
10800
10801         * alias.c (find_base_term, get_addr):  Do not dereference NULL
10802         pointer when all VALUE's locations has been invalidated.
10803         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
10804
10805 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
10806
10807         * doc/invoke.texi (x86 options): Fix spelling/wording.
10808
10809 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
10810
10811         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
10812         put the original string in a comment.
10813         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
10814         * config/mips/mips.c (mips_output_ascii): Likewise.
10815         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
10816
10817 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10818
10819         * system.h (GIV_SORT_CRITERION): Poison.
10820         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
10821         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
10822
10823 2004-02-03  Roger Sayle  <roger@eyesopen.com>
10824
10825         PR target/9348
10826         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
10827         multiplies with a multiplication of the wrong signedness, its the
10828         signedness of the multiplication that we've performed that needs to
10829         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
10830         if expand_mult_highpart_adjust places the result in target.
10831
10832 2004-02-03  Richard Henderson  <rth@redhat.com>
10833
10834         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
10835
10836 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
10837
10838         * config.gcc (sh[234]l): Use little endian fragments.
10839
10840 2004-02-03  Paul Koning  <pkoning@equallogic.com>
10841
10842         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
10843         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
10844         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
10845         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
10846         floating point format.
10847         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
10848         the above functions.
10849         (output_move_quad): Output float values in correct target format.
10850         (legitimate_const_double_p): New function.
10851         * config/pdp11/pdp11.h: Fix typos.
10852         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
10853         (TARGET_FLOAT_FORMAT): Ditto.
10854         (pdp11_f_format, pdp11_d_format): Add external declarations.
10855         (MAX_REGS_PER_ADDRESS): Corrected.
10856         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
10857         (PRINT_OPERAND): Output float literals in target format.
10858
10859 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
10860
10861         PR c++/13975
10862         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
10863         TI_PRIVATE.
10864         (access_public_node): Redefine.
10865         (access_protected_node): Likewise.
10866         (access_private_node): Likewise.
10867         * tree.c (build_common_tree_nodes): Create access_public_node,
10868         access_protected_node, and access_private_node.
10869
10870 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
10871
10872         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
10873         (MASK_INLINE_INT_DIV_THR): Ditto.
10874         (MASK_INLINE_SQRT_LAT): Ditto.
10875         (MASK_INLINE_SQRT_THR): Ditto.
10876         (MASK_DWARF2_ASM): Ditto.
10877         (MASK_EARLY_STOP_BITS): Ditto.
10878
10879 2004-02-02  Paul Brook  <paul@codesourcery.com>
10880
10881         Merge from csl-arm-branch.
10882
10883         2004-01-30  Paul Brook  <paul@codesourcery.com>
10884
10885         * aof.h (REGISTER_NAMES): Add vfp reg names
10886         (ADDITIONAL_REGISTER_NAMES): Ditto.
10887         * aout.h (REGISTER_NAMES): Ditto.
10888         (ADDITIONAL_REGISTER_NAMES): Ditto.
10889         * arm-protos.h: Update/Add Prototypes.
10890         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
10891         Only allow 0.0 for VFP.
10892         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
10893         (values_fp): Rename from values_fpa.  Update Users.
10894         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
10895         Update users.  Only check valid constants for this hardware.
10896         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
10897         Only allow consts for FPA.
10898         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
10899         Only allow consts for FPA.
10900         (use_return_insn): Check for saved VFP regs.
10901         (arm_legitimate_address_p): Handle VFP DFmode addressing.
10902         (arm_legitimize_address): Ditto.
10903         (arm_general_register_operand): New function.
10904         (vfp_mem_operand): New function.
10905         (vfp_compare_operand): New function.
10906         (vfp_secondary_reload_class): New function.
10907         (arm_float_compare_operand): New function.
10908         (vfp_print_multi): New function.
10909         (vfp_output_fstmx): New function.
10910         (vfp_emit_fstm): New function.
10911         (arm_output_epilogue): Output VPF reg restore code.
10912         (arm_expand_prologue): Output VFP reg save code.
10913         (arm_print_operand): Add 'P'.
10914         (arm_hard_regno_mode_ok): Return modes for VFP regs.
10915         (arm_regno_class): Return classes for VFP regs.
10916         (arm_compute_initial_elimination_offset): Include space for VFP regs.
10917         (arm_get_frame_size): Ditto.
10918         * arm.h (FIXED_REGISTERS): Add VFP regs.
10919         (CALL_USED_REGISTERS): Ditto.
10920         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
10921         (FIRST_VFP_REGNUM): Define.
10922         (LAST_VFP_REGNUM): Define.
10923         (IS_VFP_REGNUM): Define.
10924         (FIRST_PSEUDO_REGISTER): Include VFP regs.
10925         (HARD_REGNO_NREGS): Handle VFP regs.
10926         (REG_ALLOC_ORDER): Add VFP regs.
10927         (enum reg_class): Add VFP_REGS.
10928         (REG_CLASS_NAMES): Ditto.
10929         (REG_CLASS_CONTENTS): Ditto.
10930         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
10931         (REG_CLASS_FROM_LETTER): Add 'w'.
10932         (EXTRA_CONSTRAINT_ARM): Add 'U'.
10933         (EXTRA_MEMORY_CONSTRAINT): Define.
10934         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
10935         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
10936         (REGISTER_MOVE_COST): Ditto.
10937         (PREDICATE_CODES): Add arm_general_register_operand,
10938         arm_float_compare_operand and vfp_compare_operand.
10939         * arm.md (various): Rename as above.
10940         (divsf3): Enable when TARGET_VFP.
10941         (divdf3): Ditto.
10942         (movdfcc): Ditto.
10943         (sqrtsf2): Ditto.
10944         (sqrtdf2): Ditto.
10945         (arm_movdi): Disable when TARGET_VFP.
10946         (arm_movsi_insn): Ditto.
10947         (movsi): Only split with general regs.
10948         (cmpsf): Use arm_float_compare_operand.
10949         (push_fp_multi): Restrict to TARGET_FPA.
10950         (vfp.md): Include.
10951         * vfp.md: New file.
10952         * fpa.md (various): Rename as above.
10953         * doc/md.texi: Document ARM w and U constraints.
10954
10955         2004-01-15  Paul Brook  <paul@codesourcery.com>
10956
10957         * config.gcc: Add with_fpu.  Allow with-float=softfp.
10958         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
10959         Break out of loop when we find a float-abi.  Fix typo.
10960         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
10961         Set -mfloat-abi=.
10962         * doc/install.texi: Document --with-fpu.
10963
10964         2003-01-14  Paul Brook  <paul@codesourcery.com>
10965
10966         * config.gcc (with_arch): Add armv6.
10967         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
10968         * config/arm/arm.c (arm_overrride_options): Ditto.
10969
10970         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
10971
10972         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
10973         (FL_ARCH6): Renamed from FL_ARCH6J.
10974         (arm_arch3m): Renamed from arm_fast_multiply.
10975         (arm_arch6): Renamed from arm_arch6j.
10976         * arm.h: Update all uses of above.
10977         * arm-cores.def: Likewise.
10978         * arm.md: Likewise.
10979
10980         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
10981         not arm6j.  Add entry for arch armv6.
10982
10983         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
10984
10985         * arm.c (arm_emit_extendsi): Delete.
10986         * arm-protos.h (arm_emit_extendsi): Delete.
10987         * arm.md (zero_extendhisi2): Also handle zero-extension of
10988         non-subregs.
10989         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
10990         (thumb_zero_extendhisi2): Only match if not v6.
10991         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
10992         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
10993         (thumb_extendqisi2): Likewise.
10994         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
10995         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
10996         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
10997         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
10998         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
10999         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
11000         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
11001         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
11002         (arm_extendqisi2addsi): Likewise.
11003
11004         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
11005
11006         Revert this change:
11007         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11008         + REG addressing modes.
11009
11010         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
11011         + REG addressing modes.
11012
11013         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
11014
11015         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
11016         CONSTANT_P_RTX.
11017
11018         2003-30-12  Paul Brook  <paul@codesourcery.com>
11019
11020         * longlong.h: protect arm inlines with !defined (__thumb__)
11021
11022         2003-30-12  Paul Brook  <paul@codesourcery.com>
11023
11024         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
11025
11026         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
11027
11028         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
11029         change.
11030
11031         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11032
11033         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
11034         to the virtual incoming args pointer for downward stacks.
11035
11036         2003-12-29  Paul Brook  <paul@codesourcery.com>
11037
11038         * config/arm/arm-cores.def: Add cost function.
11039         * config/arm/arm.c (arm_*_rtx_costs): New functions.
11040         (arm_rtx_costs): Remove
11041         (struct processors): Add rtx_costs field.
11042         (all_cores, all_architectures): Ditto.
11043         (arm_override_options): Set targetm.rtx_costs.
11044         (thumb_rtx_costs): New function.
11045         (arm_rtx_costs_1): Remove cases handled elsewhere.
11046         * config/arm/arm.h (processor_type): Add COSTS parameter.
11047
11048         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
11049
11050         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
11051         (arm926ejs.md): Include it.
11052         * config/arm/arm926ejs.md: New pipeline description.
11053
11054         2003-12-24  Paul Brook  <paul@codesourcery.com>
11055
11056         * config/arm/arm.c (arm_arch6j): New variable.
11057         (arm_override_options): Set it.
11058         (arm_emit_extendsi): New function.
11059         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
11060         * config/arm/arm.h (arm_arch6j): Declare.
11061         * config/arm/arm.md: Add sign/zero extend insns.
11062
11063         2003-12-23  Paul Brook  <paul@codesourcery.com>
11064
11065         * config/arm/arm.c (all_architectures): Add armv6.
11066         * doc/invoke.texi: Document it.
11067
11068         2003-12-19  Paul Brook  <paul@codesourcery.com>
11069
11070         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
11071         insn patterns to match.
11072         * config/arm/arm-generic.md: Ditto.
11073         * config/arm/cirrus.md: Ditto.
11074         * config/arm/fpa.md: Ditto.
11075         * config/amm/iwmmxt.md: Ditto.
11076         * config/arm/arm1026ejs.md: Ditto.
11077         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
11078         for 11_loadb.
11079
11080         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
11081
11082         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
11083         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
11084         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
11085         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
11086         arm_no_early_mul_dep): Correctly deal with conditional execution,
11087         parallels and single shift operations.
11088         (arm_no_early_alu_shift_value_dep): Define.
11089         * arm.md (attr type): Replace 'normal' with 'alu',
11090         'alu_shift' and 'alu_shift_reg'.
11091         (attr core_cycles): Adjust.
11092         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
11093         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
11094         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
11095         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
11096         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
11097         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
11098         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
11099         attribute appropriately.
11100         * config/arm/arm1026ejs.md (alu_op): Adjust.
11101         (alu_shift_op, alu_shift_reg_op): New.
11102         * config/arm/arm1136.md: Add better bypasses for early
11103         registers. Remove load[234] and store[234] bypasses.
11104         (11_alu_op): Adjust.
11105         (11_alu_shift_op, 11_alu_shift_reg_op): New.
11106
11107         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
11108
11109         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
11110         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
11111         * config/arm/arm.c (arm_no_early_store_addr_dep,
11112         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
11113         * config/arm/arm1026ejs.md: Add load-store bypass.
11114         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
11115         Add bypasses between instructions.
11116
11117         2003-12-10  Paul Brook  <paul@codesourcery.com>
11118
11119         * config/arm/arm.c (arm_fpu_model): New variable.
11120         (arm_fload_abi): New variable.
11121         (target_fpe_name): Rename from target_fp_name.
11122         (target_fpu_name): New variable.
11123         (arm_is_cirrus): Remove.
11124         (fpu_desc): New struct.
11125         (all_fpus): Define.
11126         (pf_model_for_fpu): Define.
11127         (all_loat_abis): Define.
11128         (arm_override_options): Set fp arch flags based on -mfpu=
11129         and -float-abi=.
11130         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
11131         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
11132         (*): Use new TARGET_* flags.
11133         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
11134         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
11135         (TARGET_SOFT_FLOAT): Ditto.
11136         (TARGET_SOFT_FLOAT_ABI): New.
11137         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
11138         TARGET_HARD_FLOAT.
11139         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
11140         (TARGET_OPTIONS): Add -mfpu=.
11141         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
11142         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
11143         (arm_pf_model): Define.
11144         (arm_float_abi_type): Define.
11145         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
11146         * config/arm/arm.md: Use new TARGET_* flags.
11147         * config/arm/cirrus.md: Ditto.
11148         * config/arm/fpa.md: Ditto.
11149         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
11150         * config/arm/semi.h (ASM_SPEC): Ditto.
11151         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
11152         (FPUTYPE_DEFAULT): Set to VFP.
11153         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
11154
11155         2003-11-22  Phil Edwards  <phil@codesourcery.com>
11156
11157         PR target/12476
11158         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
11159         'bx' instead of 'b' to avoid branch range restrictions.  Output
11160         the thunk immediately before the thunked-to function.
11161         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
11162         .thumb_func if a thunk is being generated.  Emit .code 16 along
11163         with .thumb_func if a thunk is not being generated.
11164
11165         2003-11-15  Nicolas Pitre <nico@cam.org>
11166
11167         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
11168         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
11169         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
11170         (lshrdi3_iwmmxt): Renamed from lshrdi3.
11171         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
11172
11173         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
11174             Ian Lance Taylor  <ian@wasabisystems.com>
11175
11176         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
11177         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
11178
11179         2003-11-05  Phil Edwards  <phil@codesourcery.com>
11180
11181         * config/arm/arm.md (insn):  Add new V6 instruction names.
11182         (generic_sched):  New attr.
11183         * config/arm/arm-generic.md:  Use generic_sched here.
11184         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
11185         stages of pipeline.  Adjust latency counts accordingly.
11186         * config/arm/arm1136jfs.md:  New file.
11187
11188         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
11189
11190         * config/arm/arm.h (processor_type): New enumeration type.
11191         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
11192         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
11193         (CPP_CPU_ARCH_SPEC): Likewise.
11194         * config/arm/arm.c (arm_tune): New variable.
11195         (all_cores): Use cores.def.
11196         (all_architectures): Add representative processor.
11197         (arm_override_options): Restructure way in which tuning
11198         information is deduced.
11199         * arm.md: Update "insn" and "type" attributes throughout.
11200         (insn): New attribute.
11201         (type): Compute "mult" from "insn" attribute.  Add load2,
11202         load3, load4 alternatives.
11203         (arm automaton): Move to arm-generic.md.
11204         * config/arm/arm-cores.def: New file.
11205         * config/arm/arm-generic.md: Likewise.
11206         * config/arm/arm1026ejs.md: Likewise.
11207
11208 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
11209
11210         * doc/invoke.texi (SPARC options): Remove -mflat and
11211         all -mxxx (xxx:chip) options.
11212         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
11213         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
11214         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
11215         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
11216         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
11217         * config/sparc/sparc.c: Likewise.
11218         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
11219         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
11220         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
11221         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
11222         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
11223         (sparc_flat_must_save_register_p): Likewise.
11224         (sparc_flat_compute_frame_size): Likewise.
11225         (sparc_flat_save_restore): Likewise.
11226         (sparc_flat_function_prologue): Likewise.
11227         (sparc_flat_function_epilogue): Likewise.
11228         (sparc_flat_epilogue_delay_slots): Likewise.
11229         (sparc_flat_eligible_for_epilogue_delay): Likewise.
11230         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
11231         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
11232         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
11233         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
11234         (CONDITIONAL_REGISTER_USAGE): Likewise.
11235         (FRAME_POINTER_REQUIRED): Likewise.
11236         (INITIAL_ELIMINATION_OFFSET): Likewise.
11237         (BASE_RETURN_VALUE_REG): Likewise.
11238         (BASE_OUTGOING_VALUE_REG): Likewise.
11239         (BASE_PASSING_ARG_REG): Likewise.
11240         (BASE_INCOMING_ARG_REG): Likewise.
11241         (INCOMING_REGNO): Likewise.
11242         (OUTGOING_REGNO): Likewise.
11243         (LOCAL_REGNO): Likewise.
11244         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
11245         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
11246         (EPILOGUE_USES): Likewise.
11247         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
11248         ("flat" attribute): Delete.
11249         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
11250         handling.
11251         (call followed by jump define_peephole's): Delete.
11252         (exception_receiver): Likewise.
11253         (builtin_setjmp_receiver): Likewise.
11254         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
11255
11256 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
11257
11258         PR c/11658
11259         PR c/13994
11260         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
11261         on langhooks.h.
11262         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
11263         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
11264         Include langhooks.h.  Replace c_common_truthvalue_conversion
11265         with the truthvalue_conversion language hook throughout.
11266         (expr_no_commas): Call default_conversion before save_expr
11267         for the first term of the production 'x ? : y'.
11268         * c-common.c (c_common_truthvalue_conversion): Remove
11269         obsolete block.  Invoke recursively the hook instead
11270         of this function.
11271         * c-convert.c (convert): handle ERROR_MARK_NODE.
11272         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
11273         returned by the truthvalue_conversion language hook.
11274         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
11275         c_objc_common_truthvalue_conversion.
11276         * c-objc-common.c (c_objc_common_truthvalue_conversion):
11277         New function.
11278         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
11279         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
11280         c_objc_common_truthvalue_conversion.
11281
11282 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11283
11284         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
11285         of gen_rtx.
11286         (LIBCALL_VALUE): Likewise.
11287         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
11288         gen_rtx_CC0 instead of gen_rtx.
11289         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
11290         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
11291         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
11292         gen_rtx.
11293         (m68hc11_emit_logical): Likewise.
11294
11295 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11296
11297         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
11298         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
11299         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
11300         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
11301         config/mips/mips.md, config/mmix/mmix.c,
11302         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
11303         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
11304         config/rs6000/altivec.md, config/s390/s390.c,
11305         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
11306         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
11307         Use const0_rtx instead of GEN_INT (0).  Do the same for other
11308         constants that are readily available.
11309
11310 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11311
11312         * doloop.c, optabs.c, regmove.c, sched-deps.c,
11313         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
11314         instead of GEN_INT (0).  Do the same for other constants that
11315         are readily available.
11316
11317 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
11318
11319         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
11320         gen_rtx.
11321         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
11322         instead of gen_rtx.
11323         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
11324         gen_rtx.
11325         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
11326         gen_rtx_ASHIFT instead of gen_rtx.
11327         (udivmodqi4): Likewise.
11328
11329 2004-02-02  Richard Henderson  <rth@redhat.com>
11330
11331         PR target/13789
11332         * expr.c (store_expr): Use force_operand before emit_move_insn.
11333
11334 2004-02-02  Jeff Law  <law@redhat.com>
11335             Roger Sayle  <roger@eyesopen.com>
11336
11337         * tree.c (commutative_tree_code, associative_tree_code): New
11338         functions.
11339         (iterative_hash_expr): Use commutative_tree_code.
11340         * tree.h (commutative_tree_code, associative_tree_code): Declare.
11341         * fold-const.c (operand_equal_p): Use commutative_tree_code
11342         rather than inlining the commutativity check.
11343         (fold): Likewise.
11344
11345 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
11346
11347         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
11348         * config/frv/frv-protos.h: Remove the prototype for
11349         frv_function_arg_keep_as_reference.
11350         * config/frv/frv.c (frv_function_arg_keep_as_reference):
11351         Remove.
11352         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
11353         * config/stormy16/stormy16.h: Remove the commented-out
11354         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
11355
11356 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
11357
11358         PR target/13914
11359         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
11360         for retaddr_column.
11361
11362 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
11363
11364         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
11365         gen_rtx.
11366
11367 2004-02-02  Eric Christopher  <echristo@redhat.com>
11368             Zack Weinberg  <zack@codesourcery.com>
11369
11370         * c-opts.c (c_common_handle_option): Add -finput-charset.
11371         * c.opt: Ditto.
11372         * cppcharset.c (one_iso88591_to_utf8): Remove.
11373         (convert_iso88591_utf8): Ditto.
11374         (conversion_tab): Remove 8859-1 converter.
11375         (_cpp_input_to_utf8): Remove.
11376         (_cpp_init_iconv_buffer): Ditto.
11377         (_cpp_close_iconv_buffer): Ditto.
11378         (_cpp_convert_input): New function.
11379         (_cpp_default_encoding): Ditto.
11380         * cpphash.h: Add/remove prototypes for above.
11381         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
11382         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
11383         for narrow execution and input character sets.
11384         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
11385         * doc/cppopts.texi: Document -finput-charset.
11386
11387 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
11388
11389         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
11390         against FIRST_PSEUDO_REGISTER.
11391
11392 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
11393
11394         * doc/invoke.texi (SPARC options): Further improve.
11395
11396 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
11397
11398         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
11399         config/h8300/h8300.c, config/ip2k/ip2k.md,
11400         config/iq2000/iq2000.c, config/mips/mips.c,
11401         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
11402         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
11403         config/v850/v850.md: Fix indentation.
11404
11405 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
11406
11407         * config/sparc/sparc.c (function_arg_slotno): Align TImode
11408         arguments on a 16-byte boundary in the parameter array if ARCH64.
11409         Split handling of TFmode.
11410
11411 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
11412
11413         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
11414         Don't test CONSTANT_P (x).
11415         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
11416         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
11417         Fix misindentation.
11418
11419 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
11420
11421         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
11422
11423 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
11424
11425         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
11426         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
11427         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
11428         config/iq2000/iq2000.c, config/m32r/m32r.c,
11429         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
11430         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
11431         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
11432         config/stormy16/stormy16.c, config/v850/v850.md,
11433         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
11434
11435 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11436
11437         * config/mcore/mcore.c (block_move_sequence): Replace
11438         gen_rtx_CONST_INT with GEN_INT.
11439
11440 2004-02-02  Jan Hubicka  <jh@suse.cz>
11441
11442         * alias.c (record_set): Use hard_regno_nregs.
11443         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
11444         * builtins.c (apply_args_size): Likewise.
11445         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
11446         mark_set_regs, add_stored_regs, mark_referenced_regs,
11447         insert_restore, insert_save, insert_one_insn): Likewise.
11448         * cfgcleanup.c: Include regs.h
11449         (mark_effect, mentions_nonequal_regs): Likewise.
11450         * cfgrtl.c (mark_killed_regs): Likewise
11451         * combine.c (update_table_tick, record_value_for_reg,
11452         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
11453         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
11454         reg_bitfield_target_p, distribute_notes): Likewise.
11455         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
11456         exp_equiv_p, cse_insn): Likewise.
11457         * cselib.c (cselib_lookup): Likewise.
11458         (cselib_invalidate_regno, cselib_record_set): Likewise.
11459         * df.c (df_ref_record): Likewise.
11460         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
11461         Likewise.
11462         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
11463         count_or_remove_death_notes_bb): Likewise.
11464         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
11465         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
11466         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
11467         * integrate.c (mark_stores): Likewise.
11468         * jump.c (delete_prior_computation): Likewise.
11469         * lcm.c (reg_dies, reg_becomes_live): Likewise.
11470         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
11471         * loop.c (LOOP_REGNO_NREGS): Likewise.
11472         * postreload.c (reload_combine, reload_combine_note_store,
11473         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
11474         * ra-colorize.c (combine, color_usable_p, get_free_reg,
11475         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
11476         try_recolor_web, insert_coalesced_conflicts, check_colors,
11477         break_precolored_alias): Likewise.
11478         * ra-debug.c: Include regs.h
11479         (ra_print_rtx_object): Likewise.
11480         * ra-rewrite (choose_spill_colors): Likewise.
11481         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
11482         * ra.c (init_ra): Likewise.
11483         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
11484         peep2_find_free_register): Likewise.
11485         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
11486         * regclass.c (hard_regno_nregs): New array.
11487         (init_reg_modes_once): Initialize it.
11488         (choose_hard_reg_mode): Use it.
11489         (record_reg_classes): Likewise.
11490         * regmove.c (mark_flags_life_zones): Likewise.
11491         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
11492         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
11493         copy_value, maybe_mode_change, find_oldest_value_reg,
11494         copyprop_hardreg_forward_1):
11495         * regs.h (hard_regno_nregs): Declare.
11496         * realod.c (reload_inner_reg_of_subreg): Use it.
11497         (push_reload, combine_reloads, find_dummy_reload,
11498         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
11499         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
11500         reload_adjust_reg_for_mode): Likewise.
11501         * reload1.c (compute_use_by_pseudos, count_pseudo,
11502         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
11503         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
11504         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
11505         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
11506         delete_output_reload): Likewise.
11507         * resource.c (update_live_status, mark_referenced_resources,
11508         mark_set_resources, mark_target_live_regs): Likewise.
11509         * rtlanal.c:  Include regs.h
11510         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
11511         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
11512         subreg_regno_offset, subreg_offset_representable_p,
11513         hoist_test_store): Likewise.
11514         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
11515         * sched-rgn.c (check_live_1, update_live_1): Likewise.
11516         * stmt.c: Include regs.h
11517         (decl_conflicts_with_clobbers_p): Likewise.
11518         * varasm.c (make_decl_rtl): Likewise.
11519         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
11520
11521 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11522
11523         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
11524         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
11525         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
11526         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
11527         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
11528         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11529         config/iq2000/iq2000.h, config/m32r/m32r.c,
11530         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
11531         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
11532         config/mcore/mcore.c, config/mcore/mcore.h,
11533         config/mcore/mcore.md, config/mips/mips.c,
11534         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
11535         config/rs6000/rs6000.c, config/s390/s390.c,
11536         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
11537         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
11538         "gen_rtx (FOO, " with "gen_rtx_FOO (".
11539
11540 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11541
11542         * config/h8300/h8300.md (two peephole2's): New.
11543
11544 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
11545
11546         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
11547         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
11548         (ASM_CPU_SPEC): Likewise
11549         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
11550         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
11551
11552 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11553
11554         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
11555         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
11556         (expand_builtin): Always call expand_builtin_pow.
11557
11558 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11559
11560         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
11561         BUILT_IN_SIGNBITL): New GCC builtins.
11562         * builtins.c (expand_builtin_signbit): New function to RTL expand
11563         calls to signbit, signbitf and signbitl as inline intrinsics.
11564         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
11565         (fold_builtin_signbit): New function to perform constant folding
11566         of signbit, signbitf and signbitl.
11567         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
11568
11569         * doc/extend.texi: Document new signbit{,f,l} builtins.
11570
11571 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
11572
11573         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
11574
11575 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
11576
11577         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
11578         "mips_const_double_ok" and "simple_memory_operand", which were
11579         removed from the MIPS port with the mips-3_4-rewrite branch merge.
11580         * config/mips/mips.c (mips16_lay_out_constants): Update comment
11581         for removal of simple_memory_operand.
11582
11583 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11584
11585         * config/c4x/c4x.md: Use GEN_INT instead of
11586         gen_rtx (CONST_INT, ...).
11587
11588 2004-01-31  Richard Henderson  <rth@redhat.com>
11589
11590         * varasm.c (output_constant_pool): Don't zap the pool.
11591
11592 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11593
11594         * genrecog.c (decision_type): Add DT_const_int.
11595         (write_cond) [DT_const_int]: Print a comparison against small
11596         constant.
11597         (write_node): Simplify comparisons against small constants
11598         before printing tests.
11599
11600 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11601
11602         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
11603         instead of gen_rtx_CONST_INT.
11604
11605 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11606
11607         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
11608         instead of gen_rtx_CONST_INT.
11609
11610 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11611
11612         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
11613         hook_bool_CUMULATIVE_ARGS_false.
11614         * targhooks.c (default_strict_argument_naming): Rename to
11615         hook_bool_CUMULATIVE_ARGS_false.
11616         * targhooks.h: Update the prototype for
11617         default_strict_argument_naming.
11618
11619 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11620
11621         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11622         * config/sh/sh.h: Likewise.
11623         * config/sh/sh.md: Likewise.
11624
11625 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
11626
11627         * doc/invoke.texi (SPARC options): Restructure and update.
11628
11629 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11630
11631         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
11632         STRICT_ARGUMENT_NAMING): Poison.
11633         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
11634         hook_bool_tree_false.
11635         * targhooks.c (default_promote_function_args): Remove.
11636         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
11637         Don't check incoming.
11638         (default_strict_argument_naming): Don't use
11639         STRICT_ARGUMENT_NAMING.
11640         * targhooks.h: Remove the prototype for
11641         default_promote_function_args.
11642
11643 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11644
11645         * config/i386/i386-protos.h: Remove the prototype for
11646         ix86_setup_incoming_varargs.
11647         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
11648         (ix86_setup_incoming_varargs): Make it static.
11649         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
11650
11651 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11652
11653         * alloc-pool.c: Fix comment typos.
11654         * builtin-types.def: Likewise.
11655         * builtins.def: Likewise.
11656         * c-pretty-print.c: Likewise.
11657         * df.h: Likewise.
11658         * reload1.c: Likewise.
11659
11660 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11661
11662         * doc/invoke.texi: Follow spelling conventions.
11663         * doc/tm.texi: Likewise.
11664
11665 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11666
11667         * doc/install.texi: Fix typos.
11668         * doc/invoke.texi: Likewise.
11669
11670 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
11671
11672         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
11673         registers as pointers.
11674         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
11675
11676 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
11677
11678         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
11679         and restore it to gen_lowpart_general on exit.
11680         (gen_lowpart_for_combine): Adjust all callers to go through
11681         gen_lowpart.
11682         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
11683         and restore it to gen_lowpart_general on exit.
11684         (gen_lowpart_if_possible): Adjust all callers to go through
11685         gen_lowpart.
11686         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
11687         (gen_lowpart): Declare as pointer to function, initialized to
11688         gen_lowpart_general.
11689         * rtl.h (gen_lowpart): Declare as pointer to function.
11690
11691 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11692
11693         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11694         * calls.c: Likewise.
11695         * emit-rtl.c: Likewise.
11696         * function.c: Likewise.
11697         * reload1.c: Likewise.
11698         * config/i386/cygming.h: Likewise.
11699         * config/i386/i386.c: Likewise.
11700         * config/i386/winnt.c: Likewise.
11701
11702 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
11703
11704         PR bootstrap/9249
11705         * doc/install.texi: document --enable-__cxa_atexit option.
11706         * configure.ac: Disable __cxa_atexit if not supported.
11707         * configure: Regenerate.
11708
11709 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
11710
11711         * ggc-zone.c (ggc_free): New function.
11712
11713 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11714
11715         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
11716         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
11717         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
11718         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
11719         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
11720         config/alpha/alpha.c, config/alpha/alpha.h,
11721         config/alpha/alpha.md, config/alpha/unicosmk.h,
11722         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
11723         config/c4x/c4x-protos.h, config/c4x/c4x.md,
11724         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
11725         config/frv/frvend.c, config/i386/cygming.h,
11726         config/i386/djgpp.h, config/i386/emmintrin.h,
11727         config/i386/gthr-win32.c, config/i386/i386-interix.h,
11728         config/i386/i386-protos.h, config/i386/openbsd.h,
11729         config/i386/winnt.c, config/i386/xm-mingw32.h,
11730         config/i386/xmmintrin.h, config/ia64/ia64.md,
11731         config/iq2000/iq2000.md, config/m32r/m32r.md,
11732         config/m68k/m68k.md, config/mcore/mcore-elf.h,
11733         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
11734         config/mips/iris5gas.h, config/mips/iris6.h,
11735         config/mips/iris6gas.h, config/mips/linux.h,
11736         config/mips/mips.md, config/mips/netbsd.h,
11737         config/mips/openbsd.h, config/mips/windiss.h,
11738         config/pa/fptr.c, config/rs6000/aix.h,
11739         config/rs6000/altivec.h, config/rs6000/darwin.h,
11740         config/rs6000/xcoff.h, config/s390/s390-protos.h,
11741         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
11742         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
11743         config/sparc/sol2.h: Update copyright.
11744
11745 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
11746
11747         * Makefile.in (abs_docdir, abs_srcdir): Define.
11748         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
11749
11750 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11751
11752         * genconfig.c (main): Have CC0_P check its operand even on a
11753         target without cc0.
11754
11755 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11756
11757         * config/alpha/alpha.c: Remove mentions of deprecates macros
11758         in comments, remove some target-independent comments about target
11759         macros, and/or add minimal function comments for target hook
11760         implementations.
11761         * config/avr/avr.c: Likewise.
11762         * config/ia64/ia64.h: Likewise.
11763         * config/ip2k/ip2k.c: Likewise.
11764         * config/iq2000/iq2000.c: Likewise.
11765         * config/m32r/m32r.h: Likewise.
11766         * config/m68hc11/m68hc11.c: Likewise.
11767         * config/mcore/mcore.c: Likewise.
11768         * config/mmix/mmix.c: Likewise.
11769         * config/mn10300/mn10300.c: Likewise.
11770         * config/pa/pa.c: Likewise.
11771         * config/pdp11/pdp11.c: Likewise.
11772         * config/rs6000/rs6000.h: Likewise.
11773         * config/sh/sh.c: Likewise.
11774         * config/sh/sh.h: Likewise.
11775         * config/sparc/sparc.c: Likewise.
11776         * config/sparc/sparc.h: Likewise.
11777         * config/stormy16/stormy16.c: Likewise.
11778         * config/xtensa/xtensa.c: Likewise.
11779
11780 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11781
11782         PR optimization/12147
11783         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
11784         RELOAD_FOR_OPADDR_ADDR.
11785         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
11786         might be reused as RELOAD_FOR_OPADDR_ADDR register.
11787
11788 2004-01-30  Jan Hubicka  <jh@suse.cz>
11789
11790         * reload.c (get_secondary_mem): Fix updating of
11791         secondary_memlocs_elim_used.
11792
11793 2004-01-30  Richard Henderson  <rth@redhat.com>
11794
11795         * varasm.c (struct rtx_const, struct pool_constant): Remove.
11796         (MAX_RTX_HASH_TABLE): Remove.
11797         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
11798         (first_pool, last_pool, pool_offset): Remove.
11799         (struct rtx_constant_pool): Split out from ...
11800         (struct varasm_status): ... here.  Reference one via pointer.
11801         (struct constant_descriptor_rtx): Merge struct pool_constant.
11802         (SYMHASH): Remove.
11803         (decode_rtx_const): Remove.
11804         (const_hash_rtx, compare_constant_rtx): Remove.
11805         (record_constant_rtx): Remove.
11806         (const_desc_rtx_hash, const_desc_rtx_eq): New.
11807         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
11808         (const_rtx_hash_1, const_rtx_hash): New.
11809         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
11810         (simplify_subtraction): Use simplify_rtx.
11811         (force_const_mem): Rewrite to use new data structures.
11812         (find_pool_constant): Likewise.
11813         (get_pool_constant, get_pool_constant_mark,
11814         get_pool_constant_for_function, get_pool_mode,
11815         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
11816         (output_constant_pool_2): Split out from output_constant_pool.
11817         (output_constant_pool_1): Likewise.  Use new pool datastructures.
11818         (output_constant_pool): Zap entire pool datastructure.
11819         (mark_constant): Use new pool datastructures.
11820         (mark_constants): Use for_each_rtx.
11821         (mark_constant_pool): Use new pool datastructures.
11822
11823 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
11824
11825         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
11826         Copy operands[1] to pseudo for simplify_gen_subreg.
11827
11828 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11829
11830         * gcse.c (bypass_block): Fix a typo in the previous check-in
11831         to the file.
11832
11833 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
11834
11835         * toplev.c: Include alloc-pool.h.
11836         * Makefile.in (toplev.c): Update dependencies.
11837
11838 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11839
11840         * combine.c (simplify_shift_const, case XOR): Be careful when
11841         commuting XOR with ASHIFTRT.
11842
11843 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11844             Eric Botcazou  <ebotcazou@libertysurf.fr>
11845
11846         * config/sparc/sparc-protos.h: Remove the prototype for
11847         sparc_builtin_saveregs.
11848         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11849         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11850         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11851         (TARGET_STRUCT_VALUE_RTX): Likewise.
11852         (TARGET_RETURN_IN_MEMORY): Likewise.
11853         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11854         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11855         (sparc_builtin_saveregs): Make it static.
11856         (sparc_promote_prototypes): New.
11857         (sparc_struct_value_rtx): Likewise.
11858         (sparc_return_in_memory): Likewise.
11859         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
11860         (PROMOTE_FUNCTION_RETURN): Likewise.
11861         (RETURN_IN_MEMORY): Likewise.
11862         (STRUCT_VALUE): Likewise.
11863         (STRUCT_VALUE_INCOMING): Likewise.
11864         (EXPAND_BUILTIN_SAVEREGS): Likewise.
11865         (STRICT_ARGUMENT_NAMING): Likewise.
11866         (PROMOTE_PROTOTYPES): Likewise.
11867
11868         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
11869
11870 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11871
11872         PR c/12818
11873         * varasm.c (const_hash_1) <STRING_CST>: Use the
11874         address to compute the hash value if flag_writable_strings.
11875         (compare_constant) <STRING_CST>: Compare the addresses
11876         if flag_writable_strings.
11877         (build_constant_desc): Do not copy the expression for a
11878         STRING_CST if flag_writable_strings.
11879
11880 2004-01-30  Jan Hubicka  <jh@suse.cz>
11881
11882         * alloc-pool.c: Include hashtab.h
11883         (alloc_pool_descriptor): New structure
11884         (alloc_pool_hash): New global variable.
11885         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
11886         (create_alloc_pool): Update statistics.
11887         (free_alloc_pool): Likewise.
11888         (pool_alloc): Likewise.
11889         (output_info): New structure
11890         (print_statistics, dump_alloc_pool_statistics): New function.
11891         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
11892         (dump_alloc_pool_statistics): Declare.
11893         * toplev.c (finalize):  Dump statistics.
11894
11895         * reload.c (secondary_memlocs_elim_used): New static variable.
11896         (get_secondary_mem): Update it.
11897         (find_reloads): Use it.
11898
11899 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
11900
11901         * toplev.c: Fix broken checkin of 2003-12-30, again.
11902
11903 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11904
11905         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
11906         s390*-*-* targets by specifying a 'nop' insn.
11907         * configure: Regenerate.
11908
11909 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11910
11911         PR target/11475
11912         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
11913
11914 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11915
11916         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
11917         of addr when creating MEM copy.
11918
11919 2004-01-29  Devang Patel  <dpatel@apple.com>
11920
11921         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
11922
11923 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
11924
11925         PR inline-asm/6162
11926         * reload.c (find_reloads): Only support one pair of commutative
11927         operands.
11928
11929 2004-01-29  Roger Sayle  <roger@eyesopen.com>
11930
11931         PR java/13824
11932         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
11933         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
11934         recursion.
11935
11936 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
11937
11938         * config/frv/frv.c: Don't mention deprecated macros in
11939         comments.  Remove some target-independent comments about
11940         target macros.
11941         * config/frv/frv.h: Likewise.
11942
11943 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11944
11945         * cfghooks.c (split_block): Set probability and count of the
11946         new edge.
11947
11948 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
11949
11950         * dwarf2out.c (struct die_struct): Added field decl_id.
11951         (decl_die_table): Changed to hash table.
11952         (decl_die_table_allocated): Deleted.
11953         (decl_die_table_in_use): Deleted.
11954         (DECL_DIE_TABLE_INCREMENT): Deleted.
11955         (decl_die_table_hash): New function.
11956         (decl_die_table_eq): New function.
11957         (lookup_decl_die): Lookup in a hash table.
11958         (equate_decl_number_to_die): Insert into a hash table.
11959         (dwarf2out_init): Init hash table decl_die_table.
11960
11961 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11962
11963         PR optimization/13424
11964         * expr.c (store_constructor): Revert 2003-12-03 change.
11965
11966         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
11967         expected before returning early.  Avoid sharing RTL if they
11968         need to be changed.
11969
11970         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
11971         handling so that memory attributes are preserved.  Don't call
11972         ix86_set_move_mem_attrs.
11973         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
11974         (ix86_expand_clrstr): Rename src argument to
11975         dst.  Rework rep_stos and strset handling so that memory attributes
11976         are preserved.
11977         (ix86_expand_strlen): Pass src argument to
11978         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
11979         memory attributes are preserved.
11980         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
11981         change_address instead of gen_rtx_MEM.
11982         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
11983         expanders.
11984         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
11985         strmovqi, strmovqi_rex64): Remove.
11986         (rep_mov*, strmov*): Prefix insn names with *.
11987         (strset, strset_singleop, rep_stos): New expanders.
11988         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
11989         strsetqi, strsetqi_rex64): Remove.
11990         (rep_stos*, strset*): Prefix insn names with *.
11991         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
11992         to SImode.
11993         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
11994         are preserved.
11995         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
11996         Prefix insn names with *.
11997         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
11998         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
11999         (strlenqi_1): New expander.
12000         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
12001
12002 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12003
12004         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
12005         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
12006         verify_flow_info): Declaration removed.
12007         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
12008         (debug_bb, debug_bb_n): Add argument to dump_bb call.
12009         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
12010         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
12011         instead of delete_block.
12012         * cfghooks.c: Include timevar.h and toplev.h.
12013         (cfg_hooks): Define here.
12014         (verify_flow_info, dump_bb): Moved from cfg.c.
12015         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12016         split_block, split_block_after_labels, move_block_after,
12017         delete_basic_block, split_edge, create_basic_block,
12018         create_empty_bb, can_merge_blocks_p, merge_blocks,
12019         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12020         New functions.
12021         * cfghooks.h (struct cfg_hooks): Added fields name,
12022         make_forwarder_block, tidy_fallthru_edge and
12023         move_block_after. Changed type of verify_flow_info, dump_bb,
12024         split_block fields. Renamed cfgh_split_edge and delete_block
12025         fields.
12026         (redirect_edge_and_branch, redirect_edge_and_branch_force,
12027         split_block, delete_block, split_edge, create_basic_block,
12028         can_merge_blocks_p, merge_blocks): Macros removed.
12029         (cfg_hooks): Do not export.
12030         (verify_flow_info, dump_bb, redirect_edge_and_branch,
12031         redirect_edge_and_branch_force, split_block, split_block_after_labels,
12032         move_block_after, delete_basic_block, split_edge, create_basic_block,
12033         create_empty_bb, can_merge_blocks_p, merge_blocks,
12034         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
12035         Declare.
12036         (cfg_layout_rtl_cfg_hooks): Declare.
12037         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
12038         New functions.
12039         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
12040         (redirect_edge_with_latch_update): Removed.
12041         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
12042         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
12043         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
12044         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
12045         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
12046         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
12047         cfghooks.c.
12048         (rtl_create_basic_block): Coding style fix.
12049         (rtl_tidy_fallthru_edge, rtl_move_block_after,
12050         rtl_make_forwarder_block): New functions.
12051         (update_cfg_after_block_merging): Removed.
12052         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
12053         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
12054         to dump_bb.
12055         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
12056         find_if_case_2): Don't update dominators.
12057         * timevar.def (TV_CFG_VERIFY): New.
12058         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
12059         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
12060         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
12061         (remove_bbs): Don't call remove_bbs.
12062         (create_preheader): Use make_forwarder_block.
12063         (mfb_keep_just, mfb_update_loops): New static functions.
12064
12065 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
12066
12067         * config/avr/avr.h: Remove target-independent comments about
12068         target macros.
12069
12070 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
12071
12072         * timevar.c (timevar_print): Mention when checking is enabled.
12073
12074 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12075
12076         * c-lex.c (c_lex): Rename to...
12077         (c_lex_with_flags): Add new parameter to get CPP flags.
12078         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
12079         * c-pragma.h (c_lex_with_flags): Declare.
12080
12081 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12082
12083         * config/mcore/mcore.c (mcore_external_libcall): Add a
12084         comment.
12085         (mcore_return_in_memory): Likewise.
12086
12087 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12088
12089         * config/mcore/mcore-protos.h: Remove the prototype for
12090         mcore_setup_incoming_varargs.
12091         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12092         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12093         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12094         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12095         (TARGET_STRUCT_VALUE_RTX): Likewise.
12096         (TARGET_RETURN_IN_MEMORY): Likewise.
12097         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12098         (mcore_setup_incoming_varargs): Make it static.  Receive the
12099         first argument by reference.  Add argument second_time.
12100         (mcore_external_libcall): New.
12101         (mcore_return_in_memory): Likewise.
12102         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
12103         (PROMOTE_FUNCTION_RETURN): Likewise.
12104         (STRUCT_VALUE): Likewise.
12105         (RETURN_IN_MEMORY): Likewise.
12106         (SETUP_INCOMING_VARARGS): Likewise.
12107         (PROMOTE_PROTOTYPES): Likewise.
12108         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
12109
12110 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12111
12112         * config/m32r/m32r-protos.h: Remove the prototype for
12113         m32r_setup_incoming_varargs.
12114         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
12115         (TARGET_STRUCT_VALUE_RTX): Likewise.
12116         (TARGET_RETURN_IN_MEMORY): Likewise.
12117         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12118         (m32r_return_in_memory): New.
12119         (m32r_setup_incoming_varargs): Make it static.
12120         * config/m32r/m32r.h: Remove #undef of
12121         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
12122         definitions of PROMOTE_FUNCTION_ARGS and
12123         PROMOTE_FUNCTION_RETURN.
12124         (PROMOTE_PROTOTYPES): Remove.
12125         (RETURN_IN_MEMORY): Likewise.
12126         (STRUCT_VALUE): Likewise.
12127
12128 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12129
12130         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
12131         (TARGET_STRUCT_VALUE_RTX): Likewise.
12132         (m68k_struct_value_rtx): Likewise.
12133         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
12134         STRUCT_VALUE_REGNUM.
12135         (PROMOTE_PROTOTYPES): Remove.
12136         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
12137         STRUCT_VALUE_REGNUM.
12138         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
12139         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
12140
12141 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12142
12143         * config/stormy16/stormy16.c
12144         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
12145         TARGET_BUILD_BUILTIN_VA_LIST.
12146
12147 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12148
12149         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
12150         (TARGET_STRUCT_VALUE_RTX): Likewise.
12151         (TARGET_RETURN_IN_MEMORY): Likewise.
12152         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12153         (v850_return_in_memory): Likewise.
12154         (v850_setup_incoming_varargs): Likewise.
12155         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
12156         (SETUP_INCOMING_VARARGS): Likewise.
12157         (RETURN_IN_MEMORY): Likewise.
12158         (STRUCT_VALUE): Likewise.
12159
12160 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12161
12162         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
12163         (fr30_setup_incoming_varargs): Don't use
12164         STRICT_ARGUMENT_NAMING.
12165         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
12166         (STRICT_ARGUMENT_NAMING): Likewise.
12167
12168 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12169
12170         * config/frv/frv-protos.h: Remove the prototype for
12171         frv_expand_builtin_saveregs.
12172         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
12173         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12174         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
12175         STRUCT_VALUE_REGNUM.
12176         (frv_expand_builtin_saveregs): Make it static.
12177         (frv_struct_value_rtx): New.
12178         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
12179
12180 2004-01-29  Jan Hubicka  <jh@suse.cz>
12181
12182         PR c++/12850
12183         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
12184         initial pointers.
12185         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
12186         for functions that will be only inlined.
12187         (cgraph_mark_function_to_output): Likewise.
12188         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
12189         do not clear function body.
12190         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
12191         (tree_rest_of_compilation): Reorganize the logic releasing function
12192         body to use callgraph datastructure.
12193
12194 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12195
12196         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
12197         to register_operand.
12198
12199 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
12200
12201         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
12202         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
12203         match_operand expressions so that all match_dups appear
12204         lexically after their corresponding match_operands.
12205
12206 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12207
12208         * config/h8300/h8300.c (WORD_REG_USED): Use
12209         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
12210         (compute_saved_regs): Likewise.
12211         (h8300_expand_prologue): Likewise.  Allocate locals after
12212         saving registers.
12213         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
12214         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
12215         registers.
12216         (h8300_initial_elimination_offset): Adjust for the new frame
12217         layout, which swaps flips the order of locals and saved
12218         registers.
12219         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
12220         (HARD_FRAME_POINTER_REGNUM): New.
12221         (ELIMINABLE_REGS): Add an elimination rule from
12222         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
12223         (REGISTER_NAMES): Add fp.
12224         * config/h8300/h8300.md (FP_REG): Change to 11.
12225         (HFP_REG): New.
12226
12227 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12228
12229         * genrecog.c (write_node): Remove a useless local variable.
12230
12231 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
12232
12233         * Makefile.in (options.c options.h): Use stamp file s-options to
12234         avoid unnecessary rebuilds.
12235         (options.o): New target listing dependencies.
12236         (gtyp-gen.h): Use stamp file s-gtyp-gen.
12237         (STAGESTUFF): Add s-gtyp-gen.
12238
12239 2004-01-28  Richard Henderson  <rth@redhat.com>
12240
12241         * ggc.h (ggc_free): Declare.
12242         * ggc-common.c (ggc_realloc): Use it.
12243         * ggc-page.c: Remove lots of inline markers.
12244         (globals): Add free_object_list.
12245         (ggc_alloc): Tidy.
12246         (ggc_free, validate_free_objects): New.
12247         (poison_pages): Provide default.
12248         (ggc_collect): Call validate_free_objects; emit markers to
12249         the debug file.
12250
12251 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
12252             Jim Wilson  <wilson@specifixinc.com>
12253
12254         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
12255         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
12256         scratch pointer.
12257         (ia64_secondary_reload_class): Delete case GR_REGS.
12258         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
12259         Do not allocate a scratch register.
12260         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
12261
12262 2004-01-28  Jan Hubicka  <jh@suse.cz>
12263
12264         * gcse.c (bypass_block): Prevent edges to be unified when we are
12265         about to emit compenstation code.
12266
12267 2004-01-28  Nick Clifton  <nickc@redhat.com>
12268
12269         * config/arm/arm.c (arm_expand_builtin): Force second argument of
12270         the setcwx insn into a register.
12271
12272 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
12273
12274         * config/fp-bit.c (pack_d): When using paired doubles to implement
12275         a long double, round the high part separately.
12276         (unpack_d): Fix the case in which the high part is a power of two
12277         and the low part is a nonzero value of the opposite sign.
12278
12279 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12280
12281         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12282         (TARGET_STRUCT_VALUE_RTX): Likewise.
12283         (c4x_external_libcall): Likewise.
12284         (c4x_struct_value_rtx): Likewise.
12285         * config/c4x/c4x.h: Remove.
12286         (STRUCT_VALUE_REGNUM): Likewise.
12287         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
12288
12289 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
12290
12291         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
12292         (TARGET_STRUCT_VALUE_RTX): Likewise.
12293         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
12294         (STRUCT_VALUE): Likewise.
12295         (PROMOTE_PROTOTYPES): Likewise.
12296
12297 2004-01-27  Roger Sayle  <roger@eyesopen.com>
12298
12299         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
12300         CONST_INT before using INTVAL.
12301
12302 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
12303
12304         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
12305         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
12306         frame if !TARGET_BACKCHAIN.
12307         * config/s390/s390.md ("allocate_stack"): Use pattern only if
12308         TARGET_BACKCHAIN.
12309         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
12310
12311 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
12312
12313         * ia64.c (ia64_function_arg): When placing HFAs in integer
12314         registers, do not special case the mode used for complex
12315         types.  Do not advance int_regs until the current register
12316         is full.
12317
12318 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
12319
12320         PR target/7297
12321         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
12322
12323 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
12324
12325         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
12326         slow, unaligned loads and stores while debugging.  Fix formatting.
12327
12328 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
12329
12330         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
12331         of computing wmode.
12332         (restore_stack_nonlocal): Same.
12333
12334 2004-01-27  Devang Patel <dpatel@apple.com>
12335
12336         * Makefile.in (dwarf2out.o): Depend on input.h
12337         * dbxout.c (dbx_debug_hooks): Add new empty hook for
12338         imported_module_or_decl.
12339         (xcoff_debug_hooks): Same.
12340         * sdbout.c (sdb_debug_hooks): Same.
12341         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
12342         * debug.c (do_nothing_debug_hooks): Same.
12343         (debug_nothing_tree_tree): New function.
12344         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
12345         * dwarf2out.c: Include input.h.
12346         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
12347         (remove_child_TAG): New function.
12348         (dwarf_tag_name): Handle DW_TAG_imported_module.
12349         (gen_subprogram_die): Equate decl number to declaration die. Do not
12350         remove all children dies while reusing declaration die for definition.
12351         Instead, selectively remove only formal parameters.
12352         (gen_variable_die): Equate variable decl to declaration die.
12353         (gen_field_die): Equate field decl to line number.
12354         (force_namespace_die): Replace it with ...
12355         (force_decl_die): ... this.
12356         (force_type_die): New function.
12357         (setup_namespace_context): Replace use of force_namespace_die() with
12358         force_decl_die().
12359         (gen_namespace_die): Same.
12360         (dwarf2out_imported_module_or_decl): New function.
12361
12362 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
12363
12364         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
12365         on CQImode and CHImode incoming arguments in register a7.
12366         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
12367         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
12368         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
12369         xtensa_copy_incoming_a7 before reload.
12370
12371 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
12372
12373         * coverage.c (get_coverage_counts): Give a different message
12374         if flag_guess_branch_prob is set.
12375         * predict.c (counts_to_freqs): Return an int.
12376         (estimate_bb_frequencies): If counts_to_freqs returns zero,
12377         calculate estimates.
12378
12379 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
12380
12381         * config/iq2000/iq2000-protos.h: Remove the prototype for
12382         iq2000_setup_incoming_varargs.
12383         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12384         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12385         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12386         (TARGET_STRUCT_VALUE_RTX): Likewise.
12387         (TARGET_RETURN_IN_MEMORY): Likewise.
12388         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12389         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12390         (iq2000_return_in_memory): Likewise.
12391         (iq2000_setup_incoming_varargs): Make it static.  Receive the
12392         first argument by reference.
12393         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
12394         (PROMOTE_FUNCTION_RETURN): Likewise.
12395         (PROMOTE_PROTOTYPES): Likewise.
12396         (RETURN_IN_MEMORY): Likewise.
12397         (STRUCT_VALUE): Likewise.
12398         (SETUP_INCOMING_VARARGS): Likewise.
12399         (STRICT_ARGUMENT_NAMING): Likewise.
12400
12401 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
12402
12403         * fixinc/fixinc.c (test_test): Initialize res.
12404         (start_flexer): Initialize pz_cmd_save.
12405
12406 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
12407
12408         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
12409         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
12410
12411 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
12412
12413         PR 7198
12414         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
12415         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
12416         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
12417         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
12418         Possibly rename pattern for consistency.
12419         Remove ??? comments suggesting that this be done.
12420         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
12421         New patterns.
12422         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
12423         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
12424         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
12425         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
12426         Update to match.
12427
12428 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
12429
12430         * config/arm/arm.c (output_return_instruction): Only restore IP
12431         into SP if frame_pointer_needed.
12432
12433 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12434
12435         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12436         for SCmode and DCmode if ARCH32.
12437         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
12438         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
12439         if ARCH32.
12440         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
12441         if ARCH32.
12442         (BASE_OUTGOING_VALUE_REG): Likewise.
12443
12444 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12445
12446         PR target/10904
12447         PR target/13058
12448         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
12449         Forbid mode changes from SImode for lower FP regs if ARCH64.
12450
12451 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
12452
12453         * Makefile.in (bt-load.o): Depend on except.h.
12454         * bt-load.c (except.h): #include.
12455         (compute_defs_uses_and_gen): If insn at end of BB can throw
12456         within this function, consider registers used by it unavailable for
12457         btr migration.
12458         (move_btr_def): If insn at end of BB can throw, insert before rather
12459         than after.
12460
12461         * flags.h (flag_btr_bb_exclusive): Declare.
12462         * toplev.c (flag_btr_bb_exclusive): New variable.
12463         (f_options): Add btr-bb-exclusive.
12464         * bt-load.c (augment_live_range): Restore old behaviour if
12465         flag_btr_bb_exclusive is set.
12466         * common.opt: Add entry for -fbtr-bb-exclusive.
12467         * opts.c (common_handle_options): Same.
12468         * doc/invoke.texi: Document -fbtr-bb-exclusive.
12469
12470         * bt-load.c (btrs_live_at_end): New variable.
12471         (compute_defs_uses_and_gen): Compute its pointed-to array.
12472         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
12473         (augment_live_range): When augmenting with a new dominator,
12474         use only its btrs_live_at_end set, but also add in the full set
12475         of the old dominator.
12476         (btr_def_live_range): Use btrs_live_at_end.
12477         (move_btr_def): Set other_btr_uses_before_def, and move new set
12478         to the end of the basic block, if appropriate.
12479         (migrate_btr_defs): Allocate and free btrs_live_at_end.
12480
12481         * bt-load.c (basic_block_freq): Remove outdated comment.
12482
12483 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
12484
12485         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
12486         (PREDICATE_CODES): Remove duplicate.
12487         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
12488         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
12489         (MASK_PROFILE_KERNEL): Adjust define.
12490
12491 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
12492
12493         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
12494         of long string literals from 32 bytes to sizeof (void *) when !-Os
12495         and to 1 with -Os.
12496
12497 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12498
12499         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
12500         constant addresses in the normal mode.
12501
12502 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12503
12504         * system.h (CHAR_BITFIELD): Delete.
12505         (BOOL_BITFIELD): New.
12506         * c-decl.c (c_scope): Use BOOL_BITFIELD.
12507         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
12508
12509 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12510
12511         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12512         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12513         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12514         (TARGET_STRUCT_VALUE_RTX): Likewise.
12515         (TARGET_RETURN_IN_MEMORY): Likewise.
12516         (arc_return_in_memory): Likewise.
12517         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
12518         (PROMOTE_FUNCTION_RETURN): Likewise.
12519         (RETURN_IN_MEMORY): Likewise.
12520         (STRUCT_VALUE): Likewise.
12521
12522 2004-01-26  Richard Henderson  <rth@redhat.com>
12523
12524         * c-parse.in (extension): Use itype.
12525         (SAVE_EXT_FLAGS): Don't allocate a tree.
12526         (RESTORE_EXT_FLAGS): Don't read a tree.
12527
12528 2004-01-26  Jan Hubicka  <jh@suse.cz>
12529
12530         * cselib.c (discard_useless_values):  Clear out value pointer pointing
12531         to datastructure to be recycled.
12532
12533 2004-01-25  Jan Hubicka  <jh@suse.cz>
12534
12535         * genextract.c (main): Do not output the memset when not checking.
12536
12537 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12538
12539         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
12540         switch statement instead of a chain of if statements.
12541
12542 2004-01-26  Jeff Law  <law@redhat.com>
12543
12544         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
12545         acute accents for Petur Runolfsson's entry.
12546
12547 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12548
12549         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
12550         (TARGET_RETURN_IN_MEMORY): Likewise.
12551         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
12552         (RETURN_IN_MEMORY): Likewise.
12553
12554 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12555
12556          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
12557          unaligned load/store into smaller loads and stores.
12558
12559 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12560
12561         * function.c (assign_parms): Do not assign
12562         long long argument to memory in prologue if
12563         is it loaded into register.
12564
12565 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12566
12567          PR middle-end/13779
12568          * expr.c (emit_group_load): split constant
12569          correctly into register components of PARALLEL insn.
12570
12571 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12572
12573         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
12574         Use adjust_address_nv directly with appropriate mode.
12575         (restore_stack_nonlocal): Ditto.
12576
12577 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12578
12579         * config/xtensa/xtensa-protos.h: Remove the prototype for
12580         xtensa_builtin_saveregs.
12581         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12582         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12583         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12584         (TARGET_STRUCT_VALUE_RTX): Likewise.
12585         (TARGET_RETURN_IN_MEMORY): Likewise.
12586         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12587         (xtensa_builtin_saveregs): Make it static.
12588         (xtensa_return_in_memory): New.
12589         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
12590         (PROMOTE_FUNCTION_RETURN): Likewise.
12591         (PROMOTE_PROTOTYPES): Likewise.
12592         (STRUCT_VALUE): Likewise.
12593         (RETURN_IN_MEMORY): Likewise.
12594         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12595
12596 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12597
12598         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
12599         (arm_setup_incoming_varargs): Likewise.
12600         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
12601
12602 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12603
12604         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
12605         (cris_setup_incoming_varargs): Likewise.
12606         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
12607
12608 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12609
12610         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
12611         (ns32k_struct_value_rtx): Likewise.
12612         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
12613         NS32K_STRUCT_VALUE_REGNUM.
12614
12615 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12616
12617         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12618         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12619         (TARGET_STRUCT_VALUE_RTX): Likewise.
12620         (arm_struct_value_rtx): Likewise.
12621         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
12622         (STRUCT_VALUE): Likewise.
12623         (STRUCT_VALUE_REGNUM): Likewise.
12624         (PROMOTE_PROTOTYPES): Likewise.
12625
12626 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12627
12628         * config/ia64/ia64-protos.h: Remove the prototype for
12629         ia64_setup_incoming_varargs and ia64_return_in_memory.
12630         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
12631         (TARGET_RETURN_IN_MEMORY): Likewise.
12632         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12633         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12634         (ia64_setup_incoming_varargs): Adjust the arguments to meet
12635         the requirement of TARGET_SETUP_INCOMING_VARARGS.
12636         (ia64_return_in_memory): Make it static.  Change the return
12637         type to bool from int.  Add an argument.
12638         (ia64_struct_value_rtx): New.
12639         * config/ia64/ia64.h: Remove commented-out definitions of
12640         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
12641         PROMOTE_PROTOTYPES.
12642         (RETURN_IN_MEMORY): Remove.
12643         (STRUCT_VALUE_REGNUM): Likewise.
12644         (STRICT_ARGUMENT_NAMING): Likewise.
12645
12646 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
12647
12648         PR target/13666
12649         * config/sparc/sparc.c (function_arg_union_value): New function.
12650         (function_arg): Use it to deal with unions.
12651         (function_value): Likewise.  Define 'regbase' only for ARCH64.
12652         Replace a conditional statement by a simpler one.
12653
12654 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
12655
12656         * config/mips/mips.c (mips16_optimize_gp): Delete.
12657         (mips_reorg): Don't call it.
12658
12659 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12660
12661         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
12662         (floatunsqihf2): Remove operand 6.
12663         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
12664         fix patterns.
12665         (ldi_conditional, ldf_conditional): Validate operands.
12666
12667 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12668
12669         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
12670         (HAVE_GAS_HIDDEN): Undefine as interim measure.
12671
12672 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12673
12674         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
12675         memory references if TARGET_EXPOSE_LDP nonzero.
12676
12677 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12678
12679         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
12680
12681 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12682
12683         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
12684         invalid operand combinations.
12685
12686 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12687
12688         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
12689         c4x_legitimate_address_p.  Fix post_modify check.
12690
12691         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
12692         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
12693
12694 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12695
12696         * config/pa/pa-protos.h: Remove the prototype for
12697         hppa_builtin_saveregs.  Add a prototype for
12698         pa_return_in_memory.
12699         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
12700         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12701         (TARGET_STRUCT_VALUE_RTX): Likewise.
12702         (TARGET_RETURN_IN_MEMORY): Likewise.
12703         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12704         (pa_struct_value_rtx): Likewise.
12705         (pa_return_in_memory): Likewise.
12706         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
12707         PA_STRUCT_VALUE_REGNUM.
12708         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
12709         (EXPAND_BUILTIN_SAVEREGS): Remove.
12710         (PROMOTE_PROTOTYPES): Likewise.
12711         (PROMOTE_FUNCTION_RETURN): Likewise.
12712
12713 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12714
12715         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
12716         (TARGET_STRUCT_VALUE_RTX): Likewise.
12717         (vax_struct_value_rtx): Likewise.
12718         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
12719         VAX_STRUCT_VALUE_REGNUM.
12720         (PROMOTE_PROTOTYPES): Remove.
12721
12722 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12723
12724         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
12725
12726 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
12727
12728         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
12729         and MIPS64 have HI/LO interlocks.  Update comment.
12730
12731 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12732
12733         * config/stormy16/stormy16-protos.h: Remove the prototype for
12734         xstormy16_setup_incoming_varargs.
12735         * config/stormy16/stormy16.c
12736         (xstormy16_setup_incoming_varargs): Remove.
12737         (xstormy16_return_in_memory): New.
12738         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12739         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12740         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12741         (TARGET_STRUCT_VALUE_RTX): Likewise.
12742         (TARGET_RETURN_IN_MEMORY): Likewise.
12743         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
12744         (PROMOTE_FUNCTION_RETURN): Likewise
12745         (PROMOTE_PROTOTYPES): Likewise
12746         (RETURN_IN_MEMORY): Likewise
12747         (STRUCT_VALUE): Likewise
12748         (SETUP_INCOMING_VARARGS): Likewise
12749
12750 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12751
12752         * config/mips/mips.c (mips_offset_within_object_p): New function.
12753         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
12754         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
12755         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
12756
12757 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12758
12759         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
12760         (PROMOTE_FUNCTION_RETURN): Likewise.
12761
12762 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12763
12764         * config/mn10300/mn10300-protos.h: Remove the prototype for
12765         mn10300_builtin_saveregs.
12766         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
12767         (TARGET_STRUCT_VALUE_RTX): Likewise.
12768         (TARGET_RETURN_IN_MEMORY): Likewise.
12769         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12770         (mn10300_return_in_memory): Likewise.
12771         (mn10300_builtin_saveregs): Make it static.
12772         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
12773         (RETURN_IN_MEMORY): Likewise.
12774         (STRUCT_VALUE): Likewise.
12775         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12776
12777 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
12778
12779         PR bootstrap/13853
12780         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
12781
12782 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12783
12784         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
12785         using ccr.
12786
12787 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12788
12789         * config/i860/i860-protos.h: Remove the prototype for
12790         i860_saveregs.
12791         * config/i860/i860.c (i860_saveregs): Make it static.
12792         (i860_struct_value_rtx): New.
12793         (TARGET_STRUCT_VALUE_RTX): Likewise.
12794         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12795         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
12796         I860_STRUCT_VALUE_REGNUM.
12797         (EXPAND_BUILTIN_SAVEREGS): Remove.
12798
12799 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12800
12801         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
12802         (TARGET_RETURN_IN_MEMORY): Likewise.
12803         (m68hc11_struct_value_rtx): Likewise.
12804         (m68hc11_return_in_memory): Likewise.
12805         * config/m68hc11/m68hc11.h: Remove a commented-out definition
12806         of PROMOTE_PROTOTYPES.
12807         (RETURN_IN_MEMORY): Remove.
12808         (STRUCT_VALUE_REGNUM): Likewise.
12809
12810 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12811
12812         * config/mmix/mmix-protos.h: Remove the prototype for
12813         mmix_setup_incoming_varargs.
12814         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12815         (TARGET_STRUCT_VALUE_RTX): Likewise.
12816         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12817         (mmix_setup_incoming_varargs): Make it static.
12818         (mmix_struct_value_rtx): New.
12819         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
12820         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
12821         (STRUCT_VALUE_REGNUM): Remove.
12822         (SETUP_INCOMING_VARARGS): Likewise.
12823
12824 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12825
12826         * config/mips/mips-protos.h: Remove the prototypes for
12827         mips_setup_incoming_varargs and mips_return_in_memory.
12828         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12829         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12830         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12831         (TARGET_STRUCT_VALUE_RTX): Likewise.
12832         (TARGET_RETURN_IN_MEMORY): Likewise.
12833         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12834         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12835         (mips_setup_incoming_varargs): Match the prototype for
12836         TARGET_SETUP_INCOMING_VARARGS.
12837         (mips_return_in_memory): Make it static.  Add argument fntype.
12838         (mips_strict_argument_naming): New.
12839         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
12840         (PROMOTE_FUNCTION_ARGS): Likewise.
12841         (PROMOTE_FUNCTION_RETURN): Likewise.
12842         (STRUCT_VALUE): Likewise.
12843         (RETURN_IN_MEMORY): Likewise.
12844         (SETUP_INCOMING_VARARGS): Likewise.
12845         (STRICT_ARGUMENT_NAMING): Likewise.
12846
12847 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12848
12849         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
12850         (TARGET_RETURN_IN_MEMORY): Likewise.
12851         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12852         (ip2k_return_in_memory): Likewise.
12853         (ip2k_setup_incoming_varargs): Likewise.
12854         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
12855         (STRUCT_VALUE): Likewise.
12856         (STRUCT_VALUE_INCOMING): Likewise.
12857         (SETUP_INCOMING_VARARGS): Likewise.
12858
12859 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12860
12861         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
12862         (TARGET_RETURN_IN_MEMORY): Likewise.
12863         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12864         (avr_return_in_memory): Remove.
12865         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
12866         (STRUCT_VALUE): Likewise.
12867         (STRUCT_VALUE_INCOMING): Likewise.
12868         (STRICT_ARGUMENT_NAMING): Likewise.
12869
12870 2004-01-25  Jan Hubicka  <jh@suse.cz>
12871
12872         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
12873
12874 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12875
12876         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
12877         (mips_regno_mode_ok_for_base_p): Declare.
12878         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
12879         (FRAME_POINTER_REGNUM): Renumber to 78.
12880         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
12881         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
12882         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
12883         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
12884         (REG_MODE_OK_FOR_BASE_P): Likewise.
12885         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
12886         entry for 77 to "$arg" and entry for 78 to "$frame".
12887         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
12888         (mips_reg_mode_ok_for_base_p): Remove.
12889         (mips_regno_mode_ok_for_base_p): New function, derived from old
12890         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
12891         restrictions unless we're being strict.
12892         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
12893
12894 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12895
12896         * c-common.h: Fix comment typos.
12897         * c-decl.c: Likewise.
12898         * cgraphunit.c: Likewise.
12899         * combine.c: Likewise.
12900         * et-forest.c: Likewise.
12901         * flow.c: Likewise.
12902         * function.c: Likewise.
12903         * ifcvt.c: Likewise.
12904         * integrate.c: Likewise.
12905         * jump.c: Likewise.
12906         * postreload.c: Likewise.
12907         * varray.c: Likewise.
12908
12909 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12910
12911         * doc/frontends.texi: Update copyright.
12912         * doc/gcov.texi: Likewise.
12913         * doc/gty.texi: Likewise.
12914         * doc/sourcebuild.texi: Likewise.
12915         * doc/standards.texi: Likewise.
12916
12917 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
12918
12919         PR target/12978
12920         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
12921         Remove movstrqi_small because it conflicts with movstrqi_large.
12922
12923 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12924
12925         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12926         (TARGET_STRUCT_VALUE_RTX): Likewise.
12927         (cris_struct_value_rtx): Likewise.
12928         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
12929         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
12930         STRUCT_VALUE_REGNUM.
12931         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
12932
12933 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
12934
12935         PR bootstrap/13848
12936         * cse.c (cse_cc_succs): Change the mode of the source expression
12937         as soon as decide we need a new mode.  Don't permit changing modes
12938         if we found a match in a successor block.
12939         (cse_condition_code_reg): Save original mode of source expression
12940         so that we know whether we have to change the mode in other
12941         insns.
12942
12943 2004-01-24  Jan Hubicka  <jh@suse.cz>
12944
12945         * emit-rtl.c (change_address, adjust_address_1, offset_address,
12946         widen_memory_access):  Return early when there is nothing to change.
12947
12948 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
12949
12950         * simplify-rtx.c (simplify_relational_operation): Don't
12951         simplify address == constant into address + -constant == 0.
12952
12953 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12954
12955         * gcc.c (process_command): Don't internationalize the
12956         Copyright message.
12957         * mips-tfile.c (main): Likewise.
12958
12959 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
12960
12961         * cse.c: (cse_cc_succs) Fix comparison warning.
12962
12963 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12964
12965         * config/h8300/h8300.md: Remove extraneous USE in expanders.
12966
12967 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12968
12969         * config/h8300/h8300-protos.h: Provide prototypes for
12970         h8300_legitimate_constant_p and h8300_legitimate_address_p.
12971         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
12972         (h8300_rtx_ok_for_base_p): Likewise.
12973         (h8300_legitimate_address_p): Likewise.
12974         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
12975         h8300_legitimate_constant_p.
12976         (RTX_OK_FOR_BASE_P): Remove.
12977         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
12978
12979 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12980
12981         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
12982         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
12983         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
12984         (REG_OK_FOR_BASE_STRICT_P): Likewise.
12985         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
12986         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
12987         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
12988         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
12989
12990 2004-01-24  Jan Hubicka  <jh@suse.cz>
12991
12992         * cselib.c (remove_useless_values):  Do not access discarded values.
12993
12994 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
12995
12996         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
12997         arrays.
12998
12999 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
13000
13001         * recog.c: Fix a typo in copyright.
13002
13003 2004-01-23  Andrew Pinski  <apinski@apple.com>
13004
13005         * config/rs6000/rs6000.md (call): Fix misappiled patch.
13006         (call_value): Likewise.
13007
13008 2004-01-23  Richard Henderson  <rth@redhat.com>
13009
13010         PR opt/12941
13011         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
13012         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
13013         if SHIFT_COUNT_TRUNCATED is set.
13014
13015 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
13016
13017         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
13018         separate real and imaginary parts.
13019         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
13020
13021 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
13022
13023         PR target/13674
13024         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
13025         loading into GPR.
13026
13027 2004-01-23  Jan Hubicka  <jh@suse.cz>
13028
13029         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
13030         change.
13031
13032         * alloc-pool.c (align_four): Kill.
13033         (create_alloc_pool): Align size to eight.
13034         (free_alloc_pool, free_pool): Invalidate deallocated data.
13035
13036 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
13037
13038         PR gcc/1532
13039         * cse.c (cse_change_cc_mode): New static function.
13040         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
13041         (cse_condition_code_reg): New function.
13042         * rtl.h (cse_condition_code_reg): Declare.
13043         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
13044         * target.h (struct gcc_target): Add fixed_condition_code_regs and
13045         cc_modes_compatible.
13046         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13047         (TARGET_CC_MODES_COMPATIBLE): Define.
13048         (TARGET_INITIALIZER): Add new initializers.
13049         * targhooks.c (default_cc_modes_compatible): New function.
13050         * targhooks.c (default_cc_modes_compatible): Declare.
13051         * hooks.c (hook_bool_intp_intp_false): New function.
13052         * hooks.h (hook_bool_intp_intp_false): Declare.
13053         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
13054         (TARGET_CC_MODES_COMPATIBLE): Define.
13055         (ix86_fixed_condition_code_regs): New static function.
13056         (ix86_cc_modes_compatible): Likewise.
13057         * doc/tm.texi (Condition Code): Document new hooks.
13058
13059 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13060
13061         * fixinc/inclhack.def (bad_lval): Renamed to ...
13062         (alpha_bad_lval): ... this.
13063         Removed file list.
13064         Restrict to alpha*-dec-osf*.
13065         * fixinc/fixincl.x: Regenerate.
13066         * fixinc/tests/base/dirent.h: Remove, moving test ...
13067         * fixinc/tests/base/testing.h: ... here, reflecting new name.
13068
13069 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
13070
13071         PR c/13814
13072         * c-decl.c (diagnose_mismatched_decls): Also discard a
13073         built-in if we encounter an old-style definition with the
13074         same name.
13075
13076 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
13077
13078         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
13079         set to default{32,64}.
13080
13081 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
13082
13083         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
13084         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
13085
13086 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
13087             Olivier Hainque  <hainque@act-europe.fr>
13088
13089         * fold-const.c (fold_binary_op_with_conditional_arg): Only
13090         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
13091
13092 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
13093
13094         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
13095         size for minipool references.
13096
13097 2004-01-23  Roger Sayle  <roger@eyesopen.com>
13098
13099         * real.c (real_floor, real_ceil): Tweak to allow input and output
13100         arguments to overlap.
13101         (real_round): New function to implement round(3m) semantics.
13102         * real.h (real_round): Prototype here.
13103         * builtins.c (fold_builtin_round): New function to constant fold
13104         round, roundf and roundl.
13105         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
13106
13107 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
13108
13109         PR optimization/13819
13110         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
13111         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
13112         (sh_handle_sp_switch_attribute): Remove warning.
13113
13114 2003-11-30  Jan Hubicka  <jh@suse.cz>
13115
13116         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
13117
13118 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
13119
13120         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
13121         may or may not return non-NIL.
13122         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
13123         check CANNOT_CHANGE_MODE_CLASS
13124
13125 2004-01-23  Jan Hubicka  <jh@suse.cz>
13126
13127         * basic-block.h (PROP_POSTRELOAD): New macro.
13128         (CLEANUP_LOG_LINKS): New.
13129         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
13130         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
13131
13132         * cselib.c (value_pool): New.
13133         (new_cselib_val): Use pool.
13134         (cselib_init): Initialize value_pool
13135         (cselib_finish): Free pool.
13136
13137 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
13138
13139         * config/sparc/sparc.c (scan_record_type): New function.
13140         (function_arg_slotno): Use it to determine which kinds of
13141         registers the record can be passed in.
13142
13143 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
13144
13145         * config/pa/fptr.c: Fix old-style definition.
13146
13147 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
13148
13149         PR optimization/13724
13150         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
13151         represents the zero bits produced by a ZERO_EXTEND operation.
13152
13153 2004-01-22  Roger Sayle  <roger@eyesopen.com>
13154
13155         PR optimization/13821
13156         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
13157         correctly calculate the lowpart offset of the contracted subreg.
13158
13159 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
13160
13161         * doc/invoke.texi (Optimize Options): Note that --param arguments
13162         are subject to change without notice.
13163
13164 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13165
13166         * config.gcc (mips-sgi-irix6*o32): Removed.
13167         * config/mips/iris6-o32-as.h: Likewise.
13168         * config/mips/iris6-o32-gas.h: Likewise.
13169         * config/mips/iris6-o32.h: Likewise.
13170
13171 2004-01-22  Jan Hubicka  <jh@suse.cz>
13172
13173         * cfgcleanup.c (first_pass): New static variable.
13174         (try_forward_edges):  Add work limiting check for threading.
13175         (try_crossjump_bb):  Add work limiting check for crossjumping.
13176         (try_optimize_cfg):  Maintain first pass variable.
13177
13178 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
13179
13180         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
13181         handles complex and vector modes.
13182
13183 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
13184
13185         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
13186         (REG_OK_FOR_BASE_P_STRICT): Likewise.
13187         (STRICT): Likewise.
13188
13189 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
13190
13191         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
13192         (genrtl_for_stmt): Remove emit_nop calls.
13193
13194 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13195
13196         PR target/13713
13197         PR target/13324
13198         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
13199         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
13200         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
13201
13202 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
13203
13204         * config/arm/arm.c: Include "debug.h".
13205         (thumb_pushpop): Take two new arguments.  Add some commentary.
13206         Output frame information when pushing.
13207         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
13208         thumb_pushpop.
13209         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
13210         offset, and pass it to thumb_pushpop.  Output CFI information.
13211         (thumb_expand_prologue): Add some frame-related markers and notes.
13212
13213 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
13214
13215         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
13216         for TARGET_64BIT.
13217         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
13218         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
13219
13220 2004-01-22  Roger Sayle  <roger@eyesopen.com>
13221             Paolo Bonzini  <bonzini@gnu.org>
13222
13223         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
13224         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
13225         * rtl.h (subreg_lsb_1): Prototype here.
13226         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
13227         sign extensions.
13228
13229 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
13230
13231         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
13232         macro need not be defined if jump-tables should contain
13233         relative addresses only when -fPIC or -fPIC is in effect.
13234
13235 2004-01-22  Jan Hubicka  <jh@suse.cz>
13236
13237         * alias.c (reg_base_value): Turn into varray.
13238         (reg_base_value_size): Kill.
13239         (old_reg_base_value): New deletable varray.
13240         (alias_invariant_size): New variable.
13241         (REG_BASE_VALUE): Update to use varray.
13242         (find_base_value): Likewise.
13243         (record_set): Likewise.
13244         (record_base_value): Likewise.
13245         (memrefs_conflict_p): Likewise.
13246         (record_set): Likewise
13247         (record_base_value): Likewise.
13248         (memrefs_conflict_p): Use alias_invariant_size.
13249         (init_alias_analysis): Use varray; set alias_invariant_size;
13250         rescale other arrays to be sized by maxreg.
13251         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
13252
13253 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
13254
13255         * config/sparc/sparc.c (function_arg_slotno): Use
13256         FLOAT_TYPE_P to detect FP fields in structures.
13257         (function_arg_record_value_1): Likewise.
13258         (function_arg_record_value_2): Likewise.
13259
13260 2004-01-22  Jan Hubicka  <jh@suse.cz>
13261
13262         * function.c (allocate_struct_function): Do not initialize expr, emit
13263         and varasm.
13264         (prepare_function_start): Do it here.
13265         * c-parse.in (maybe_type_qual): Do not produce line number notes.
13266
13267 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
13268
13269         PR target/13559
13270         * config/sparc/sparc.c (function_arg_record_value_3): Revert
13271         to 'word_mode' once the first slot has been filled.
13272
13273 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
13274
13275         * config/sparc/sparc.c (function_arg_record_value_1): Fix
13276         computation of the number of integer registers required.
13277
13278 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
13279
13280         * config/i386/i386.md: Simplify certain comparisons of
13281         const_int.
13282
13283 2004-01-21  Andrew Pinski  <apinski@apple.com>
13284
13285         PR target/13785
13286         * config/rs6000/rs6000.md (call_value): Force operand
13287         1 not operand 0 into a register.
13288
13289 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
13290
13291         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
13292         unwind-dw2-fde.h: Update copyright.
13293
13294 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13295
13296         * pa-protos.h: Update copyright.
13297         * pa.h: Likewise.
13298         * pa.md: Likewise.
13299
13300 2004-01-21  Caroline Tice  <ctice@apple.com>
13301
13302         PR target/12308
13303         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
13304         flags register.
13305         (fix_truncdfdi2): Likewise.
13306         (fix_truncsfdi2): Likewise.
13307         (*fix_truncdi_1): Likewise.
13308         (fix_truncxfsi2): Likewise.
13309         (fix_truncdfsi2): Likewise.
13310         (fix_truncsfsi2): Likewise.
13311         (*fix_truncsi_1): Likewise.
13312         (fix_truncxfhi2): Likewise.
13313         (fix_truncdfhi2): Likewise.
13314         (fix_truncsfhi2): Likewise.
13315         (*fix_trunchi_1): Likewise.
13316
13317 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
13318
13319         * alias.c, basic-block.h, c-common.c, c-common.h,
13320         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
13321         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
13322         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
13323         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
13324         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
13325         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
13326         genautomata.c, genconditions.c, genemit.c, genflags.c,
13327         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
13328         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
13329         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
13330         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
13331         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
13332         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
13333         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
13334         unwind.h, varray.c, varray.h: Update copyright.
13335
13336 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
13337
13338         * config/h8300/coff.h: Update copyright.
13339         * config/h8300/elf.h: Likewise.
13340         * config/h8300/h8300-protos.h: Likewise.
13341         * config/h8300/h8300.c: Likewise.
13342         * config/h8300/h8300.h: Likewise.
13343         * config/h8300/h8300.md: Likewise.
13344
13345 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13346
13347         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
13348         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
13349         ultrix_unistd): New hacks.
13350         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
13351         ULTRIX_CONST2_CHECK): Add checks.
13352         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
13353         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
13354         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
13355         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
13356         * fixinc/tests/base/locale.h: New file.
13357         * fixinc/fixincl.x: Rebuilt.
13358
13359 2004-01-21  Andreas Jaeger  <aj@suse.de>
13360             Michael Matz  <matz@suse.de>
13361
13362         * doc/extend.texi (Extended Asm): Clarify memory clobber.
13363
13364 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
13365
13366         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
13367         _Jv_RegisterClasses through a function pointer.
13368
13369 2004-01-21  Falk Hueffner  <falk@debian.org>
13370
13371         PR target/12898
13372         * config/alpha/alpha.c (alpha_emit_set_const_1): If
13373         no_new_pseudos, use gen_rtx_SET directly for SImode constants
13374         which need multiple instructions to emit.
13375
13376 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
13377
13378         * config/m32r/m32r.h (CPP_SPEC): Define.
13379
13380 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
13381
13382         * c-decl.c (merge_decls): Kill different_binding_level and
13383         different_tu arguments; simplify throughout.
13384         (duplicate_decls): Likewise.
13385         (pushdecl, merge_translation_unit_decls): Update calls to
13386         duplicate_decls.
13387
13388 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13389
13390         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
13391         $(SYSTEM_H).
13392         (print-rtl1.o): Depend on $(SYSTEM_H).
13393
13394 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
13395
13396         PR bootstrap/12730
13397         * configure.ac: Delete definition and subsitution of docdir.
13398         Add info, man, srcman and srcinfo to target hooks. Create doc/
13399         directory.
13400         * configure: Regenerate.
13401         * Makefile.in: Don't substitute docdir and delete all references
13402         throughout.
13403         (MAKEINFOFLAGS): Define.
13404         (stmp-docobjdir): Delete.
13405         (INFOFILES, MANFILES): Define.
13406         (info): Call lang.info, srcinfo and lang.srcinfo.
13407         (generated-manpages): Call lang.man, srcman and lang.srcman.
13408         (srcinfo, srcman): New rules to copy back files to source directory.
13409         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
13410         (install-man): Revamp rule.
13411         (clean): Update dvi directory.
13412         (distclean): Delete TAGS from front end directorys.
13413         (maintainer-clean): Delete all document files in source directory.
13414
13415         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
13416         (objc.srcman, objc.srcinfo): Likewise.
13417
13418 2004-01-20  Bruce Korb  <bkorb@gnu.org>
13419
13420         * fixinc/inclhack.def(math_exception): bypass only for glibc.
13421         (matherr_decl): rename & relocate as exception_structure.
13422         This fix must precede the math_exception fix.
13423
13424 2004-01-20  Roger Sayle  <roger@eyesopen.com>
13425
13426         * fold-const.c (fold_convert): Rename to fold_convert_const.
13427         (fold_convert_const): Change arguments to take a tree_code,
13428         a type and the operand/expression to be converted.  Return
13429         NULL_TREE if no simplification is possible.  Add support for
13430         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
13431         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
13432         Adjust call to fold_convert to match new fold_convert_const.
13433         Avoid modifying the tree passed to fold in-place.
13434
13435 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
13436
13437         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
13438         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
13439         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
13440
13441 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13442
13443         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
13444         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
13445         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
13446         (emit_move_sequence): Check scratch_reg first in various if statements.
13447         Extend source simplification to handle all 64-bit CONST_INTs.
13448         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
13449         frame size.
13450         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
13451         frame offset calculations.
13452         * pa.h (NEW_HP_ASSEMBLER): Add comment.
13453         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
13454         LEGITIMATE_64BIT_CONST_INT_P): Define.
13455         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
13456         any CONST_INT as legitimate during and after reload.
13457         (VAL_32_BITS_P, INT_32_BITS): Define.
13458         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
13459
13460 2004-01-20  Jan Hubicka  <jh@suse.cz>
13461
13462         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
13463         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
13464         containing hard regs are shared.
13465         (gen_hard_reg_clobber): New function.
13466         (hard_reg_clobbers): New array.
13467         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
13468         (copy_rtx): Do not copy clobbers containing hard regs.
13469         * rtl.h (gen_hard_reg_clobber): Declare.
13470
13471 2004-01-20  Jan Hubicka  <jh@suse.cz>
13472
13473         * varray.c:  Include hashtab.h
13474         (varray_descriptor): New structure.
13475         (hash_descriptor, eq_descriptor, varray_descriptor,
13476         print_statistics): New static functions
13477         (varray_init, varray_grow): Update statistics
13478         (dump_varray_statistics): New function.
13479         * varray.h (dump_varray_statistics): Declare.
13480         * toplev.c (finalize): Call it.
13481         * Makefile.in (varray.o): Add dependency.
13482
13483 2004-01-20  Jan Hubicka  <jh@suse.cz>
13484
13485         * cselib.c: Include alloc-pool.h
13486         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
13487         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
13488         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
13489         unchain_one_elt_loc_list_pool, unchain_one_value,
13490         new_cselib_val): Simplify using allocpool.
13491         (cselib_init): Initialize allocpools.
13492         (cselib_finish): Finish allocpools.
13493         * Makefile.in (cselib.o): Depend on alloc-pool.h
13494
13495 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
13496
13497         * config/mips/mips.c (mips_load_call_address): Make the call insn
13498         use $gp if it could be calling a lazy binding stub.
13499
13500 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
13501
13502         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
13503         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13504         (TARGET_STRUCT_VALUE_RTX): Likewise.
13505         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
13506         (PROMOTE_FUNCTION_RETURN): Remove.
13507         (STRUCT_VALUE): Remove.
13508
13509 2004-01-20  Denis Chertykov  <denisc@overta.ru>
13510
13511         PR bootstrap/13735
13512         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
13513         register as pointer after reload.
13514
13515 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13516
13517         PR optimization/12440
13518         * loop.c: Include ggc.h.
13519         (loop_optimize): Run garbage collector between optimization of loops.
13520         * Makefile.in (loop.o): Add GGC_H dependency.
13521
13522 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
13523
13524         * gcc/config/rs6000/rs6000.c (function_arg) Handle
13525         vector register special in function without prototype.
13526         (function_arg_advance): Vector parameters get always
13527         GPRs allocated for the linux64 target.
13528
13529 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13530
13531         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
13532         not TARGET_M32RX_MASK.
13533
13534 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
13535
13536         PR target/13557
13537         * config/sparc/sparc.c (function_arg): Reorder the cases.
13538
13539 2004-01-19  Per Bothner  <per@bothner.com>
13540
13541         Move cpp_reader's line_maps field to a shared global.
13542         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
13543         and change the type to a pointer rather than a struct.
13544         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
13545         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
13546         Likewise.
13547         * cppfiles.c (validate_pch):  Likewise.
13548         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
13549         Likewise.
13550         * cpperror.c (print_location):  Likewise.
13551         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
13552         * cppinit.c (cpp_create_reader):  Handle new parameter.
13553         (cpp_destroy):  Don't free line_maps - that's no longer our job.
13554         * input.h (line_table):  New variable.
13555         * toplev.c (line_table):  Declare variable.
13556         (general_init):  Initialize line_table.
13557         * c-opts.c (c_common_init_options):  Pass line_table to
13558         cpp_create_reader.
13559         * fix-header.c (read_scan_file):  New local variable line_table.
13560         Initialize, and pass it to cpp_create_reader.
13561         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
13562         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
13563
13564 2004-01-19  Per Bothner  <per@bothner.com>
13565
13566         Implement a cache for linemap_lookup.
13567         * line-map.h (struct_line_maps):  Add cache field.
13568         * line-map.c (linemap_init):  Zero cache field.
13569         (linemap_add):  Set cache field to offset of newly allocated map.
13570         (linemap_lookup):  Use and set cache field.
13571
13572 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13573
13574         PR optimization/13567
13575         * cse.c (cse_basic_block): Call cse_insn with a non-null
13576         libcall_insn for the last SET insn of a no-confilict block.
13577
13578 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
13579
13580         * Makefile.in (target_noncanonical, program_transform_name): Use
13581         immediate define instead of deferred.
13582         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
13583         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
13584         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
13585         deferred backquote.
13586
13587 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
13588
13589         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
13590         true unconditionally.
13591         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
13592         Remove.
13593         (build_unary_op, build_modify_expr): Don't handle extended
13594         lvalues.
13595         (build_component_ref, build_conditional_expr): Call non_lvalue
13596         instead of pedantic_non_lvalue.
13597         (build_c_cast): Don't condition use of non_lvalue on pedantic.
13598         * fold-const.c (fold): Don't check pedantic directly for
13599         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
13600         passed to pedantic_non_lvalue.
13601         * doc/extend.texi: Remove documentation of extended lvalues.
13602
13603 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13604
13605         PR optimization/5263
13606         * simplify-rtx.c (associative_constant_p): Delete.
13607         (simplify_associative_operation): Rewrite to linearize terms, and
13608         attempt to simplify new term against both left and right subterms.
13609         (simplify_binary_operation): Call swap_commutative_operands_p on
13610         op0 and op1, not trueop0 and trueop1.  Move the initialization of
13611         trueop0 and trueop1 down to where first needed.
13612         (simplify_relational_operation): Likewise.
13613         * rtlanal.c (commutative_operand_precedence): Also order constant
13614         operands using avoid_constant_pool_reference.
13615
13616 2004-01-19  Richard Henderson  <rth@redhat.com>
13617
13618         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
13619         don't check memory mode.
13620         (unaligned_memory_operand): Likewise.
13621         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
13622         abort for op0 not MEM.
13623
13624         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
13625         is not a reg, copy to a scratch first.
13626         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
13627         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
13628         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
13629         (reload_inqi, reload_inhi): Fix mode of op0.
13630         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
13631         reload_outhi_help): Likewise.  Use define_insn_and_split.
13632
13633         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
13634         as well as $29 dead.
13635
13636 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
13637
13638         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
13639         "tls_object" for thread-local objects.
13640         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
13641         "#tls" for thread-local sections.
13642         * configure.ac (thread-local checks): Specify --fatal-warnings in
13643         every binutils-specific checks.  For sparc*-*-*, test whether the
13644         OS is Solaris and the tools are native and act accordingly.
13645         * configure: Rebuild.
13646
13647 2004-01-19  Jeff Law  <law@redhat.com>
13648
13649         * contrib.texi: Update Paolo Carlini's entry.  New entries for
13650         Jerry Quinn and Petur Runolfsson.
13651
13652 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13653
13654         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
13655         size, don't use the larger zero-extending loads.
13656
13657 2004-01-19  Richard Henderson  <rth@redhat.com>
13658
13659         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
13660         * alpha.md (UNSPEC_NT_LDA): Remove.
13661         (UNSPEC_CVTLQ, cvtlq): New.
13662         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
13663         (extendsidi2_fix): Remove.
13664         (extendsidi2 splitter): Use cvtlq.
13665         (extendsidi2 fp peepholes): Remove.
13666         (cvtql): Use SFmode instead of SImode.
13667         (fix_trunc?fsi): Update to match.
13668         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
13669         (movsi): Rename from movsi_nofix, remove f alternatives.
13670         (movsi_nt_vms): Similarly.
13671         (movsi_fix, movsi_nt_vms_fix): Remove.
13672         (nt_lda): Remove.
13673         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
13674
13675 2004-01-19  Jan Hubicka  <jh@suse.cz>
13676
13677         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
13678         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
13679         list.
13680         (cgraph_remove_unreachable_nodes): New function
13681         (cgraph_decide_inlining_of_small_function): Fix pasto.
13682         (cgraph_decide_inlining_incrementally): Fix pasto.
13683         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
13684
13685 2004-01-19  Steven Bosscher  <stevenb@suse.de>
13686
13687         * gengtype.c (header_file): Make it static.
13688         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
13689         * gengtype.h (header_file): No longer extern.
13690
13691 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13692
13693         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
13694         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
13695         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
13696
13697 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13698
13699         * stmt.c (HAVE_casesi): Define it not already defined.
13700         (HAVE_tablejump): Likewise.
13701         (expand_end_case_type): Resort to the binary tree method if
13702         neither casesi or tablejump is available.
13703
13704 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
13705
13706         * final.c (final_scan_insn): Make non-static again.
13707         * output.h (final_scan_insn): Re-add prototype.
13708         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
13709         to final_scan_insn call.
13710         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
13711         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
13712         * config/pa/pa.c (output_lbranch, output_call): Likewise.
13713         * config/sh/sh.c (print_slot): Likewise.
13714         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
13715         (output_sibcall, sparc_flat_function_epilogue): Likewise.
13716
13717 2004-01-18  Jan Hubicka  <jh@suse.cz>
13718
13719         * basic-block.h (try_redirect_by_replacing_jump): Declare.
13720         * cfgcleanup.c (try_optimize_cfg): Use it.
13721         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
13722         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
13723         Kill hack.
13724         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
13725
13726         Revert:
13727         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13728
13729                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13730                 even after reload, just don't remove the actual jump tables.
13731
13732 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13733
13734         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
13735
13736 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13737
13738         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
13739         the size of a pointer in bytes.
13740
13741 2004-01-18  Roger Sayle  <roger@eyesopen.com>
13742
13743         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
13744         live "next" variable, which could lead to an infinite loop.
13745
13746 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
13747
13748         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
13749         block.
13750
13751         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13752         Check for NULL in the chain and remove repeated code.
13753
13754 2004-01-18  Jan Hubicka  <jh@suse.cz>
13755
13756         * coverage.c (checksum_string): Rename to ...
13757         (coverage_checksum_string): ... this one, Use crc32_string; recognize
13758         names containing random number and zero the number out in order to get
13759         match.
13760
13761 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13762
13763         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
13764
13765 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13766
13767         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
13768         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
13769         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
13770         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
13771         doc/trouble.texi: Remove trailing whitespace.
13772
13773 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13774
13775         PR target/7618
13776         * config/mips/mips.c: Include cfglayout.h.
13777         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
13778         (mips_unspec_offset_high): Add temporary register argument.
13779         (mips_load_call_address): New function, split out from...
13780         (mips_expand_call): ...here.
13781         (mips_output_cplocal): New function.
13782         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
13783         (mips_emit_loadgp): New function, split out from...
13784         (mips_expand_prologue): ...here.
13785         (mips_output_mi_thunk): New function.
13786
13787 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
13788
13789         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
13790         mcpu32): Remove redundant checks for implied target predefines.
13791
13792 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
13793
13794         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13795         Return type is unsigned int not int.
13796         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13797         Likewise.
13798
13799 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13800
13801         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
13802         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
13803         "GNU/Linux" and "Microsoft Windows" terminology.
13804
13805 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13806
13807         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
13808         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
13809         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
13810         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
13811         @smallexample instead of @example.
13812
13813 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
13814
13815         * objc/objc-act.c (build_objc_method_call): Use target
13816         hooks instead of macros to determine if ..._stret
13817         dispatchers should be used (NeXT runtime only).
13818
13819 2004-01-17  Roger Sayle  <roger@eyesopen.com>
13820
13821         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
13822         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
13823
13824 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13825
13826         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
13827         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
13828         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
13829         macros.
13830         * reload1.c (emit_reload_insns): Use them.
13831         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
13832         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
13833         for NULL PATTERN.
13834
13835 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13836
13837         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
13838         (final_scan_insn): Update to take an additional SEEN argument.  Emit
13839         a line note after the prologue.  Make static.
13840         (line_note_exists): Remove.
13841         (final): Don't initialize line_note_exists.  Update call to
13842         final_scan_insn.
13843         * output.h (final_scan_insn): Remove prologue.
13844         * function.c (set_insn_locators): Update comment.
13845         (thread_prologue_and_epilogue_insns): Add a comment.
13846
13847 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
13848
13849         PR target/10781
13850         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13851         Prototype.
13852         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13853         New function.
13854         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
13855         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
13856         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
13857
13858 2004-01-17  Jan Hubicka  <jh@suse.cz>
13859
13860         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
13861         commit.
13862
13863         * toplev.c (HAVE_conditional_execution): Provide default.
13864         (rest_of_handle_reorder_blocks): For conditional_execution target
13865         update liveness once after all transformations
13866         (rest_of_compilation): Do crossjumping before ce3.
13867
13868 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
13869
13870         * alias.c (new_alias_set): Mark last_alias_set for PCH.
13871         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
13872         for PCH.
13873         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
13874         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
13875         (get_TOC_alias_set): Mark 'set' for PCH.
13876
13877 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13878
13879         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13880         even after reload, just don't remove the actual jump tables.
13881
13882 2004-01-17  J. Brobecker  <brobecker@gnat.com>
13883
13884         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
13885         Remove checks for is_ada() and TREE_UNSIGNED.
13886         (subrange_type_die): Emit a byte_size attribute if the subrange
13887         type size is different from the base type size.
13888         (modified_type_die): Replace call to is_ada_subrange_type() by
13889         call to is_subrange_type().
13890
13891 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
13892
13893         * config/sh/sh.c: Include ggc.h.
13894
13895 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13896
13897         * Makefile.in (MD5_H): New.
13898         (fold-const.o): Depend on md5.h.
13899         (dwarf2out.o): Likewise.
13900         (cppfiles.o): Likewise.
13901         * cppfiles.c: Include md5.h.
13902         (should_stack_file): Check against list read from PCH file.
13903         (struct pchf_data): New.
13904         (pchf): New variable.
13905         (struct pchf_adder_info): New.
13906         (pchf_adder): New.
13907         (pchf_save_compare): New.
13908         (_cpp_save_file_entries): New.
13909         (_cpp_read_file_entries): New.
13910         (struct pchf_compare_data): New.
13911         (pchf_compare): New.
13912         (check_file_against_entries): New.
13913         * cpphash.h (_cpp_save_file_entries): Prototype.
13914         (_cpp_read_file_entries): Prototype.
13915         * cpppch.c (cpp_write_pch_state): Write the list of headers.
13916         (cpp_read_state): Read the list of headers.
13917
13918 2004-01-17  Jan Hubicka  <jh@suse.cz>
13919
13920         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
13921         builtin_expect specially.
13922         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
13923         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
13924         * invoke.texi (max-inline-insns-single): Set to 100.
13925         (large-function-insns): Set to 3000.
13926
13927 2004-01-16  Eric Christopher  <echristo@redhat.com>
13928             Chandrakala Chavva <cchavva@redhat.com>
13929
13930         * cppcharset.c (one_iso88591_to_utf8): New function.
13931         (convert_iso88591_utf8): Ditto. Use.
13932         (conversion_tab): Use.
13933         (_cpp_input_to_utf8): New function.
13934         (_cpp_init_iconv_buffer): Ditto.
13935         (_cpp_close_iconv_buffer): Ditto.
13936         * cpphash.h: Prototype new functions.
13937         (cpp_buffer): Add input_cset_desc.
13938         * cppinit.c: Add input_charset default.
13939         * cpplib.c (cpp_push_buffer): Support init and
13940         close of iconv.
13941         * cpplib.h (cpp_options): Add input_charset.
13942
13943 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13944
13945         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
13946         * config/alpha/unicosmk.h: Remove a commented-out definition
13947         of ASM_OUTPUT_SECTION_NAME.
13948         * config/stormy16/stormy16.h: Likewise.
13949
13950 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13951
13952         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
13953         (alpha___extern_prefix_sys_stat): ... this.
13954         Apply to <sys/mount.h>, too.
13955         Tweak to match more variations.
13956         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
13957
13958         * fixinc/inclhack.def (alpha___extern_prefix,
13959         alpha___extern_prefix_standards): New hacks to obey
13960         __PRAGMA_EXTERN_PREFIX.
13961         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
13962         test.
13963         * fixinc/tests/base/standards.h: Likewise.
13964
13965         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
13966         variations.
13967         New testcase.
13968         * fixinc/tests/base/pthread.h: Handle it.
13969
13970         * fixincl/inclhack.def (bad_lval): Sort file list.
13971         Add many missing files up to Tru64 UNIX V5.1B.
13972         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
13973         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
13974         order.
13975
13976         * fixinc/fixincl.x: Regenerate.
13977
13978 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
13979
13980         * version.c (version_string): Change to 3.5.0.
13981         * doc/include/gcc-common.texi (version-GCC): Likewise.
13982
13983 2004-01-16  Jan Hubicka  <jh@suse.cz>
13984
13985         * i386.md (load_tp_di): Fix pasto.
13986
13987         PR opt/13608
13988         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
13989
13990         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
13991         pp_c_character_constant, pp_c_floating_constant,
13992         pp_c_additive_expression, pp_c_shift_expression,
13993         pp_c_equality_expression, pp_c_and_expression,
13994         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
13995         pp_c_logical_and_expression): Remove inline modifier.
13996         * dwarf2out.c (get_AT): Likewise.
13997         * et-forest.c (et_splay): Likewise.
13998         * ra.h (ra_alloc, ra_calloc): Likewise
13999
14000 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14001
14002         * config/frv/frv-protos.h: Fix comment formatting.
14003         * config/frv/frv.c: Likewise.
14004         * config/frv/frv.h: Likewise.
14005         * config/frv/frv.md: Likewise.
14006         * config/frv/frvbegin.c: Likewise.
14007         * config/frv/frvend.c: Likewise.
14008
14009 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
14010
14011         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
14012         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
14013         LINKER_DOES_NOT_WORK_WITH_DWARF2.
14014         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
14015
14016 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
14017
14018         PR 11864
14019         * postreload.c (reload_cse_simplify_operands): Don't remove
14020         implicit extension from LOAD_EXTEND_OP.
14021
14022 2004-01-16  Jan Hubicka  <jh@suse.cz>
14023
14024         PR opt/11350
14025         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
14026         after reload.
14027         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
14028         rtl_try_redirect_by_replacing_branch): Likewise.
14029
14030 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
14031
14032         PR pch/13689
14033         * alias.c (struct alias_set_entry): Mark for GC.
14034         (alias_sets): Make static, mark for GC.
14035         (record_alias_subset): Use GC to allocate alias structures.
14036         * varray.c (element): Make generic varrays GCed.
14037
14038         PR pch/13361
14039         * c-typeck.c (constructor_asmspec): Delete.
14040         (struct initializer_stack): Delete field 'asmspec'.
14041         (start_init): Delete saving of asmspec.
14042         (finish_init): Don't update constructor_asmspec.
14043         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14044         * stmt.c (expand_asm): Duplicate strings from tree.
14045         (expand_asm_operands): Likewise.
14046         * tree.c (tree_size): Update computation of size of STRING_CST.
14047         (make_node): Don't make STRING_CST nodes.
14048         (build_string): Allocate string with tree node.
14049         * tree.def (STRING_CST): Update comment.
14050         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14051         (tree_string): Place contents of string in tree node.
14052         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14053         from tree.
14054
14055         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
14056         altivec operands.
14057
14058 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14059
14060         * c-common.h: Fix comment formatting.
14061         * c-cppbuiltin.c: Likewise.
14062         * c-pragma.c: Likewise.
14063         * calls.c: Likewise.
14064         * collect2.c: Likewise.
14065         * cppcharset.c: Likewise.
14066         * cpptrad.c: Likewise.
14067         * dbxout.c: Likewise.
14068         * defaults.h: Likewise.
14069         * dwarf2out.c: Likewise.
14070         * fold-const.c: Likewise.
14071         * genautomata.c: Likewise.
14072         * genconditions.c: Likewise.
14073         * genflags.c: Likewise.
14074         * gengtype.c: Likewise.
14075         * integrate.c: Likewise.
14076         * loop.c: Likewise.
14077         * predict.c: Likewise.
14078         * sdbout.c: Likewise.
14079
14080 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
14081
14082         * config/ia64/ia64.md (*movti_internal): C output template
14083         extracted to ia64.c.
14084         (*movti_internal_reg): Delete.
14085         (reload_inti, reload_outti): Use the correct mode on operand 2
14086         in the first place, don't fix it up in the output template.
14087         (movtf, reload_ointf, reload_outtf): New expanders.
14088         (*movtf_internal): New define_insn_and_split.
14089         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
14090         make static; do not hand TFmode CONST_DOUBLEs to split_double.
14091         (ia64_split_tmode_move): New function, body mostly pulled
14092         from ia64.md:*movti_internal.
14093         (ia64_function_arg_words): New function, extracted common
14094         logic from ia64_function_arg et seq.
14095         (ia64_function_arg_offset): Likewise.  Handle correctly the
14096         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
14097         (ia64_function_arg, ia64_function_arg_partial_nregs)
14098         (ia64_function_arg_advance): Use ia64_function_arg_words and
14099         ia64_function_arg_offset.
14100         (ia64_function_value): TCmode does not go in float regs.
14101         (ia64_secondary_reload_class): Also handle TFmode.
14102         * config/ia64/ia64-protos.h: Remove prototype for
14103         ia64_split_timode; add prototype for ia64_split_tmode_move.
14104
14105 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
14106
14107         * Makefile.in (MAINT): Make it an immediate assignment.
14108
14109 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14110
14111         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
14112
14113 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14114
14115         * config/h8300/coff.h: Replace Hitachi with Renesas.
14116         * config/h8300/elf.h: Likewise.
14117         * config/h8300/h8300-protos.h: Likewise.
14118         * config/h8300/h8300.c: Likewise.
14119         * config/h8300/h8300.h: Likewise.
14120         * config/h8300/h8300.md: Likewise.
14121         * config/h8300/lib1funcs.asm: Likewise.
14122
14123 2004-01-15  Andrew Pinski  <apinski@apple.com>
14124
14125         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
14126         around it.
14127
14128 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14129
14130         * config/h8300/h8300.c (h8300_return_in_memory): New.
14131         (TARGET_STRUCT_VALUE_RTX): Likewise.
14132         (TARGET_RETURN_IN_MEMORY): Likewise.
14133         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
14134         (RETURN_IN_MEMORY): Likewise.
14135
14136 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
14137
14138         PR optimization/13375
14139         * gcse.c (handle_avail_expr): Just return if the source is not a
14140         single set.
14141
14142 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
14143             Daniel Jacobowitz  <drow@mvista.com>
14144
14145         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
14146         (EQUIV): Define.
14147         (ARM_FUNC_ALIAS): New macro.
14148         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
14149         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
14150
14151 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14152
14153         PR optimization/12372
14154         * calls.c (expand_call): Add call_fusage data for stack arguments in
14155         constant calls.
14156
14157 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
14158
14159         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
14160         (rs6000_elf_declare_function_name): Formatting.
14161         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
14162
14163 2004-01-15  Jan Hubicka  <jh@suse.cz>
14164
14165         PR bootstrap/13692
14166         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
14167         previous patch.
14168
14169 2004-01-15  Richard Henderson  <rth@redhat.com>
14170
14171         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
14172         integer regs of the same call-savedness.
14173
14174 2004-01-15  Andreas Schwab  <schwab@suse.de>
14175
14176         PR bootstrap/13562
14177         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
14178         status for NOTB/NOTW/NEGW methods.
14179
14180 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14181
14182         * doc/invoke.texi: Update dump file names.  Fix a typo.
14183
14184 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14185
14186         * builtins.c (expand_builtin_va_end): Don't use
14187         EXPAND_BUILTIN_VA_END.
14188         * system.h (EXPAND_BUILTIN_VA_END): Poison.
14189         * config/d30v/d30v.h: Remove a commented-out definition of
14190         EXPAND_BUILTIN_VA_END.
14191         * config/stormy16/stormy16.h: Likewise.
14192
14193 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
14194
14195         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
14196         * targhooks.c (default_struct_value_rtx): Don't use
14197         STRUCT_VALUE_INCOMING_REGNUM.
14198
14199 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
14200
14201         PR bootstrap/12744
14202         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
14203         GENINSRC and not parsedir.  Define srcextra as a langhook.
14204         * configure: Regenerate.
14205         * Makefile.in: Suppress default .l.c rule.  Don't substitute
14206         parsedir and delete all references throughout.  Conditionally define
14207         rule for srcextra dependent on GENINSRC.
14208         (stmp-docobjdir): Delete.
14209         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
14210         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
14211         and gengtype-yacc.h back to source directory.
14212         (maintainer-clean): Delete all parse files in source directory.
14213         (distclean): Delete generated files.
14214
14215         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
14216         (objc-parse.c, objc-parse.y): Don't use parsedir.
14217         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
14218         directory if requested.
14219         (po-generated): Don't use parsedir.
14220         (objc.maintainer-clean): Delete above files from source directory.
14221
14222 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14223
14224         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
14225
14226 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14227
14228         * doc/tm.texi: Replace RETURN_IN_MEMORY with
14229         TARGET_RETURN_IN_MEMORY.
14230
14231 2004-01-15  Jan Hubicka  <jh@suse.cz>
14232
14233         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
14234         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
14235         functions accepting SSE arguments
14236         (function_arg): Warn only when asked to warn.
14237         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
14238
14239 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
14240
14241         * c-parse.in (stmts_and_decls): Make label at end of compound
14242         statement a hard error.
14243
14244 2004-01-14  Jan Hubicka  <jh@suse.cz>
14245
14246         * cgraph.c (create_edge): Use local.redefined_extern_inline.
14247         * cgraph.h (cgraph_local_info): Sort fields by size; add
14248         redefined_extern_inline
14249         (cgraph_global_info): Sort fields by size.
14250         (cgraph_node): Likewise.
14251         * cgraphunit.c (cgraph_finalize_function): Se
14252         local.redefined_extern_inline on redefinition.
14253         (cgraph_analyze_function): Use it; fix formating.
14254
14255 2004-01-14  Jan Hubicka  <jh@suse.cz>
14256
14257         PR c++/10776
14258         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
14259         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
14260         bitmaps
14261         (cache_size): New variable
14262         (add_dependence): Update use; canonize early memory locations
14263         (sched_analyze_1): Likewise.
14264         (sched_analyze_2): Likewise.
14265         (init_dependency_caches): Initialize bitmaps.
14266         (free_dependency_caches): Free bitmaps
14267
14268 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14269
14270         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
14271         targetm.calls.strict_argument_naming().
14272         * target.h: Likewise.
14273
14274 2004-01-14  Richard Henderson  <rth@redhat.com>
14275
14276         PR debug/13231
14277         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
14278         instructions.
14279
14280 2004-01-14  Richard Henderson  <rth@redhat.com>
14281
14282         PR c++/12491
14283         * except.c (struct eh_region): Add u.fixup.resolved.
14284         (resolve_one_fixup_region): Split out from ...
14285         (resolve_fixup_regions): ... here.
14286
14287 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14288
14289         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
14290
14291 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14292
14293         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
14294         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
14295         (STRUCT_VALUE): Remove.
14296
14297 2004-01-14  Steven Bosscher  <stevenb@suse.de>
14298
14299         * system.h: Poison PROMOTED_MODE
14300         * integrate.c (expand_inline_function): Don't mention the
14301         PROMOTED_MODE.
14302         * loop.c (update_giv_derive): Same.
14303         * tree.h (DECL_RTL): Same.
14304
14305 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
14306
14307         PR target/9365
14308         * sh.c (gen_block_redirect): Add special handling of RETURN.
14309         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
14310         far branch target (i.e. it's a return).
14311
14312 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14313
14314         * regrename.c (find_oldest_value_reg): Fix a warning.
14315
14316 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
14317
14318         PR bootstrap/12527
14319         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
14320         Move linux-gas.h and linux-elf.h before aout.h.
14321         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
14322         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
14323
14324 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
14325
14326         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
14327         (CONST_INT, VOIDmode, ...).
14328
14329 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
14330
14331         * regrename.c (find_oldest_value_reg): If the replacement uses
14332         multiple hard registers, check that all of them are in CLASS.
14333
14334 2004-01-14  Jan Hubicka  <jh@suse.cz>
14335
14336         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
14337         impossible.
14338
14339 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
14340
14341         * Makefile.in: Define MAINT from --enable-maintainer-mode.
14342
14343 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14344
14345         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
14346         Calculate always vrsave_mask if TARGET_ALTIVEC.
14347         (rs6000_emit_prologue): Emit code for vrsave
14348         only if TARGET_ALTIVEC_VRSAVE.
14349         (rs6000_emit_epilogue): Likewise.
14350
14351 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
14352
14353         * config/sparc/sparc.md (tie_add32): Fix pasto.
14354         (tie_add64): Likewise.
14355
14356 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14357
14358         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
14359
14360 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14361
14362         * config/iq2000/iq2000-protos.h: Fix comment formatting.
14363         * config/iq2000/iq2000.c: Likewise.
14364         * config/iq2000/iq2000.md: Likewise.
14365
14366 2004-01-14  J. Brobecker  <brobecker@gnat.com>
14367
14368         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
14369         (subrange_type_die): Add handle for nameless subrange types.
14370
14371 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14372
14373         * config/h8300/h8300-protos.h: Replace do_movsi with
14374         h8300_expand_movsi.
14375         * config/h8300/h8300.c (do_movsi): Change to
14376         h8300_expand_movsi.
14377         * config/h8300/h8300.md (movsi): Replace do_movsi with
14378         h8300_expand_movsi.
14379         (movsf): Likewise.
14380
14381 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14382
14383         * config/h8300/h8300.c (dosize): Change to
14384         h8300_emit_stack_adjustment.  Update callers.
14385
14386 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14387
14388         * config/h8300/h8300.md (movstrictqi): Add an alternative with
14389         the source being post_inc.  Tighten the predicate for the
14390         destination to register_operand.
14391         (movstricthi): Likewise.
14392
14393 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14394
14395         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
14396         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
14397         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
14398
14399 2004-01-14  Jan Hubicka  <jh@suse.cz>
14400
14401         Partial fix PR c++/12850
14402         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
14403         at zero nest level.
14404
14405 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
14406
14407         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
14408         pseudo-register.
14409
14410 2004-01-13  Devang Patel <dpatel@apple.com
14411
14412         PR debug/7078
14413         * dbxout.c (dbxout_symbol_name): Emit mangled names for
14414         NAMESPACE_DECL memebers.
14415
14416 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
14417
14418         PR c++/12709
14419         * c-common.c (finish_fname_decls): Use the chain only if the
14420         tree is an expr_stmt.
14421
14422 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
14423
14424         * rtl.def: Add comment about new option in automata_option.
14425
14426         * genautomata.c (PROGRESS_OPTION): New macro.
14427         (progress_flag): New global variable.
14428         (gen_automata_option): Process `progress'.
14429         (transform_insn_regexps, check_unit_distributions_to_automata,
14430         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
14431         expand_automata, write_automata): Print about the progress only if
14432         progress_flag.  Remove fflush.
14433         (initiate_automaton_gen): Process command line flag `-progress'.
14434
14435         * doc/md.texi: Describe the new option.
14436
14437 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14438
14439         * cfg.c (dump_bb): Dump entry edges.
14440
14441 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
14442
14443         * arm.c (thumb_legitimate_address_p): Only allow constant pool
14444         references from SImode.
14445         * arm.md (thumb_movhi_insn): Don't allow minipool references.
14446
14447 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14448
14449         * system.h (TEXT_SECTION): Poison.
14450         * varasm.c (text_section): Don't use TEXT_SECTION.
14451         * config/sh/sh.c (sh_file_start): Fix a comment typo.
14452         * doc/tm.texi (TEXT_SECTION): Remove.
14453
14454 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
14455
14456         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
14457
14458 2004-01-12  James E Wilson  <wilson@specifixinc.com>
14459
14460         * unwind-libunwind.c: Delete.
14461
14462 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
14463
14464         PR 13656
14465         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
14466         oldtype is set, set *newtypep or *oldtypep too.  Do not set
14467         them at the very end.
14468         (validate_proto_after_old_defn): Restructure for comprehensibility;
14469         make error messages clearer.
14470
14471 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
14472
14473         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
14474         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
14475         * varray.c: No need to prototype error.
14476         (varray_check_failed): Wrap long string onto two lines.
14477         (varray_underflow): New function.
14478
14479 2004-01-13  Steven Bosscher  <stevenb@suse.de>
14480
14481         PR c++/13376
14482         * function.h (struct function): Kill `name' field.
14483         (current_function_name): Make it an extern function.
14484         * function.c (current_function_name): New function.
14485         * graph.c: Update all uses of current_function_name.
14486         * gcse.c: Likewise.
14487         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
14488         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
14489         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
14490         instead of a strcmp with "main".
14491
14492 2004-01-13  Jan Hubicka  <jh@suse.cz>
14493
14494         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
14495
14496         * cgraphunit.c (cgraph_optimize_function):  Always do
14497         optimize_inline_calls when there is always_inline callee.
14498         (cgraph_decide_inlining): Fix formating.
14499         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
14500         functions.
14501         (expand_call_inline): Likewise.
14502         * toplev.h (sorry): Fix prototype.
14503
14504 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14505
14506         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
14507         conditional jumps that drop through to unconditional jumps or the
14508         end of the sequence.
14509
14510 2004-01-13  Jan Hubicka  <jh@suse.cz>
14511
14512         * alias.c (new_alias_set): Construct the alias_set varray.
14513         (init_alias_once): Don't do it here.
14514
14515 2004-01-12  Marc Espie <espie@openbsd.org>
14516
14517         * system.h: handle YYBYACC like YYBISON.
14518
14519 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
14520
14521         PR target/10847
14522         * config.gcc: No longer includes conflicting header sparc/sol2.h when
14523         building on sparc64-*-openbsd*.
14524
14525 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
14526
14527         PR debug/13539
14528         * dbxout.c (dbxout_type): Protected inheritance is not
14529         private but protected.
14530
14531 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14532
14533         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
14534
14535 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
14536
14537         PR optimization/12508.
14538         * combine.c (try_combine): Remove a dead set in a parallel
14539         even if its destination is a subreg.
14540
14541         Revert:
14542         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
14543         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
14544         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
14545
14546 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
14547
14548         * real.c: Update copyright date.
14549         * emit-rtl.c: Likewise.
14550         * rtl.h: Likewise.
14551         * dwarf2out.c: Likewise.
14552         * config/rs6000/darwin-ldouble.c: Likewise.
14553         * config/rs6000/rs6000.md: Likewise.
14554
14555 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14556
14557         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
14558         TFmode to SImode libfuncs.
14559
14560 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14561
14562         PR middle-end/11397
14563         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
14564
14565 2004-01-12  Jan Hubicka  <jh@suse.cz>
14566
14567         PR opt/12826
14568         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
14569         stored.
14570
14571         PR opt/12863
14572         * cfgcleanup.c (label_is_jump_target_p): Move to...
14573         * rtlanal.c (label_is_jump_target_p): ... here.
14574         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
14575         edges unified with branch edges.
14576
14577 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
14578
14579         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
14580         high word of an integral CONST_DOUBLE.
14581
14582 2004-01-12  Paul Brook  <paul@codesourcery.com>
14583
14584         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
14585
14586 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
14587
14588         PR target/13585
14589         * sh-protos.h (check_use_sfunc_addr): Declare.
14590         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
14591         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
14592
14593 2004-01-12  Jan Hubicka  <jh@suse.cz>
14594
14595         * alias.c:  Invlude varray.h
14596         (alias_sets): Turn into varray.
14597         (get_alias_set_entry): Use VARRAY; mark inline.
14598         (mems_in_disjoint_alias_sets_p): Mark inline.
14599         (record_alias_subset): Use varray.
14600         (init_alias_once): Initialize varray.
14601         (new_alias_set): Grow array.
14602         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
14603
14604 2004-01-12  Jan Hubicka  <jh@suse.cz>
14605
14606         Partial fix for PR opt/10776 II
14607         * cselib.c: Include params.h
14608         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
14609         locations.
14610         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
14611         * Makefile.in (cselib.o): Depend on params.h
14612
14613 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14614
14615         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
14616         simplify_unary_operation if the operand has a known mode.
14617
14618 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
14619
14620         PR target/13534
14621         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
14622         predicate to handle 'ld' conform addresses.
14623         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
14624         contraint.
14625         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
14626         are memory contraints.
14627         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
14628         New prototype.
14629         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
14630         Change 'o' to 'Y' constraint.
14631         (*movdf_softfloat64): Ditto.
14632
14633 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
14634
14635         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
14636         brace-enclosed syntax in all C output statements.
14637
14638 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14639
14640         PR target/13401
14641         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
14642         Objective-C language type value is 14.
14643
14644 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
14645
14646         PR c/12148
14647         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
14648         `int' in a number of places to make sure we always have a SImode
14649         and not a HImode.  Add a 'L' suffix to a number of constants.
14650
14651 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14652
14653         * pa.c: Don't include obstack.h.
14654
14655         * pa.md: Correct constraint in pattern for loading PIC label address.
14656
14657 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14658
14659         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
14660          before defining.
14661
14662 2004-01-11  Steven Bosscher  <stevenb@suse.de>
14663
14664         PR fortran/9972
14665         * toplev.c (rest_of_handle_inline): Also consider functions
14666         for deferral if the language is GNU F77.
14667
14668 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
14669
14670         * c-decl.c (diagnose_arglist_conflict): Add missing space to
14671         diagnostic messages.
14672
14673 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
14674
14675         PR middle-end/13392
14676         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
14677         to drop through label.  Don't fall back to SCC even when conditional
14678         jump has not been found.
14679
14680 2004-01-11  Jan Hubicka  <jh@suse.cz>
14681
14682         * invoke.texi: Fix syntax error in previous patch.
14683
14684         Partial fix for PR opt/10776
14685         * Makefile.in (reload.o): Include param.h
14686         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
14687         * reload.c: Include params.h.
14688         (find_equiv_reg): Work limiting check.
14689         * invoke.texi: Document.
14690
14691 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14692
14693         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
14694         out-of-bounds accesses to string constants.  Simplify mips16
14695         case accordingly.
14696
14697 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14698
14699         PR optimization/13469
14700         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
14701         reload_cse_regs (-fnon-call-exceptions only).
14702
14703 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
14704
14705         * config/mcore/lib1.asm: Fix comment formatting.
14706         * config/mcore/mcore-elf.h: Likewise.
14707         * config/mcore/mcore.c: Likewise.
14708         * config/mcore/mcore.h: Likewise.
14709         * config/mcore/mcore.md: Likewise.
14710
14711 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14712
14713         * c-decl.c (duplicate_decls): Break apart into...
14714         (diagnose_arglist_conflict, validate_proto_after_old_defn)
14715         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
14716         ... these new functions.  Restructure for comprehensibility.
14717         Remove various archaic special cases.  Always report the
14718         location of the previous declaration when a diagnostic is issued.
14719         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
14720         (match_builtin_function_types): Delete unnecessary forward declaration.
14721
14722 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14723
14724         * genautomata.c (make_automaton, NDFA_to_DFA):
14725         Print progress bars with '.' characters instead of '*'.
14726         (build_automaton): Change notes to match.
14727
14728 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14729
14730         * config/m32r/m32r.md: Use define_constants for unspec and
14731         unspec_volatile.
14732
14733 2004-01-10  Jan Hubicka  <jh@suse.cz>
14734
14735         PR opt/11635
14736         * expr.c (expand_expr_real):  More curefully expand union casts.
14737
14738 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14739
14740         * config/m32r/m32r.md (flush_icache): Use 1 for
14741         unspec_volatile.
14742
14743 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
14744             James E Wilson  <wilson@specifixinc.com>
14745
14746         PR debug/12860
14747         * dbxout.c (dbxout_symbol): Remove initialization of
14748         current_sym_code, current_sym_value, and current_sym_addr.
14749         (dbxout_symbol_location): Same.
14750         (dbxout_prepare_symbol): Zero current_sym_code,
14751         current_sym_value, and current_sym_addr.
14752
14753 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
14754
14755         * tree.c (get_unwidened): Reorder conditions so that the null pointer
14756         check is done first.
14757
14758 2004-01-09  Eric Christopher  <echristo@redhat.com>
14759
14760         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
14761         if we're running mark_constant_function.
14762
14763 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
14764
14765         PR target/12561
14766         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
14767
14768 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
14769
14770         PR debug/11231
14771         * dbxout.c (dbxout_type_fields): Return if any item is
14772         error_mark_node or the type is error_mark_node.
14773
14774 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
14775
14776         * config/rs6000/darwin-ldouble.c: Add big comment explaining
14777         exactly what is expected as a 'long double'.
14778         (_xlqadd): When a value to be returned is representable as a
14779         'double', just return it directly, do not construct it using a union.
14780         Also, correct final fixup.
14781         (_xlqmul): Likewise.
14782         (_xlqdiv): Likewise.
14783         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
14784
14785         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
14786
14787 2004-01-09  Richard Henderson  <rth@redhat.com>
14788
14789         * recog.c (constrain_operands): Validate mem operands.
14790
14791 2004-01-09   James E Wilson  <wilson@specifixinc.com>
14792
14793         * gcc.c (init_spec): Remove -lunwind from shared case.
14794         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
14795
14796 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
14797
14798         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
14799         * configure: Regenerate
14800
14801 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
14802
14803         PR c/11234
14804         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
14805         between function and object pointers.
14806         (digest_init): When comparing a pointer to function type to the
14807         target type, only apply TREE_TYPE once to the pointer to function
14808         type.
14809         * except.c (for_each_eh_label_1): Treat data as a pointer to a
14810         function pointer rather than casting it to a function pointer.
14811         (for_each_eh_label): Update caller.
14812         * recog.h (struct insn_data): Use a struct or union for output.
14813         * genoutput.c (output_insn_data): Update.
14814         * final.c (get_insn_template): Update.
14815
14816 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
14817
14818         * expr.h (expand_expr): Make it a macro, not a function.
14819         (expand_expr_real): New function.
14820         * expr.c (store_expr): Adjust logic for deciding whether or not to
14821         copy the value returned by expand_expr.
14822         (expand_expr): Rename to ...
14823         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
14824         calls to language hooks.
14825         * c-common.h (c_expand_expr): Adjust prototype.
14826         * c-common.c (c_expand_expr): Add alt_rtl parameter.
14827         * langhooks-def.h (lhd_expand_expr): Change prototype.
14828         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
14829         * langhooks.h (lang_hooks): Change type of expand_expr.
14830         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
14831         (last_expr_alt_rtl): Likewise.
14832         (expand_expr_stmt_value): Set last_expr_alt_rtl.
14833         (clear_last_expr): Clear it.
14834         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
14835         (expand_end_bindings): Save and restor last_expr_alt_rtl.
14836         * tree.def (RTL_EXPR): Give it an additional operand.
14837         * tree.h (RTL_EXPR_ALT_RTL): New macro.
14838
14839 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14840
14841         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
14842         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
14843
14844 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14845
14846         PR target/13380.
14847         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
14848         or (ne:SI (reg:CC 17) (const_int 0)).
14849         Be specific about modes wherever possible.
14850
14851 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14852
14853         * config/m32r/m32r.c (m32r_expand_block_move): Call
14854         gen_movestrsi_internal with two more arguments.
14855         (m32r_output_block_move): Adjust operand numbers.
14856         Properly update the source and destination pointers.
14857         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
14858         'r+'.  Change the set detinations to match_operand.
14859
14860 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14861
14862         * final.c (FIRST_INSN_ADDRESS): Remove.
14863         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
14864         * system.h (FIRST_INSN_ADDRESS): Poison.
14865         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
14866         * config/m32r/m32r-protos.h: Remove the prototype for
14867         m32r_first_insn_address.
14868         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
14869         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
14870         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
14871
14872 2004-01-09  J. Brobecker  <brobecker@gnat.com>
14873
14874         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
14875         we just created.
14876         (is_ada_subrange_type): DIEs for enumeration subtypes should be
14877         emitted as subrange types too.
14878         (subrange_type_die): Add handling of enumeration subtypes.
14879
14880 2004-01-08  Richard Henderson  <rth@redhat.com>
14881
14882         PR opt/12441
14883         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
14884         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
14885         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
14886         (ix86_address_cost): Be prepared for SUBREGed registers.
14887         (legitimate_address_p): Accept SUBREGed registers.
14888
14889 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
14890
14891         * Makefile.in: Rename configure.in to configure.ac
14892         * doc/sourcebuild.texi: Likewise.
14893         * configure: Regenerate.
14894         * config.in: Regenerate.
14895
14896 2004-01-08  Stuart Hastings  <stuart@apple.com>
14897
14898         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
14899
14900 2004-01-08  Jan Hubicka  <jh@suse.cz>
14901
14902         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
14903
14904 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
14905
14906         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
14907         (UNSPEC_FIX_TRUNC_TF): New constant.
14908         (movtf_internal): Make splitter active only when insn is active.
14909         (extenddftf2): Rewrite to properly load zero into low part.
14910         (extenddftf2_internal): New.
14911         (extendsftf2): Rewrite.
14912         (truncdftf2): Correct length.
14913         (floatditf2): Delete.
14914         (fix_trunc_helper): New.
14915         (fix_trunctfdi2): Use fix_trunc_helper.
14916         (fix_trunctfsi2): Likewise.fix_trunc
14917         (fix_trunctfsi2_internal): New.
14918
14919         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
14920         addresses are legitimate on Darwin even when flag_pic.
14921         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
14922         non-offsettable addresses for loads of TFmode constants.
14923
14924 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14925
14926         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
14927         variables in the appropriate bss section.
14928
14929 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
14930
14931         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
14932         target_flags has MASK_POWERPC64 when -m64.
14933         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
14934         to 620, 630, power3, power4 and rs64a entries.
14935         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
14936
14937 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
14938
14939         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
14940         floating-point constants.
14941
14942 2004-01-08  J. Brobecker  <brobecker@gnat.com>
14943
14944         * dwarf2out.c (subrange_type_die): Add context_die parameter.
14945         Create the subrange_type DIE using the given context DIE.
14946         (modified_type_die): Update call to subrange_type_die.
14947
14948 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
14949
14950         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
14951         Add multiple-include guard.
14952
14953 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
14954
14955         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
14956         all vector constant loadable by vsplt*.
14957         (output_vec_const_move): Likewise.
14958
14959 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14960
14961         PR c/6024
14962         * c-typeck.c (comptypes): Only treat enumerated types in the same
14963         translation unit as compatible with each other when they are the
14964         same type.
14965         * doc/extend.texi: Update.
14966
14967 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14968
14969         PR c/12165
14970         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
14971         array type from the array element type.
14972
14973 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
14974
14975         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
14976         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
14977         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
14978         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
14979         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
14980
14981 2004-01-06  Eric Christopher  <echristo@redhat.com>
14982
14983         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
14984         (DWARF2_DEBUGGING_INFO): Define.
14985         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
14986         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
14987         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
14988         for irix as.
14989         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
14990         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
14991         * config/mips/iris5gas.h: Ditto.
14992         (DBX_DEBUGGING_INFO): Remove.
14993         (DWARF2_DEBUGGING_INFO): Ditto.
14994         (MIPS_DEBUGGING_INFO): Ditto.
14995         (PREFERRED_DEBUGGING_TYPE): Ditto.
14996         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
14997         (PREFERRED_DEBUGGING_TYPE): Ditto.
14998         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
14999         * config/mips/elf64.h: Ditto.
15000
15001 2004-01-06  Jan Hubicka  <jh@suse.cz>
15002
15003         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
15004         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
15005
15006 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
15007
15008         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
15009         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
15010         * config/rs6000/darwin-ldouble.c: New.
15011
15012         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
15013         for constants.
15014         (constant_subword): Delete.
15015         * rtl.h (constant_subword): Delete prototype.
15016         (immed_double_const): Is not in varasm.c.
15017         * simplify-rtx.c (simplify_immed_subreg): New.
15018         (simplify_subreg): Use simplify_immed_subreg.
15019
15020         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
15021         than trying to generate RTL directly.
15022         (fix_trunctfsi2): Use expand_fix rather than trying to generate
15023         RTL directly.
15024
15025         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
15026
15027 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
15028
15029         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
15030         function into a separate macro.
15031         (read_only_data_section): Add void argument.
15032         (private_data_section): Same.
15033         (read_only_private_data_section): Same.
15034         (toc_section): Same.
15035
15036 2004-01-06  Jan Hubicka  <jh@suse.cz>
15037
15038         * invoke.texi:  Remove typo in last change.
15039
15040         PR target/10301
15041         * config.gcc: Accept opteron and athlon-64 as variants
15042         of k8.
15043         * i386.c (override_options): Likewise.
15044         * invoke.texi (i386 -mtune): Expand documentation.
15045
15046 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
15047
15048         * alias.c: Fix comment typos.
15049         * builtins.c: Likewise.
15050         * cfg.c: Likewise.
15051         * df.c: Likewise.
15052         * dominance.c: Likewise.
15053         * dwarf2out.c: Likewise.
15054         * emit-rtl.c: Likewise.
15055         * expr.c: Likewise.
15056         * final.c: Likewise.
15057         * fold-const.c: Likewise.
15058         * gcse.c: Likewise.
15059         * genattrtab.c: Likewise.
15060         * genrecog.c: Likewise.
15061         * gensupport.c: Likewise.
15062         * ggc-zone.c: Likewise.
15063         * integrate.c: Likewise.
15064         * local-alloc.c: Likewise.
15065         * loop.c: Likewise.
15066         * recog.c: Likewise.
15067         * regmove.c: Likewise.
15068         * reg-stack.c: Likewise.
15069         * reorg.c: Likewise.
15070         * rtlanal.c: Likewise.
15071         * rtl.h: Likewise.
15072         * sched-ebb.c: Likewise.
15073         * simplify-rtx.c: Likewise.
15074         * toplev.c: Likewise.
15075         * varasm.c: Likewise.
15076
15077 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
15078
15079         * doc/install.texi: Fix typos.
15080         * doc/invoke.texi: Likewise.
15081         * doc/md.texi: Likewise.
15082
15083 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15084
15085         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
15086
15087 2004-01-06  Jan Hubicka  <jh@suse.cz>
15088
15089         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
15090         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
15091         of MMX_REGPARM.
15092         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
15093         add MMX_REGPARM.
15094         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
15095         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
15096         (MMX_REGPARM_MAX): Similarly for -mmmx.
15097
15098 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15099
15100         * config/sh/linux.h: Fix comment formatting.
15101         * config/sh/netbsd-elf.h: Likewise.
15102         * config/sh/sh.c: Likewise.
15103         * config/sh/sh.h: Likewise.
15104         * config/sh/vxworks.h: Likewise.
15105
15106 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15107
15108         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
15109         * toplev.c (output_file_directive): Don't use
15110         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
15111
15112 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
15113
15114         * toplev.c: Fix broken checkin of 2003-12-30.
15115
15116 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
15117
15118         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
15119         (USING_MMAP): We don't support non-mmap.
15120         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
15121         large objects.
15122         (struct page_entry): Remove bytes_free.
15123         (struct page_table_chain): Remove.
15124         (struct globals): Remove page_table member.
15125         (loookup_page_table_entry): Function deleted.
15126         (set_page_table_entry): Ditto.
15127         (ggc_allocated_p): No longer need page table lookups.
15128         (ggc_marked_p): Ditto.
15129         (alloc_small_page): Don't care about bytes_free anymore.
15130         (alloc_large_page): Round up size.
15131         (ggc_alloc_zone_1): Mark large objects as such, and calculate
15132         their size the new way.
15133         Remove page table lookups and setting.
15134         (ggc_get_size): Calculate large object size the new way.
15135         (sweep_pages): Redo to account for fact that we no longer have
15136         bytes_free.
15137         (ggc_collect): No longer need to reincrement bytes_free.
15138         (ggc_pch_alloc_object): Handle new large objects properly.
15139         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
15140
15141 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15142
15143         * doc/invoke.texi: Remove a page break.
15144
15145 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15146
15147         * config/avr/avr.c (avr_output_function_prologue): Remove an
15148         extra pair of curly braces.
15149
15150 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15151
15152         * config/mn10300/mn10300.c: Fix comment formatting.
15153         * config/mn10300/mn10300.h: Likewise.
15154
15155 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15156
15157         * tree.h: Update documentation on nothrow_flag.
15158         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
15159         types.
15160
15161 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
15162
15163         * doc/invoke.texi: Remove traces of dead ports.
15164
15165 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
15166
15167         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
15168         option.
15169
15170 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
15171
15172         PR target/12945
15173         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
15174         counter labels.
15175         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
15176         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
15177         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
15178         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
15179         (mips_symbol_insns): Don't trust the local/global classification.
15180         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
15181         (override_options): Make -mabicalls -fno-unit-at-a-time imply
15182         -mno-explicit-relocs.
15183         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
15184         between local and global symbols.
15185
15186 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
15187
15188         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
15189         (mips_preferred_reload_class): Declare.
15190         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
15191         (EXTRA_CONSTRAINT): Update accordingly.
15192         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
15193         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
15194         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
15195         mips_dangerous_for_la25_p.
15196         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
15197         if mips_dangerous_for_la25_p.
15198
15199 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
15200
15201         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
15202         warning.
15203
15204 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
15205
15206         * configure.ac: Use AC_PROG_CPP_WERROR.
15207         * configure: Regenerate.
15208
15209 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
15210
15211         * .cvsignore: Add autom4te.cache.
15212
15213 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
15214
15215         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
15216         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
15217         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
15218         then architecture options, then ABI options.  General rewording.
15219
15220 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
15221
15222         PR c/3414
15223         * doc/extend.texi: Clarify definition of malloc attribute.
15224
15225 2004-01-04  Jan Hubicka  <jh@suse.cz>
15226
15227         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
15228         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
15229         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
15230         (cgraph_inline_p): Add extra argument reason.
15231         * cgraphunit.c: Minor formating fixes.
15232         cgraph_first_inlined_callee): New functions.
15233         (record_call_1): Record builtins too.
15234         (cgraph_analyze_function): Update inline_failed messages.
15235         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
15236         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
15237         (cgraph_check_inline_limits): Likewise; Add argument reason.
15238         (cgraph_set_inline_failed): New static function.
15239         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
15240         reasons.
15241         (cgraph_inline_p): Add new argument reason.
15242         * tree-inline.c (expand_call_inline):  Update warning.
15243
15244 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
15245
15246         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
15247         with modern equivalents.
15248         * configure: Regenerate.
15249
15250         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
15251         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
15252         * configure: Regenerate.
15253
15254         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
15255
15256         * configure.in: Rename to configure.ac.
15257         * configure.ac: Renamed from configure.in; make minimum necessary
15258         changes for autoconf 2.5x.
15259         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
15260         * configure: Regenerate with autoconf 2.57.
15261
15262 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
15263
15264         * config/mips/linux.h: Fix comment formatting.
15265         * config/mips/mips.c: Likewise.
15266         * config/mips/mips.h: Likewise.
15267         * config/mips/mips.md: Likewise.
15268         * config/mips/netbsd.h: Likewise.
15269         * config/mips/windiss.h: Likewise.
15270
15271 2004-01-02  Richard Henderson  <rth@redhat.com>
15272
15273         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
15274         for sse and 387; add suppression for mmx.
15275
15276 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
15277
15278         * loop.c (loop_optimize): Free all loops_info's mems.
15279
15280         * c-typeck.c (finish_init): Free spelling_base before
15281         setting it again.
15282
15283         * cfgloop.c (flow_loops_find): Always free the sbitmap
15284         headers.
15285
15286         * predict.c (estimate_probability): Free bbs after being
15287         done with it.
15288
15289 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
15290
15291         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
15292         const_8bit_operand and call_address_operand.
15293
15294 2004-01-02  Jan Hubicka  <jh@suse.cz>
15295
15296         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
15297         when there is nothing to inline but warnings are requested.
15298         (cgraph_decide_inlining):  Fix memory leak.
15299
15300 2004-01-02  Jan Hubicka  <jh@suse.cz>
15301
15302         * expr.c (store_constructor):  Fix pasto in previous patch.
15303
15304 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
15305
15306         * config/i386/cygming.h: Fix comment formatting.
15307         * config/i386/djgpp.h: Likewise.
15308         * config/i386/gthr-win32.c: Likewise.
15309         * config/i386/i386-interix.h: Likewise.
15310         * config/i386/i386.c: Likewise.
15311         * config/i386/i386.h: Likewise.
15312         * config/i386/openbsd.h: Likewise.
15313         * config/i386/winnt.c: Likewise.
15314         * config/i386/xm-mingw32.h: Likewise.
15315
15316 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
15317
15318         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
15319         copyright and last modification dates.
15320
15321 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
15322
15323         * doc/install.texi (Specific): Mention x86_64.
15324
15325 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
15326
15327         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
15328         Call force_operand on plus_constant result.
15329
15330 2004-01-01  Jan Hubicka  <jh@suse.cz>
15331
15332         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
15333         * expr.c (store_constructor): Use vec_init pattern.
15334         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
15335         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
15336         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
15337         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
15338         New patterns.
15339         (sse2_unpc?pd): Fix pattern.
15340         (sse2_movlpd): Kill.
15341         (sse2_movsd): Deal with movlpd too.
15342         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
15343         (ix86_expand_vector_init): New.
15344         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
15345         * md.texi (vec_set, vec_extract): Document
15346
15347 2003-12-31  Jan Hubicka  <jh@suse.cz>
15348
15349         PR opt/13473
15350         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
15351         ASM input operands
15352
15353         PR opt/12617
15354         * toplev.c (dump_file_index): Reorder ce3 and bbro.
15355         (dump_file): Likewise.
15356         (rest_of_compilation): Likewise.
15357
15358         PR debug/13367
15359         * cgraph.c (cgraph_function_possibly_inlined):  Even with
15360         flag_really_no_inline we inline always_inline functions.
15361         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
15362         for non-always_inline functions when there is flag_really_no_inline.
15363         (cgraph_decide_inlining): Limit work done when not inlining.
15364         (cgraph_decide_inlining_incrementally): Likewise.
15365         (cgraph_optimize_function): Check whether something got inlined.
15366         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
15367         extern inline functions when not inlining.
15368
15369         * opts.c (decode_options):  Disable crossjumping at -O1
15370         * invoke.texi (-O1): Document change.
15371
15372 See ChangeLog.10 for earlier changes.