OSDN Git Service

* function.h (struct function): Remove dont_emit_block_notes.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-07-01  Richard Henderson  <rth@redhat.com>
2
3         * function.h (struct function): Remove dont_emit_block_notes.
4         * gimple-low.c (lower_function_body): Don't set it.
5         * cfgexpand.c (expand_block): Don't check it.
6         * cfglayout.c (insn_locators_initialize): Likewise.
7         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
8         * passes.c (rest_of_compilation): Likewise.
9         * stmt.c (expand_start_bindings_and_block): Likewise.
10         (expand_end_bindings): Likewise.
11
12 2004-07-01  Richard Henderson  <rth@redhat.com>
13
14         * cgraph.h (cgraph_build_static_cdtor): Declare.
15         * cgraphunit.c (cgraph_build_static_cdtor): New.
16         * c-objc-common.c (build_cdtor): Use it.
17         * coverage.c (create_coverage): Likewise.
18         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
19         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
20
21 2004-06-30  Roger Sayle  <roger@eyesopen.com>
22
23         * expmed.c (expand_shift): Consider expanding LSHIFT_EXPR by a
24         constant as a sequence of additions depending upon the rtx_costs.
25         (synth_mult): Update the "observed" cost of a shift, based upon
26         the above optimization.
27
28 2004-06-28  Geoffrey Keating  <geoffk@apple.com>
29             Andreas Tobler  <a.tobler@schweiz.ch>
30
31         PR 15813
32         * dwarf2out.c (reg_save): Output DW_CFA_same_value when a
33         register is saved in itself.
34         (initial_return_save): If the return address is a register,
35         it's already there, don't bother to mention it in the CFI.
36         (struct queued_reg_save): Add field saved_reg.
37         (struct reg_saved_in_data): New.
38         (regs_saved_in_regs): New.
39         (num_regs_saved_in_regs): New.
40         (queue_reg_save): Add extra parameter to specify register saved
41         in register.  Remove duplicate entries from queue.  Add comment
42         for function.
43         (flush_queued_reg_saves): Handle registers saved in registers.
44         Update regs_saved_in_regs.  Add comment for function.
45         (clobbers_queued_reg_save): Add comment for function.  Allow
46         for regs_saved_in_regs.
47         (reg_saved_in): New.
48         (dwarf2out_frame_debug_expr): Handle saving registers in other
49         registers.
50         (dwarf2out_frame_debug): Reset regs_saved_in_regs.
51         * unwind-dw2.c (execute_cfa_program): Correct handling of
52         DW_CFA_same_value.  Add FIXME comment about incorrect implementation
53         of DW_CFA_restore_extended.
54         * config/rs6000/rs6000.c (rs6000_emit_prologue): Let
55         dwarf2out_frame_debug_expr see instructions that save registers
56         in other registers or save those other registers in memory.
57
58         * unwind-dw2.c (DWARF_FRAME_REGISTERS): Move to unwind-dw2.h.
59         (_Unwind_FrameState): Likewise.
60         * unwind-dw2.h: New.
61         * Makefile.in (LIB2ADDEHDEP): Add unwind-dw2.h.
62         * config/rs6000/darwin-fallback.c: New file.
63         * config/rs6000/darwin.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
64         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add darwin-fallback.o.
65
66 2004-07-01  Alan Modra  <amodra@bigpond.net.au>
67
68         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite.
69         (function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in
70         calculating gpr size for altivec.  Simplify and correct
71         rs6000_mixed_function_arg calls.  Call rs6000_mixed_function_arg
72         for ABI_V4 gpr case too.  Fix off-by-one error in long double
73         reg test.  Generate the correct PARALLEL to handle long double
74         for ABI_AIX 32-bit.  Use this for -m32 -mpowerpc64 fpr case too.
75         (function_arg_partial_nregs): Align before calculating regs left.
76         Don't return info on partial fprs when we need info on gprs.
77         Correct long double fpr off-by-one error.
78
79 2004-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
80
81         * pa-protos.h (prefetch_operand): Add prototype.
82         * pa.c (prefetch_operand): New function.
83         * pa.h (prefetch_operand): Add to PREDICATE_CODES.
84         * pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns.
85
86 2004-06-30  Richard Henderson  <rth@redhat.com>
87
88         * function.h (struct function): Remove x_whole_function_mode_p.
89         * c-decl.c (store_parm_decls): Don't set it.
90         * tree-optimize.c (tree_rest_of_compilation): Likewise.
91         * passes.c (rest_of_compilation): Don't check it.
92         * stmt.c (expand_fixup): Likewise.
93         * function.c (fixup_var_refs_insn): Remove unused variable.
94
95 2004-06-30  Richard Henderson  <rth@redhat.com>
96
97         * tree.h (immediate_size_expand): Delete.
98         * stor-layout.c (immediate_size_expand): Delete.
99         (variable_size): Don't look at it.
100         * c-decl.c (push_parm_decl): Don't frob immediate_size_expand.
101         (start_function): Likewise.
102         * cfgexpand.c (construct_exit_block): Likewise.
103         * function.c (init_function_start, expand_function_end): Likewise.
104         * tree-optimize.c (tree_rest_of_compilation): Likewise.
105
106 2004-06-30  Richard Henderson  <rth@redhat.com>
107
108         * gimplify.c (gimplify_compound_lval): Take fallback argument
109         instead of want_lvalue.
110         (gimplify_call_expr): Take want_value argument instead of test
111         function.  Gimplify arguments to val only if reg_type; otherwise
112         allow lvalue forms.
113         (gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr
114         calls.
115         * tree-gimple.c: Update GIMPLE grammer.  Use true/false not 1/0.
116         Tidy commentary globally.
117         (get_call_expr_in): Remove RETURN_EXPR handling.  Tidy.
118         * tree-gimple.h (is_gimple_call_addr): Mark extern.
119
120         * gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo.
121
122 2004-06-30  Richard Henderson  <rth@redhat.com>
123
124         * tree-gimple.c (right_assocify_expr): Kill
125         (rationalize_compound_expr): Kill.
126         * tree-gimple.h: Likewise.
127         * tree-inline.c (expand_call_inline): Don't call it.
128
129         * function.h (struct function): Remove x_last_parm_insn,
130         inl_last_parm_insn.
131         (last_parm_insn): Remove.
132         * function.c (free_after_compilation): Don't clear them.
133         (fixup_var_refs_insn, assign_parms): Don't set them.
134
135         * function.c, rtl.h (get_first_nonparm_insn): Remove.
136
137 2004-06-30  Joseph S. Myers  <jsm@polyomino.org.uk>
138
139         * c-common.h (check_function_format): Remove first parameter.
140         * c-format.c (format_check_context): Remove status.
141         (check_format_info, check_format_info_main,
142         maybe_read_dollar_number, avoid_dollar_number,
143         finish_dollar_format_checking, check_format_types,
144         check_function_format): Remove first parameter.  Don't use
145         status_warning.
146         (check_format_arg): Don't use status_warning.
147         (status_warning): Remove.
148         * c-common.c (check_function_arguments): Update call to
149         check_function_format.
150
151 2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
152
153         * config/sparc/sparc-protos.h (output_cbranch): Constify return
154         value.
155         (output_v9branch): Likewise.
156         (sparc_v8plus_shift): Likewise.  Rename into output_v8plus_shift.
157         * config/sparc/sparc.c (output_cbranch): Constify return value.
158         Prettify output for delay slots.
159         (output_v9branch): Likewise.
160         (sparc_v8plus_shift): Constify return value.  Rename into
161         output_v8plus_shift.
162         * config/sparc/sparc.md (ashldi3_v8plus): Adjust call to
163         sparc_v8plus_shift.
164         (ashrdi3_v8plus): Likewise.
165         (lshrdi3_v8plus): Likewise.
166         (call_address_struct_value_sp32): Prettify output for delay slots.
167         (call_symbolic_struct_value_sp32): Likewise.
168         (call_address_untyped_struct_value_sp32): Likewise.
169         (call_symbolic_untyped_struct_value_sp32): Likewise.
170
171 2004-06-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
172
173         * common.opt (ftree-loop-optimize): New flag.
174         * tree-flow.h (kill_redundant_phi_nodes): Declare.
175         * tree-optimize.c (init_tree_optimization_passes): Add pass_loop.
176         * tree-pass.h (pass_loop_init, pass_loop_done): Declare.
177         * tree-ssa-loop.c (current_loops): New variable.
178         (tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init,
179         tree_ssa_loop_done): New functions.
180         (pass_loop, pass_loop_init, pass_loop_done): New passes.
181         * tree-ssa.c (kill_redundant_phi_nodes): Export.
182         * doc/invoke.texi (-ftree-loop-optimize): Document.
183
184 2004-06-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
185
186         * tree-ssa-loop-ch.c: New file.
187         * Makefile.in (tree-ssa-loop-ch.o): Add.
188         (tree-into-ssa.o): Add GGC_H dependency.
189         * tree-cfg.c (tree_duplicate_bb): Copy virtual arguments.
190         * tree-flow.h (rewrite_into_ssa): Declaration changed.
191         (rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name):
192         Declare.
193         * tree-into-ssa.c: Include ggc.h.
194         (struct def_blocks_d): Add phi_blocks field.
195         (struct mark_def_sites_global_data): Add names_to_rename field.
196         (struct ssa_name_info): New.
197         (compute_global_livein): Export.
198         (set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block,
199         insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for,
200         register_new_def, get_reaching_def, def_blocks_free,
201         get_def_blocks_for, rewrite_into_ssa): Modified to work with
202         rewrite_ssa_into_ssa.
203         (get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def,
204         set_current_def, ssa_mark_def_sites_initialize_block,
205         ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name,
206         ssa_register_new_def, ssa_rewrite_initialize_block,
207         ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block,
208         ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New
209         functions.
210         (pass_build_ssa): Call rewrite_all_into_ssa.
211         * tree-optimize.c (execute_todo, execute_one_pass,
212         tree_rest_of_compilation): Allocate vars_to_rename only once.
213         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter
214         to rewrite_into_ssa.
215         * tree-ssa-loop.c (should_duplicate_loop_header_p,
216         mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p,
217         copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c.
218         Use rewrite_ssa_into_ssa.
219         * tree-ssa-operands.c (copy_virtual_operands): New function.
220         * tree-ssa-operands.h (copy_virtual_operands): Declare.
221         * tree.h (struct tree_ssa_name): Add aux field.
222         (SSA_NAME_AUX): New macro to access it.
223
224 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
225
226         * prefix.c (lookup_key): Cast buffer to LPBYTE.
227
228 2004-06-30  Per Bothner  <per@bothner.com>
229
230         Conditionally compile support for --enable-mapped_location.
231         * input.h:  #include line-map.h for source_location typedef.
232         (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location,
233         LOCATION_FILE, LOCATION_LINE):  New macros and functions.
234         (expanded_location, source_locus):  New typedefs.
235         (push_srcloc):  Change parameter list if USE_MAPPED_LOCATION.
236         * rtl.def (NOTE, ASM_OPERANDS):  Modify specifcation, if
237         USE_MAPPED_LOCATION.
238         * rtl.h (NOTE_DELETED_LABEL_NAME):  New macro.
239         (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED):
240         New conditional macros.
241         (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE):  Replace
242         by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION.
243         * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION,
244         EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO,
245         DECL_IS_BUILTIN):  New macros, most depending on USE_MAPPED__LOCATION.
246         (tree_exp):  Change type of locus to use new source_locus typedef.
247         * tree.c (build1_stat):  Use SET_EXPR_LOCATION.
248         (annotate_with_locus, annotate_with_file_line):  Conditionalize.
249         (expand_location):  New function.
250         * toplev.c (unknown_location):  New static, when USE_MAPPED_LOCATION.
251         (push_srcloc, pop_loc):  Adjust parameter handling.
252         (process_options):  Don't set input_filename by itself.
253         (lang_dependent_init):  Save, set input_location to <built-in>.
254         (warn_deprecated_use):  Use expand_location.
255
256         * basic-block.h (struct edge_def):  Use new source_locus typedef.
257         * c-common.c (fname_decl):  Update save/clear/store of input_location.
258         (c_do_switch_warnings):  Update for USE_MAPPED_LOCATION case.
259         * c-decl.c:  Likewise.
260         * c-dump.c (dump_stmt):  Likewise.
261         * c-gimplify.c (c-gimplify.c):  Generalize using SET_EXPR_LOCATION.
262         * c-lex.c (cb_line_change):  If USE_MAPPED_LOCATION use token's src_loc
263         to set input_location direction, rather than using linemap_lookup.
264         (fe_file_change, cb_def_pragma):  Again use source_location directly.
265         * c-opts.c (saved_lineno):  Remove static variable.
266         (c_common_post_options, c_common_init):  Don't bothner to save,
267         clear and restore input_Location - now handled by lang_dependent_init.
268         * function.c (init_function_start):  Use new DECL_IS_BUILTIN macro.
269         * xcoffout.c (xcoff_assign_fundamental_type_number):  Likewise.
270         * tree-mudflap.c (mf_file_function_line_tree):  Take a location_t
271         rather than a pointer to one.  Use expand_location.
272         (mf_varname_tree):  Use expand_location.
273         * tree-dump.c:  Use expand_location on DECL_SOURCE_LOCATION.
274         * coverage.c:  Likewise.
275         * print-tree.c:  Likewise.
276         * c-aux-info.c (gen_aux_info_record):  Likewise.
277         * c-parse.in:  Use SET_EXPR_LOCATION macro.
278         * gimple-low.c:  Likewise.
279         * tree-mudflap.c:  Likewise.
280         * gimplify.c:  Likewise.  Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
281         * c-ppoutput.c:  Use new source_location typedef instead of fileline.
282         * c-semantics.c:  Use new macros.
283         * c-typeck.c:  Likewise.
284         * cfgexpand.c:  Handle USE_MAPPED_LOCATION case for function_end_locus.
285         * cfglayout.c (insn_locators_initialize):  Const cleanup.  New macros.
286         * cfgrtl.c (delete_insn):  Use new NOTE_DELETED_LABEL_NAME macro.
287         * print-rtl.c (print_rtx):  Likewise.
288         * emit-rtl.c:  Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION.
289         * combine.c:  Use new SET_INSN_DELETED macro.
290         * flow.c:  Likewise.
291         * haifa-sched.c:  Likewise.
292         * ifcvt.c:  Likewise.
293         * recog.c:  Likewise.
294         * reload1.c:  Likewise.
295         * diagnostic.c:  Use expand_location macro.
296         * pretty-print.c (pp_base_format_text):  Likewise.
297         * profile.c:  Likewise.
298         * dwarf2out.c:  Likewise.  Also use expand_location, DECL_IS_BUILTIN.
299         * dwarf2out.c (dwarf2out_decl:  Use BUILTINS_LOCATION.
300         * emit-rtl.c (emit_line_note):  Simplify if USE_MAPPED_LOCATION.
301         (force_next_line_note, insn_emit):  Handle USE_MAPPED_LOCATION case.
302         * final.c (final):  Likewise.
303         * haifa-sched.c:  Likewise.
304         * integrate.c:  Likewise.
305         * jump.c:  Likewise.
306         * rtl-error.c:  Likewise.
307         * stmt.c (check_seenlabel):  Likewise.
308         * tree-pretty-print.c:  Likewise.
309         * gengtype-lex.l:  Temporary kludge to avoid duplicate typedef.
310         * gengtype.c:  Update for now typdefs in input.h.  More kludges.
311         * modulo-sched.c (sms_schedule):  Use NOTE_EXPANDED_LOCATION macro.
312         * ra-debug.c (ra_print_rtl):  Likewise.
313         * sched-rgn.c:  Likewise.
314         * sched-vis.c:  Likewise.
315         * rtl.h (gen_rtx_ASM_OPERANDS):  Redefine if USE_MAPPED_LOCATION.
316         * stmt.c (expand_asm_operands):  Adjust calls to gen_rtx_ASM_OPERANDS.
317         * tree-cfg.c:  Use new macros and typedefs.
318         * tree-flow-inline.h:  Likewise.
319
320 2004-06-30  Richard Sandiford  <rsandifo@redhat.com>
321             Eric Christopher  <echristo@redhat.com>
322
323         * config/mips/3000.md: Improve description.
324
325 2004-06-30  Paul Brook  <paul@codesourcery.com>
326
327         * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
328         cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.
329
330 2004-06-30  Sebastian Pop  <pop@cri.ensmp.fr>
331
332         * Makefile.in (OBJS-common): Add tree-chrec.o.
333         (tree-chrec.o): New rule.
334         (GTFILES): Add tree-chrec.h.
335         * gengtype.c (open_base_files): Add tree-chrec.h.
336         * tree-chrec.c: New file.
337         * tree-chrec.h: New file.
338         * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes.
339
340 2004-06-30  Roger Sayle  <roger@eyesopen.com>
341
342         * combine.c: Include "output.h" to define dump_file.
343         (uid_insn_cost, last_insn_cost): New global variables.
344         (combine_insn_cost): New function to estimate cost of an insn.
345         (combine_validate_cost): New function to determine whether a
346         try_combine replacement sequence is cheaper than the original.
347         (combine_instructions): Allocate and populate uid_insn_cost
348         array at the start of the combine pass, and deallocate it after.
349         (try_combine): Check combine_validate_cost to determine whether
350         a "recombination" should be rejected as being more expensive.
351         * Makefile.in (combine.o): Add dependency upon output.h.
352
353 2004-06-30  Roger Sayle  <roger@eyesopen.com>
354
355         * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle
356         subtractions identically to additions, always COSTS_N_INSNS (1).
357
358 2004-06-30  J"orn Rennecke <joern.rennecke@superh.com>
359
360         * expmed.c (expand_smod_pow2): Fix sign of mask.
361
362 2004-06-29  Diego Novillo  <dnovillo@redhat.com>
363
364         * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant
365         to check for constants.
366         (set_remove): Likewise.
367         (value_replace_in_set): Likewise.
368         (find_leader): Likewise.
369         * tree-vn.c (set_value_handle): Likewise.
370         (vn_lookup): Likewise.
371         (vn_lookup_or_add): Likewise.
372
373 2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
374
375         RTL prologue/epilogue for SPARC
376         * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
377         (sparc_skip_caller_unimp): Likewise.
378         (load_pic_register): Likewise.
379         (leaf_return_peephole_ok): Likewise.
380         (compute_frame_size): Rename into sparc_compute_frame_size.
381         (sparc_expand_prologue): New prototype.
382         (sparc_expand_epilogue): Likewise.
383         (output_return): Likewise.
384         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
385         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
386         compute_frame_size.  Move comment up.
387         (DELAY_SLOTS_FOR_EPILOGUE): Delete.
388         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
389         (EPILOGUE_USES): Return true for %g1 if the function uses EH return.
390         * config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
391         (type attribute): Add 'return' and 'savew'.
392         (eligible_for_return_delay): New attribute.
393         (return): New delay_slot.
394         (sibcall_epilogue): Call sparc_expand_epilogue.
395         (prologue): Likewise.  Move up.
396         (save_register_window): New expander.
397         (save_register_windowsi): New pattern.
398         (save_register_windowdi): Likewise.
399         (epilogue): New expander.
400         (return_internal): New pattern.
401         (Return peepholes): Delete.
402         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
403         (sparc_emitting_epilogue): Delete.
404         (sparc_skip_caller_unimp): Likewise.
405         (sparc_sr_alias_set): New global variable.
406         (frame_base_name): Delete.
407         (frame_base_reg): New global variable.
408         (sparc_override_options): Get new alias set for save/restore.
409         (leaf_return_peephole_ok): Delete.
410         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
411         Factor out code into eligible_for_restore_insn_delay.
412         (eligible_for_restore_insn_delay): New function extraced from above.
413         Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
414         (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
415         Factor out code into eligible_for_restore_insn_delay.
416         (load_pic_register): Make static.  Remove check.
417         (save_regs): Delete.
418         (restore_regs): Likewise.
419         (compute_frame_size): Rename into sparc_compute_frame_size.
420         Rename leaf_function into leaf_function_p.
421         (build_big_number): Delete.
422         (save_or_restore_regs): New function.
423         (emit_save_regs): Likewise.
424         (emit_restore_regs): Likewise.
425         (emit_stack_pointer_increment ): Likewise.
426         (emit_stack_pointer_decrement): Likewise.
427         (sparc_expand_prologue): Likewise.
428         (sparc_function_prologue): Rename into sparc_asm_function_prologue.
429         Remove all code to emit instructions.
430         (sparc_expand_epilogue): New function.
431         (sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
432         Remove all code to emit instructions.
433         (output_restore): New function.
434         (output_return): Likewise.
435         (output_sibcall): Factor out code into output_restore.
436         (print_operand): Adjust for frame_base_reg.
437         * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
438         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
439         (TARGET_INITIALIZER): Add it.
440         * passes.c (rest_of_compilation): Set the conditional predicate
441         'current_function_uses_only_leaf_regs' before sched2.  If target
442         has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
443         before sched2.
444         * reorg.c (return_insn_p): New predicate.
445         (find_end_label): Use it.
446         (relax_delay_slots): Do not thread an unconditional jump that points
447         to the end return label.
448         * doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
449         domain of 'current_function_uses_only_leaf_regs'.
450         (Stack and Calling) <Function Entry>: Document new target hook
451         TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
452
453 2004-06-30  Jakub Jelinek  <jakub@redhat.com>
454
455         * simplify-rtx.c (simplify_binary_operation): Simplify
456         ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
457         N has at least all bits in M set as well.
458
459         PR tree-optimization/15310
460         * expr.c (expand_assignment): Optimize += or -= on a bit field in
461         most significant bits.
462
463 2004-06-30  Steven Bosscher  <stevenb@suse.de>
464
465         * config/c4x/c4x.md: Fix comment.
466
467 2004-06-30  Akos Kiss  <akiss@inf.u-szeged.hu>
468
469         * arm.md (cond_return_inverted): Add "length" attribute.
470
471 2004-06-29  Per Bothner  <per@bothner.com>
472
473         * config/i386/winnt.c (i386_pe_encode_section_info):  Smash rtlname's
474         XSTR in place, so we don't lose SYMBOL_REF_DECL info.
475
476 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
477
478         * config/ia64/hpux.h: Target does too support thread-local storage.
479
480 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
481
482         * combine.c (distribute_notes): Don't look at global_regs for
483         pseudos.
484
485 2004-06-29  Richard Henderson  <rth@redhat.com>
486
487         * gimplify.c (gimplify_modify_expr_rhs): Move immediately before
488         gimplify_modify_expr.
489         (gimplify_init_constructor): Likewise.  Gimplify the null
490         CONSTRUCTOR assignment.
491         (gimplify_modify_expr_to_memcpy): New.
492         (gimplify_modify_expr_to_memset): New.
493         (gimplify_modify_expr): Use them.
494
495 2004-06-29  Roman Zippel <zippel@linux-m68k.org>
496
497         * web.c (union_defs): use all defs of an instruction to create a
498         union with a read/write use
499
500 2004-06-29  Richard Henderson  <rth@redhat.com>
501
502         PR middle-end/16216
503         * builtins.c (gimplify_va_arg_expr): Check for valist being
504         an error_mark_node.
505
506 2004-06-29  Jakub Jelinek  <jakub@redhat.com>
507
508         PR target/16195
509         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
510         r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC.
511         (first_reg_to_save): Pretend call_used_regs[30] is 0 if
512         TARGET_TOC && TARGET_MINIMAL_TOC.
513         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
514
515 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
516
517         Fix gcc.dg/builtin-apply2.c failures:
518         * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
519         * sh.c (extra_push): Delete.
520         (sh_expand_prologue): Don't do extra stack adjustment for
521         current_function_pretend_args_size if it comes from varargs setup.
522         Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
523         (sh_expand_epilogue): Don't use extra_push.
524         (sh_setup_incoming_varargs): Set pretend_arg_size when necessary.
525
526 2004-06-29  Roger Sayle  <roger@eyesopen.com>
527
528         * expmed.c (expand_smod_pow2): Provide alternate implementations
529         that avoid conditional jumps, and choose between them based upon
530         the target's rtx_costs.
531
532 2004-06-29  Andrew Pinski  <apinski@apple.com>
533
534         * tree-sra.c: Include expr.h for definition of MOVE_RATIO.
535         * Makefile.in (tree-sra.c): Update dependencies.
536
537 2004-06-29  Richard Henderson  <rth@redhat.com>
538
539         * tree-sra.c: Rewrite from scratch.  Handle nested aggregates.
540
541 2004-06-29  Nathan Sidwell  <nathan@codesourcery.com>
542
543         * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when
544         size_t is bigger than int.
545
546 2004-06-29  Paul Brook  <paul@codesourcery.com>
547
548         * target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
549         TARGET_CXX_COOKIE_HAS_SIZE): Define.
550         (TARGET_CXX): Use them.
551         * target.h (struct gcc_target): Add cxx.get_cookie_size and
552         cxx.cookie_has_size.
553         * targhooks.c (default_cxx_get_cookie_size): New fucntion.
554         * targhooks.h (default_cxx_get_cookie_size): Add prototype.
555         * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
556         TARGET_CXX_COOKIE_HAS_SIZE): Define.
557         (arm_get_cookie_size, arm_cookie_has_size): New functions.
558         * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
559         * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
560         TARGET_CXX_COOKIE_HAS_SIZE.
561
562 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
563
564         * cfglayout.c (fixup_reorder_chain): Don't do anything for
565         e_fall->dest == EXIT_BLOCK_PTR.
566
567 2004-06-28  Richard Henderson  <rth@redhat.com>
568
569         * tree-cfg.c (verify_stmt): Add last_in_block parameter.  Verify
570         that eh stmts can throw.
571         (verify_stmts): Update verify_stmt call.
572         (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
573         * tree-eh.c (remove_stmt_from_eh_region): New.
574         (lower_eh_constructs): Fix throw_stmt_table delete routine.
575         (tree_could_trap_p): Match may_trap_p.
576         (maybe_clean_eh_stmt): New.
577         * tree-flow.h: Update decls.
578         * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
579         (substitute_and_fold): Clean eh edges.
580         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
581         empty basic blocks.
582         * tree-ssa-dom.c (need_eh_cleanup): New.
583         (tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
584         (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
585
586 2004-06-29  Alan Modra  <amodra@bigpond.net.au>
587
588         * function.c (assign_parms): Don't abort with zero size stack
589         parm failing the PARM_BOUNDARY check.
590
591 2004-06-28  Diego Novillo  <dnovillo@redhat.com>
592
593         * common.opt (ftree-fre): New flag.
594         * flags.h (flag_tree_fre): Declare.
595         * opts.c (decode_options): Set.
596         * timevar.def (TV_TREE_FRE): Define.
597         * tree-flow-inline.h (may_propagate_copy): Re-arrange for
598         readability.  Handle destinations that are not SSA_NAMEs.
599         * tree-flow.h (struct ptr_info_def): Move from tree.h
600         (cprop_into_stmt, cprop_into_successor_phis): Remove.
601         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
602         vuse_optype parameter.
603         * tree-pass.h (pass_fre): Declare.
604         * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
605         (cprop_into_stmt): Likewise.
606         (cprop_into_successor_phis): Likewise.
607         * tree-ssa-dom.c (eliminate_redundant_computations): Fix
608         argument ordering in call to may_propagate_copy.
609         * tree-ssa-pre.c (is_undefined_value): Assume hard registers
610         to be always defined.
611         (add_to_sets): New local function.
612         (create_value_expr_from): New local function.
613         (compute_avail): Call them.
614         (eliminate): Don't ignore statements with virtual operands.
615         (init_pre): New local function.
616         (fini_pre): New local function.
617         (execute_pre): Call them.
618         Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
619         (do_pre): New function.
620         (do_fre): New function.
621         (gate_fre): New function.
622         (pass_fre): Declare.
623         * tree-ssa.c (init_tree_ssa): Don't call vn_init.
624         (delete_tree_ssa): Don't call vn_delete.
625         * tree-vn.c (val_expr_pair_d): Add documentation.
626         (vn_compute): Add VUSES argument to incorporate in computing
627         hash values.  Update all callers.
628         (expressions_equal_p): Call operand_equal_p with
629         OEP_PURE_SAME.
630         (vn_add): Add VUSES argument.  Update all callers.
631         (vn_lookup): Likewise.
632         (vn_lookup_or_add): Likewise.
633         * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
634
635 2004-06-28  Steven Bosscher  <stevenb@suse.de>
636
637         * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
638         m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
639         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
640         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
641         * config/m32r/m32r.md: Rewrite the pipeline description as a DFA.
642
643 2004-06-28  Richard Henderson  <rth@redhat.com>
644
645         * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
646         * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
647         IMAGPART_EXPR.
648         * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
649         IMAGPART_EXPR explicitly.
650         * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
651         and IMAGPART_EXPR specially.
652         * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
653
654 2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>
655
656         * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
657
658 2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>
659
660         * builtins.def (execl, execlp, execle, execv, execvp, execve,
661         fork): Change to DEF_EXT_LIB_BUILTIN.
662
663 2004-06-28  Roger Sayle  <roger@eyesopen.com>
664
665         * expmed.c (expand_smod_pow2): New function to expand signed
666         remainder by a constant power of 2, such as "x % 16".
667         (expand_divmod): Call new expand_smod_pow2 when appropriate.
668         Minor corrections to comments, e.g. wrapping long lines.
669
670 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
671
672         * Makefile.in (vec.o): Fix dependencies.
673
674 2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>
675
676         * Makefile.in: Fix parallel make dependency problem on vec.o.
677
678 2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
679
680         PR target/14041
681         * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
682
683 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
684
685         * tree.h (tree_check_failed): Make varadic.
686         (tree_not_check_failed): New prototype.
687         (tree_check2_failed, tree_check3_failed,
688         tree_check4_failed, tree_check5_failed): Remove.
689         (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
690         TREE_CHECK5): Adjust.
691         (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
692         TREE_NOT_CHECK5): New.
693         (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
694         TREE_RTL_OPERAND_CHECK): Adjust.
695         * tree.c (tree_check_failed): Make varadic.
696         (tree_not_check_failed): New.
697         (tree_check2_failed, tree_check3_failed,
698         tree_check4_failed, tree_check5_failed): Remove.
699
700 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
701
702         * combine.c (can_combine_p): Do not prevent building insns that use
703         and clobber the same fixed hard register.
704         (reg_dead_at_p): Likewise.
705
706 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
707
708         * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
709         changed.
710         (is_sra_candidate_complex_ref): New function.
711         (scalarize_modify_expr): Call it and check for LHS also.
712
713         * tree-pretty-print.c (dump_function_declaration): New.
714         (dump_generic_node, case FUNCTION_TYPE): Call it.
715         (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
716         (dump_generic_node, case DECL_EXPR): New case.
717         (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
718         (print_declaration): Handle type and function declarations.
719
720         * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
721         (convert_nonlocal_reference, convert_local_reference): Properly
722         convert nest of handled component references.
723
724 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
725
726         * vec.h, vec.c: New, type safe vector API.
727         * Makefile.in (OBJS-common): Add vec.o.
728         (vec.o): New target.
729         (gengtype-lex.o): Depend on vec.h.
730
731 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
732
733         * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
734         parameter.  Use it instead of ARG00 to produce the result.
735
736 2004-06-28  Alexandre Oliva  <aoliva@redhat.com>
737
738         * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
739         * config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
740         index is legitimate, compared with code moved from...
741         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
742         (REG_STRICT): Define, according to REG_OK_STRICT.
743         (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
744         REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
745         argument.
746         (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
747         REGNO_STRICT_OK_FOR_INDEX_P): New.
748         (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
749         REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
750         RTX_OK_FOR_BASE_P): Use them.
751
752 2004-06-28  Ben Elliston  <bje@au.ibm.com>
753
754         * doc/cfg.texi (Basic Blocks): Define dominators.
755
756 2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
757
758         PR c++/16205
759         * c-common.c (warn_for_collisions_1): Warn for only decls which
760         have a name.
761
762         PR c++/15145
763         * c.opt (Wsequence-point): Enable for C++ and ObjC++.
764
765         PR c/14963
766         * c-decl.c (start_decl): Check for null types.
767
768 2004-06-27  David Edelsohn  <edelsohn@gnu.org>
769
770         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
771         Accept TOC addresses.
772
773 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
774
775         * config/s390/s390-protos.h (s390_load_got): Update prototype.
776         * config/s390/s390.c (struct machine_function): Add member base_reg.
777         (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
778         (s390_split_branches): Annotate late pool references.
779         (annotate_constant_pool_refs): New function.
780         (find_constant_pool_ref): Work on annotated pool references.
781         (replace_constant_pool_ref): Likewise.  Use explicit base.
782         (replace_ltrel_base): Use explicit base.
783         (s390_mainpool_start): Reflect main_pool pattern change.
784         (s390_mainpool_finish): Use base register from main_pool.
785         Update calls to replace_ltrel_base and replace_constant_pool_ref.
786         (s390_chunkify_start): Use base_reg from struct machine_function.
787         (s390_chunkify_finish): Remove base_reg argument.  Update calls
788         to replace_ltrel_base and replace_constant_pool_ref.
789         (s390_reorg): Don't decide upon base register.  Update calls.
790         (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
791         but return sequence instead.
792         (s390_emit_prologue): Decide upon base register to use.  Annotate
793         all literal pool references.  Adapt to main_pool pattern change.
794         Update s390_load_got call; move MAYBE_DEAD handling here.
795         (s390_emit_epilogue): Annotate late literal pool references.
796         Remove barrier before register restore instruction.
797         * config/s390/s390.md (UNSPEC_LTREF): New constant.
798         ("builtin_setjmp_receiver"): Update s390_load_got call.
799         ("main_pool"): Explicitly reference base register.
800
801 2004-06-27  Roger Sayle  <roger@eyesopen.com>
802
803         * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
804         <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
805         <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
806         <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
807         <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
808         <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
809         TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
810         is a constant.
811
812 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
813
814         * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
815         * c-common.def (DECL_STMT): Remove.
816         * c-common.h (DECL_STMT_DECL): Deleted.
817         (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
818         (c_safe_from_p, c_walk_subtrees): Deleted.
819         * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
820         * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
821         * c-gimplify.c (gimplify_decl_stmt): Deleted.
822         (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
823         and gimplify_and_add.
824         (c_gimplify_expr, case DECL_EXPR): New case.
825         (c_gimplify_expr, case DECL_STMT): Deleted.
826         * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
827         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
828         * expr.c (safe_from_p, case 's'): New case.
829         * gimplify.c (gimplify_decl_expr): New function.
830         (gimplify_expr, case DECL_EXPR): New case.
831         * tree-inline.c (walk_tree): Walk into all fields of a type and
832         decl only if they are in a DECL_EXPR.
833         (mark_local_for_remap_r): Minor code cleanup.
834         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
835         * tree.c (has_cleanups, case DECL_EXPR): New case.
836         * tree.def (DECL_EXPR): New code.
837         * tree.h (DECL_EXPR_DECL): New macro.
838
839         * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
840
841 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
842
843         PR 13334
844         * doc/install.texi: Document non-standard CFLAGS and bootstrap
845         failures and warnings.
846
847 2004-06-26  Andrew Haley  <aph@redhat.com>
848
849         * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
850         TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
851         * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
852         * tree.h (TREE_THIS_NOTRAP): New.
853
854 2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
855
856         * genattrtab.c (write_test_expr): Put a unsigned cast before
857         the first operand for GEU, GTU, LEU and LTU.
858
859 2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
860
861         * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
862         gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
863         tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
864         tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
865         tree-tailcall.c: Fix comment typos.  Follow spelling
866         conventions.
867
868 2004-06-25  Eric Christopher  <echristo@redhat.com>
869
870         * config/mips/mips.md: Add back scheduling exclusion info.
871
872 2004-06-25  Roger Sayle  <roger@eyesopen.com>
873
874         * ifcvt.c (seq_contains_jump): Delete function.
875         (end_ifcvt_sequence): Replace call to seq_contains_jump with an
876         inline test for a jump instruction in the existing "insn" loop.
877         (block_fallthru): Document function.
878
879 2004-06-25  Philip Blundell  <philb@gnu.org>
880
881         PR wrong-code/15089
882         * loop.c (scan_loop): Do not move user-specified register
883         assignments.
884
885 2004-06-25  DJ Delorie  <dj@redhat.com>
886
887         * c-common.h (warn_cast_qual, warn_missing_format_attribute,
888         warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
889         warn_missing_braces, warn_sign_compare, warn_long_long,
890         warn_redundant_decls, warn_float_equal, warn_char_subscripts,
891         warn_conversion, warn_format_y2k, warn_format_extra_args,
892         warn_format_zero_length, warn_format_nonliteral,
893         warn_format_security, mesg_implicit_function_declaration,
894         warn_bad_function_cast, warn_traditional,
895         warn_declaration_after_statement, warn_strict_prototypes,
896         warn_missing_declarations, warn_nested_externs,
897         warn_sequence_point, warn_init_self, warn_div_by_zero,
898         warn_implicit_int, warn_nonnull, warn_old_style_definition,
899         warn_selector, warn_undeclared_selector, warn_protocol,
900         warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
901         warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
902         warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
903         warn_old_style_cast, warn_nontemplate_friend,
904         warn_deprecated): Remove explicit declarations.
905         * c-common.c: Likewise, remove explicit definitions.
906         * c-opts.c: Likewise, remove explicit assignments.
907         * c.opts: Likewise, add implicit declare/define/assign.
908
909 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
910
911         * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
912         (build_addr_expr_with_type): Deleted.
913         (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
914         (gimplify_compound_lval): Make two passes over reference nest.
915
916         * tree-nested.c (build_addr): Merge real/imagpart with
917         handled_component_p.
918         (convert_nonlocal_reference, convert_local_reference): Process extra
919         args to COMPONENT_REF and ARRAY_REF.
920         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
921         lower bound and field offset being constant.
922
923 2004-06-25  Mark Mitchell  <mark@codesourcery.com>
924
925         PR wrong-code/16129
926         * alias.c (get_alias_set): Adjust setting of
927         DECL_POINTER_ALIAS_SET for pointers to aggregates.
928
929 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
930
931         * tree-inline.c (remap_type): Arrange to have just one pointer type
932         for each type, mode, and 'can alias' value.
933         (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
934         (estimate_num_insns_1): Minor code reformatting.
935         (inline_forbidden_p_1): Likewise; add; missing return statement.
936
937 2004-06-25  Roger Sayle  <roger@eyesopen.com>
938
939         PR middle-end/15825
940         * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
941         Use get_isns and end_sequence instead of accepting a seq argument.
942         Scan the instruction sequence for unrecognizable or jump insns.
943         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
944         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
945         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
946         noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
947
948 2004-06-24  Jeff Law  <law@redhat.com>
949
950         * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
951         after gimplifying the innermost component.
952
953 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
954
955         PR target/16176
956         * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
957         register for the destination of the lwl or ldl.
958
959 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
960
961         * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
962         handled_component_p handling.
963         * tree-gimple.c (get_base_address): Likewise and fix typo that
964         caused both recursion and looping.
965
966         * tree-cfg.c (verify_expr): Add macro CHECK_OK.
967         Properly test for nest of handled_components in LHS context.
968
969 2004-06-25  Devang Patel  <dpatel@apple.com>
970
971         * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
972
973 2004-06-25  Paul Brook  <paul@codesourcery.com>
974
975         * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
976         TARGET_CXX): Define.
977         (TARGET_INITIALIZER): Use TARGET_CXX.
978         * target.h (struct gcc_target): Add struct cxx.
979         * targhooks.h (default_cxx_guard_type): Add prototype.
980         * targhooks.c (default_cxx_guard_type): New function.
981         * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
982         Define.
983         (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
984         * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
985         TARGET_CXX_GUARD_MASK_BIT.
986
987 2004-06-25  Devang Patel  <dpatel@apple.com>
988
989         * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
990         * config/i386/darwin.h (CC1_SPEC): Same.
991
992 2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
993
994         * dbxout.h: Add include guards
995
996 2004-06-25  Paul Brook  <paul@codesourcery.com>
997
998         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
999
1000 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
1001
1002         * arm.c (arm_arch4t): New variable.
1003         (arm_override_options): Initialize it.  If compiling for armv5 or
1004         higher clear TARGET_INTERWORK.
1005         (output_call): Abort if called for armv5.  Use BX if it's available.
1006         (output_call_mem): Use BLX if available and ensure that all armv5
1007         code is interworking safe.
1008         (output_return_instruction): Always use BX in preference to MOV if
1009         it's available.
1010         (arm_output_epilogue): Likewise.
1011         (arm_final_prescan_insn): Never conditionally call a subroutine
1012         on armv5.
1013         * arm.h (arm_arch4t): Declare.
1014         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
1015         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
1016         call_value_reg respectively.
1017         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
1018         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
1019         and call_value_indirect respectively.
1020
1021 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
1022
1023         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
1024         in terms of const_float_1_operand.
1025
1026 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
1027
1028         PR target/16144
1029         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
1030         is 1.0; force it into a register instead.
1031
1032 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
1033
1034         * config/m68k/m68k.h: Restore valid comment removed by mistake with
1035         the recent m68k comments cleanup.
1036
1037 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1038
1039         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
1040         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
1041         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
1042         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
1043
1044         PR/16131
1045         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
1046
1047         * gimplify.c: Remove unneeded forward declarations.
1048
1049         * gimplify.c (append_to_compound_expr): Deleted.
1050         * tree-gimple.h (append_to_compound_expr): Deleted.
1051
1052         * fold-const.c (fold_addr_expr_with_type): Look through all
1053         valid LHS modifiers to find a base to mark addressable.
1054
1055         * tree.h (debug_find_tree): Add declaration.
1056         * tree-inline.c (debug_find_tree): Remove extern declaration.
1057
1058 2004-06-24  Eric Christopher  <echristo@redhat.com>
1059
1060         * config/rs6000/rs6000.md: Apply change mistakenly
1061         deleted with 2004-06-22 patch.
1062
1063 2004-06-24  Richard Henderson  <rth@redhat.com>
1064
1065         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
1066         (c_break_label, c_cont_label): New.
1067         (start_function): Update initializations.
1068         (c_push_function_context): Update saves.
1069         (c_pop_function_context): Update restores.
1070         * c-parse.in: Update expected conflicts.
1071         (stmt_count, compstmt_count): Remove.  Remove all updates.
1072         (if_prefix, simple_if, do_stmt_start): Remove.
1073         (lineno_labeled_stmt): Remove.
1074         (lineno_labels): New.
1075         (c99_block_lineno_labeled_stmt): Use it.
1076         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
1077         annotate_with_locus.
1078         (select_or_iter_stmt): Replace by ...
1079         (condition, if_statement_1, if_statement_2, if_statement,
1080         start_break, start_continue, while_statement, do_statement,
1081         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
1082         (stmt): Split out ...
1083         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
1084         c_finish_goto_ptr.
1085         * c-semantics.c (add_stmt): Don't add line numbers to labels.
1086         * c-tree.h: Update prototypes.
1087         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
1088         add x_break_label, x_cont_label, x_switch_stack.
1089         (c_switch_stack): Declare.
1090         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
1091         (c_finish_return): Return the statement.
1092         (c_switch_stack): Rename from switch_stack; export.
1093         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
1094         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
1095         c_finish_else): Remove.
1096         (c_finish_if_stmt): Rewrite to perform the entire operation.
1097         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
1098         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
1099         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
1100         (c_finish_loop): New.
1101         (c_finish_bc_stmt): New.
1102         (c_finish_expr_stmt): Return the statement.  Split out...
1103         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
1104         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
1105         * tree-gimple.c (is_gimple_stmt): Likewise.
1106         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
1107         (print_struct_decl): Delete empty compound statement.
1108         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
1109         * objc/objc-act.h: Update decl.
1110
1111 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1112
1113         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
1114         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
1115
1116 2004-06-24  Andrew Pinski  <apinski@apple.com>
1117
1118         * objc-act.c (build_objc_method_call): Save the lookup_object
1119         so we do not call it twice.
1120
1121 2004-06-24  Richard Henderson  <rth@redhat.com>
1122
1123         * tree-ssa-dom.c (real_avail_expr_hash): New.
1124         (tree_ssa_dominator_optimize): Use it in the htab.
1125
1126 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
1127
1128         * tree-mudflap.c (mx_register_decls): Add third (type) argument
1129         to synthesized __mf_unregister call.
1130
1131 2004-06-24  Roger Sayle  <roger@eyesopen.com>
1132
1133         PR middle-end/15239
1134         * expmed.c (expand_mult): Remove artificial restriction on the
1135         maximum cost of a synthetic multiplication sequence.
1136
1137 2004-06-24  Eric Christopher  <echristo@redhat.com>
1138
1139         * combine.c (distribute_notes): Don't delete sets to
1140         global register variables.
1141
1142 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
1143
1144         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
1145         (ffs_rex64): New splitter.
1146         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
1147
1148 2004-06-24  Andrew Pinski  <apinski@apple.com>
1149
1150         * config/darwin7.h (MATH_LIBRARY): Remove.
1151         (LIB_SPEC): Define.
1152         * config/darwin.h (MATH_LIBRARY): Define always to empty.
1153         (LIB_SPEC): Only define if not already defined.
1154
1155 2004-06-24  Revital Eres  <eres@il.ibm.com>
1156
1157         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
1158         shifts of induction variable.
1159         (iv_shift): New function.
1160
1161 2004-06-24  Richard Henderson  <rth@redhat.com>
1162
1163         * gimplify.c (gimplify_body): Watch for body vanishing.
1164
1165 2004-06-24  Jeff Law  <law@redhat.com>
1166
1167         * tree-ssa-dom.c (record_dominating_conditions): New function.
1168         (dom_opt_finalize_block, get_eq_expr_value): Use it.
1169
1170 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
1171
1172         * calls.c (shift_returned_value): Fix handling of non-integer
1173         TYPE_MODEs.
1174
1175 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
1176
1177         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
1178         * system.h (DEFAULT_MAIN_RETURN): Poison.
1179         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
1180
1181 2004-06-24  Ben Elliston  <bje@au.ibm.com>
1182
1183         * doc/cfg.texi (Edges): Fix typo.
1184
1185 2004-06-24  Paul Brook  <paul@codesourcery.com>
1186
1187         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
1188
1189 2004-06-23  Andrew Pinski  <apinski@apple.com>
1190
1191         PR middle-end/15988
1192         * fold-const.c (fold_convert): Types which are compatible
1193         can be converted with only a NOP_EXPR.
1194
1195 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
1196
1197         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
1198         pass raw n_named_args to it.
1199         * targhooks.c: Formatting.
1200         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
1201
1202 2004-06-23  Richard Henderson  <rth@redhat.com>
1203
1204         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
1205         non-constant size check.  Gimplify the type too.  Tidy building
1206         BUILT_IN_STACK_ALLOC call.
1207
1208 2004-06-23  Roger Sayle  <roger@eyesopen.com>
1209
1210         * c-common.c (expand_unordered_cmp): Delete.
1211         (expand_tree_builtin): Delete.
1212         * c-common.h (expand_tree_builtin): Delete function prototype.
1213         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
1214
1215 2004-06-23  Richard Henderson  <rth@redhat.com>
1216
1217         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
1218         COMPONENT_REF variable fields unless they're non-constant.
1219
1220 2004-06-23  Robert Millan  <robertmh@gnu.org>
1221
1222         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
1223         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
1224           DYNAMIC_LINKER and register names in sc_ structure.
1225         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
1226         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
1227         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
1228         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
1229
1230         * config/kfreebsdgnu.h: Remove.
1231         * config/t-kfreebsd-gnu: Likewise.
1232         * config/i386/kfreebsdgnu.h: Likewise.
1233
1234 2004-06-23  Eric Christopher  <echristo@redhat.com>
1235
1236         * fold-const.c (make_range): Cleanup type checking through function.
1237         Remove orig_type. Replace with checks to exp_type and arg0_type.
1238         Clarify comment when converting from unsigned to signed.
1239
1240 2004-06-23  Eric Christopher  <echristo@redhat.com>
1241
1242         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
1243         * config/mips/mips.md: Remove R3000 scheduling description.
1244         * config/mips/3000.md: New file.
1245
1246 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1247
1248         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
1249         (s390_emit_jump): Likewise.
1250         * config/s390/s390.c (s390_emit_compare): New function.
1251         (s390_emit_jump): Likewise.
1252         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
1253         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
1254         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
1255         and s390_emit_jump.
1256         ("cjump"): Remove, replace by ...
1257         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
1258         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
1259         ("trap"): Fix type attribute.
1260         ("conditional_trap"): Use s390_emit_compare.
1261         ("doloop_si"): Remove, replace by ...
1262         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
1263         Merge existing splitter into insn_and_split.  Improve length default.
1264         ("doloop_di"): Merge with existing splitter into insn_and_split.
1265         ("doloop"): Adapt.
1266         ("jump"): Convert to expander.  Use s390_emit_jump.
1267         ("*jump_64", "*jump_31"): New insns.  Improve length default.
1268
1269 2004-06-23  Wu Yongwei  <adah@sh163.net>
1270
1271         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
1272         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
1273         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
1274         suitable function for interlocked compare-and-exchange.
1275         (__gthread_mutex_trylock): Use
1276         __GTHR_W32_InterlockedCompareExchange.
1277         (__gthread_mutex_init_function, __gthread_mutex_lock,
1278         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
1279         initial counter value to work correctly under Windows 95.
1280         * config/i386/gthr-win32.c: Adjust include order.
1281         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
1282         gthr-win32.h.
1283         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
1284         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
1285         to match inline versions in gthr-win32.h.
1286
1287 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
1288
1289         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
1290         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
1291         (insvdi_rshift_rlwimi_p): New function.
1292         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
1293         (extendsfdf2): Convert to define_insn_and_split.
1294         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
1295
1296 2004-06-23  Andrew Pinski  <apinski@apple.com>
1297
1298         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
1299         type qualifiers at all.
1300         If both of the type domains are null and the new element type is
1301         the same as one of the, return the one which the element type.
1302         matches.
1303         Do not call qualify_type on the new type.
1304
1305 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1306
1307         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
1308
1309 2004-06-23  Roger Sayle  <roger@eyesopen.com>
1310
1311         * convert.c (strip_float_extension): Skip both NOP_EXPR and
1312         CONVERT_EXPR floating point extensions.
1313
1314 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
1315
1316         * Makefile.in (tree-vn.o): New.
1317         (tree-ssa-pre.o): Don't depend on RTL_H.
1318         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
1319         * tree-flow.h (struct var_ann_d): Remove field expr_set.
1320         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
1321         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
1322         * tree-optimize.c (execute_init_datastructures): New local function.
1323         (pass_init_datastructures): New local variable.
1324         (init_tree_optimization_passes): Sequence pass_init_datastructures.
1325         * tree-pretty-print.c (MASK_POINTER): Remove.
1326         (dump_generic_node): Handle VALUE_HANDLE.
1327         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
1328         Update callers to use new function names.
1329         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
1330         variable annotations.
1331         * tree-ssa.c (init_tree_ssa): Call vn_init.
1332         (delete_tree_ssa): Call vn_delete.
1333         * tree-vn.c: New file.
1334         * tree.c (tree_size): Handle VALUE_HANDLE.
1335         (tree_node_structure): Likewise.
1336         (iterative_hash_expr): Likewise.
1337         * tree.def (VALUE_HANDLE): New code.
1338         * tree.h (struct tree_value_handle): New.
1339         (VALUE_HANDLE_ID): Define.
1340         (VALUE_HANDLE_EXPR_SET): Define.
1341         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
1342         (union tree_node): Add struct tree_value_handle.
1343
1344 2004-06-23  Andrew Pinski  <apinski@apple.com>
1345
1346         * c-typeck.c (composite_type):
1347         <case POINTER_TYPE>: Build a qualified type of
1348         the new type.
1349         <case ARRAY_TYPE>: Likewise.
1350         <case FUNCTION_TYPE>: Likewise.
1351
1352 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
1353
1354         PR optimization/15633
1355         * value-prof.c (divmod_fixed_value_transform): Compute probability
1356         of taking optimal path and pass along to gen_ routine.
1357         (mod_pow2_value_transform): Same.
1358         (mod_subtract_transform): Same.
1359         (gen_divmod_fixed_value): Add new probability parameter.
1360         Add probability to newly created jump.
1361         (gen_mod_pow2): Same.
1362         (gen_mod_subtract): Same.
1363
1364 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1365
1366         * PR target/15948
1367         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
1368         one and two.
1369
1370 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1371
1372         PR target/15927
1373         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
1374         reload if CLASS is BASE_REGS.
1375
1376 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
1377
1378         * gengtype-yacc.y (option): Avoid use of non-constant struct
1379         initializer.
1380
1381 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1382
1383         * doc/extend.texi (Function Attributes): Alphabetize.
1384
1385 2004-06-23  Richard Henderson  <rth@redhat.com>
1386
1387         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
1388         Use gimplify_and_add.
1389         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
1390         * gimplify.c (build_and_jump, gimplify_exit_expr,
1391         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
1392         gimplify_stmt, gimplify_expr): Likewise.
1393         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
1394         (gimplify_statement_list): Remove NULL entries.
1395         (gimplify_to_stmt_list): Handle NULL results.
1396         (gimplify_type_sizes): Add list_p argument.
1397         (gimplify_one_sizepos): Don't use internal pre/post queue.
1398         * tree-gimple.h (gimplify_type_sizes): Update.
1399
1400 2004-06-22  Eric Christopher  <echristo@redhat.com>
1401
1402         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
1403
1404 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
1405
1406         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
1407         when redirecting back edges.
1408
1409         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
1410         count/probability are set correctly.
1411
1412 2004-06-22  Richard Henderson  <rth@redhat.com>
1413
1414         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
1415         (c_finish_stmt_expr): Likewise.
1416
1417         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
1418         (ix86_return_in_memory): Move SSE vector return warning ...
1419         (ix86_struct_value_rtx): ... here.  New.
1420
1421 2004-06-22  Richard Henderson  <rth@redhat.com>
1422
1423         * tree.def (VTABLE_REF): Remove.
1424         (OBJ_TYPE_REF): New.
1425         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
1426         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1427         * fold-const.c (non_lvalue): Likewise.
1428         * gimplify.c (gimplify_expr): Likewise.
1429         (gimplify_call_expr): Use is_gimple_call_addr.
1430         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
1431         * langhooks.h (fold_obj_type_ref): New.
1432         * tree-gimple.c (is_gimple_call_addr): New.
1433         * tree-gimple.h (is_gimple_call_addr): Declare.
1434         * tree-inline.c (inlinable_function_p): Fix merge error.
1435         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1436         * tree-pretty-print.c (dump_generic_node): Likewise.
1437         (print_call_name): Handle OBJ_TYPE_REF.
1438         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
1439         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
1440         * tree.h (OBJ_TYPE_REF_EXPR): New.
1441         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
1442         * doc/c-tree.texi (VTABLE_REF): Remove.
1443         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
1444
1445 2004-06-22  Richard Henderson  <rth@redhat.com>
1446
1447         PR middle-end/16026
1448         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
1449
1450 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1451
1452         * Makefile.in (distclean): Don't try to remove empty directories.
1453
1454 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
1455
1456         PR target/15869
1457         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
1458
1459 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1460
1461         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
1462         operands.
1463
1464 2004-06-22  Dale Johannesen  <dalej@apple.com>
1465
1466         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
1467         global, rename rs6000_legitimate_offset_address_p.
1468         (rs6000_legitimate_address_p): Adjust calls to it.
1469         (lmw_operation): Ditto.
1470         (stmw_operation): Ditto.
1471         * config/rs6000/rs6000-protos.h: Declare it.
1472         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
1473         instead of offsettable_memref_p.
1474
1475 2004-06-22  Dale Johannesen  <dalej@apple.com>
1476
1477         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
1478         [reg+reg] mode for TFmode memory accesses.
1479         (rs6000_eliminate_indexed_memrefs): New.
1480         (rs6000_emit_move): Call preceding for TImode and TFmode.
1481
1482 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
1483
1484         * tree-cfg.c (pass_warn_function_return): It needs
1485         CFG, not SSA.
1486
1487 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1488
1489         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
1490         (Submodel Options): Likewise.
1491
1492 2004-06-21  Andrew Pinski  <apinski@apple.com>
1493
1494         Radar #: 3701874
1495         * c-decl.c (push_file_scope): Return early if we already
1496         have a file scope.
1497
1498 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
1499
1500         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
1501         * c-common.h (flag_pch_preprocess): Declare.
1502         (c_common_pch_pragma): Likewise.
1503         * c-common.c (flag_pch_preprocess): New.
1504         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
1505         (c_common_pch_pragma): New.
1506         * c-ppoutput.c (cb_read_pch): New.
1507         (init_pp_output): Support -fpch-preprocess.
1508         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
1509         * c.opt (fpch-preprocess): New.
1510         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
1511         * doc/cppopts.texi: Document -fpch-preprocess.
1512         * doc/invoke.texi (Precompiled Headers): Mention that
1513         -fpreprocessed is safe for PCH.  Mention that if an option is
1514         listed as safe that doesn't mean it does what you expect.
1515
1516 2004-06-22  Ben Elliston  <bje@au.ibm.com>
1517
1518         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
1519
1520 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1521
1522         * Makefile.in (gimplify.o): Add cgraph.h.
1523         * alias.c (adjust_offset_for_component_ref): Use
1524         component_ref_field_offset.
1525         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
1526         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
1527         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
1528         For decl, call gimplify_one_sizepos and use statement list.
1529         (gimplify_compound_literal_expr): New arg PRE_P.
1530         Add statement to PRE_P list and return DECL.
1531         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
1532         gimplify_compound_literal_expr.
1533         * c-tree.h (getdecls): Deleted.
1534         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
1535         (build_array_ref): Add two operands for ARRAY_REF.
1536         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
1537         COMPOUND_LITERAL_EXPR.
1538         * coverage.c (tree_coverage_counter_ref): Add new operands
1539         for ARRAY_REF.
1540         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
1541         for COMPONENT_REF.
1542         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
1543         and array_ref_element_size.
1544         (widen_memory_access):Use component_ref_field_offset.
1545         * explow.c (update_nonlocal_goto_save_area): Add two operands
1546         for ARRAY_REF.
1547         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
1548         (component_ref_field_offset): Likewise.
1549         (get_inner_reference): Use them.
1550         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
1551         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
1552         (fold_read_from_constant_string): Use array_ref_low_bound.
1553         Verify that result is a character type.
1554         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
1555         * function.c (expand_function_start): Likewise.
1556         * gimple-low.c (expand_var_p): Delete duplicated line.
1557         * gimplify.c: Add static decls for local functions.
1558         (cgraph.h): Now included.
1559         (create_tmp_var): Remove check for ARRAY_TYPE.
1560         (copy_if_shared_r): Look at bounds and sizes of types.
1561         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
1562         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
1563         (gimplify_save_expr, gimple_push_cleanup): Likewise.
1564         (gimplify_init_constructor): Likewise.
1565         WANT_VALUE now bool.
1566         If empty list with no result wanted, return GS_UNHANDLED.
1567         Add additional operands for ARRAY_REF and COMPONENT_REF.
1568         (canonicalize_component_ref): Convert to &array[L].
1569         (gimplify_array_ref_to_plus): Use array_ref_element_size and
1570         array_ref_lower_bound.
1571         (build_addr_expr_with_type, build_addr_expr): New functions.
1572         (gimplify_compound_lval): WANT_LVALUE now bool.
1573         Major rework to allow handle_component_p and initialize and
1574         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
1575         COMPONENT_REF.
1576         (gimplify_array_ref): Deleted.
1577         (gimplify_self_mod_expr): WANT_VALUE now bool.
1578         (gimplify_modify_expr): Gimplify to_p and from_p later.
1579         Factor out code into gimplify_modify_expr_rhs and call twice.
1580         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
1581         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
1582         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
1583         (gimplify_expr, case ARRAY_REF): Delete special case.
1584         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
1585         IMAGPART, and REALPART the same way.
1586         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
1587         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
1588         Call alloc_stmt_list instead of build_empty_stmt.
1589         Deal with _REF that's volatile.
1590         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
1591         (unshare_body, unvisit_body): New functions.
1592         (gimplify_body): Call them.
1593         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
1594         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
1595         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
1596         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
1597         like ARRAY_REF.
1598         (verify_expr, case ADDR_EXPR): Use handled_component_p.
1599         * tree-dfa.c (get_virtual_var): Likewise.
1600         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
1601         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
1602         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
1603         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
1604         and INDIRECT_REF.
1605         (get_base_address): Use handled_component_p.
1606         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
1607         * tree-inline.c (walk_tree): Walk more things for types and decls.
1608         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
1609         for ARRAY_REF and COMPONENT_REF.
1610         (mx_xform_derefs_1): Clean up usage of decl sizes.
1611         * tree-nested.c (build_addr): Use handled_component_p.
1612         (walk_stmts, case CATCH_EXPR): Add missing "break".
1613         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
1614         (finalize_nesting_tree_1): Likewise.
1615         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
1616         and process additional operands.
1617         (convert_local_reference): Likewise.
1618         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
1619         ARRAY_RANGE_REF similarly to ARRAY_REF.
1620         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
1621         like RECORD_TYPE.
1622         (dump_generic_node, case COMPONENT_REF): Print offset operand.
1623         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
1624         and print lower bound and element size for both.
1625         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
1626         * tree-sra.c (csc_build_component_ref): Add new operand.
1627         (scalarize_call_expr): Use get_base_address.
1628         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
1629         (maybe_fold_offset_to_array_ref): Rework to handle input having an
1630         ARRAY_REF, refine handling of lower bound, and add new operands
1631         for ARRAY_REF.
1632         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
1633         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
1634         (maybe_fold_stmt_addition): Only handle constant lower bound.
1635         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1636         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
1637         Look at new offset operand of COMPONENT_REF.
1638         * tree-ssa.c (set_is_used): Use handled_component_p.
1639         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
1640         (stabilize_reference, case COMPONENT_REF): Likewise.
1641         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
1642         (recompute_tree_invariant_for_addr_expr): Completely rework to
1643         be more precise.  Also set TREE_SIDE_EFFECTS.
1644         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
1645         (build2_stat, build3_stat, build4_stat): For references,
1646         propagate TREE_THIS_VOLATILE.
1647         (get_unwidened): Add new operand for COMPONENT_REF.
1648         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
1649         * tree.def (COMPONENT_REF): Add new operand.
1650         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
1651         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
1652         (component_ref_field_offset): Likewise.
1653         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
1654         (alpha_gimplify_va_arg): Likewise.
1655         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1656         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
1657         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
1658         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
1659         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1660         Likewise.
1661         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1662         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
1663         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
1664         Likewise.
1665         (xstormy16_expand_builtin_va_arg): Likewise.
1666         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
1667         * objc/objc-act.c (generate_static_references): Likewise.
1668         (generate_strings, build_method_prototype_list_template): Likewise.
1669         (generate_protocol_list): Likewise.
1670
1671 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1672
1673         PR rtl-optimization/14782
1674         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
1675         the address checks for secondary reloads for loads from and stores
1676         to floating-point registers.
1677         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
1678         in the address check.  Move work around for ELF32 targets to
1679         GO_IF_LEGITIMATE_ADDRESS.
1680         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
1681         correctly aligned for DImode loads and stores.  Don't allow long
1682         SFmode displacements on ELF32.
1683
1684 2004-06-21  Richard Henderson  <rth@redhat.com>
1685
1686         PR rtl-opt/16114
1687         * cse.c (merge_equiv_classes): Also rehash in response to
1688         delete_reg_equiv changes.
1689         (rehash_using_reg): Don't exclude REGs from rehashing.
1690
1691 2004-06-21  Richard Henderson  <rth@redhat.com>
1692
1693         * c-common.def (RETURN_STMT): Remove.
1694         * c-common.h (RETURN_STMT_EXPR): Remove.
1695         (c_expand_return, build_return_stmt): Remove.
1696         (c_common_stmt_codes): Remove RETURN_STMT.
1697         * c-dump.c (dump_next_stmt): Remove.
1698         (c_dump_tree): Remove RETURN_STMT.
1699         * c-decl.c (finish_function): Use c_finish_return.
1700         * c-parse.in (stmt): Likewise.
1701         * c-gimplify.c (gimplify_return_stmt): Remove.
1702         (c_gimplify_expr): Remove RETURN_STMT.
1703         * c-pretty-print.c (pp_c_statement): Likewise.
1704         * c-semantics.c (build_return_stmt): Remove.
1705         * c-tree.h (c_finish_return): Declare.
1706         * c-typeck.c (c_finish_return): Rename from c_expand_return.
1707         Return void.  Build RETURN_EXPR directly.
1708         * tree-dump.h (dump_next_stmt): Remove.
1709
1710 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
1711
1712         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
1713         look at TREE_ADDRESSABLE of symbol name.
1714
1715 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
1716
1717         PR target/15551
1718         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
1719         (allocate_stack_worker): Make unspec_volatile.
1720         (allocate_stack_worker_rex64):  Likewise.
1721         (allocate_stack_worker_postreload):  Likewise.
1722         (allocate_stack_worker_rex64_postreload):  Likewise.
1723
1724 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
1725
1726         Fix PR optimization/15982
1727         * tree-ssa-pre.c: Update a few comments and todos to
1728         reflect constants change.
1729         (get_value_handle): Constants now value number to themselves.
1730         (lookup): Constants lookup to themselves.
1731         (add_to_value): Adjust to always be on.
1732         (set_contains_value): Adjust for constants change.
1733         (find_leader): Ditto.
1734         (phi_translate): 'r' nodes are never ANTIC right now.
1735         (valid_in_set): Ditto.
1736         (get_expr_set): New function.
1737         (find_or_generate_expression): New function, broken out from
1738         insert_aux.
1739         (create_expression_by_pieces): Ditto, plus additional
1740         machinery to handle complex values.
1741         (compute_avail): Remove dead RETURN_EXPR handling.
1742
1743 2004-06-21  Steven Bosscher  <stevenb@suse.de>
1744
1745         * config/i386/i386.c: Include insn-codes.h
1746         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
1747         define here.
1748         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
1749         DIRFLAG_REG): New define_constants.  Use them everywhere.
1750
1751 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1752
1753         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
1754
1755 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
1756
1757         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
1758         (SUPPORT_SH4_SINGLE): Likewise.
1759         (TARGET_SWITCHES): Break out switches for cpu subtargets:
1760         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
1761         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
1762         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
1763         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
1764         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
1765         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
1766         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
1767         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
1768         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
1769         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
1770         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
1771         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
1772         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
1773         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
1774         (TARGET_DEFAULT): Likewise.
1775         * config/sh/t-elf: Amend comment.
1776         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
1777         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
1778         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
1779         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
1780         * config/sh/t-mlib-sh4-single: Likewise.
1781         * config/sh/t-mlib-sh4-single-only: Likewise.
1782         * config/sh/t-mlib-sh5-32media: Likewise.
1783         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
1784         * config/sh/t-mlib-sh5-64media: Likewise.
1785         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
1786         * config/sh/t-mlib-sh5-compact: Likewise.
1787         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
1788         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
1789         (MULTILIB_CPUS): Define.
1790         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1791         (MULTILIB_MATCHES): Use some shell code to calculate it.
1792         (MULTILIB_EXCEPTIONS): Change to ml/m1.
1793         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1794         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1795         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1796         (NO_PROFILE_COUNTERS): Define to 1.
1797         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1798         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1799         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1800         (MULTILIB_MATCHES): Don't zap.
1801         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1802         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1803         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1804         (MULTILIB_RAW_DIRNAMES): Define.
1805         (MULTILIB_DIRNAMES): Use it.
1806         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1807         (sh*linux configurations): Merge into:
1808         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
1809         --with-multilib-list options.  Support sh-superh-elf configuration.
1810         (sh*-netbsd*): Use SELECT_SH* macros.
1811         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1812         Merge sh*-*-netbsd* configurations into sh-elf configurations.
1813         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1814         * config/sh/t-monolib: Likewise.
1815
1816 2004-06-21  Paul Brook  <paul@codesourcery.com>
1817
1818         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1819         not imply FPA.
1820
1821 2004-06-21  Roger Sayle  <roger@eyesopen.com>
1822
1823         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1824         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
1825         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1826         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1827         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1828         and TRUTH_XOR_EXPR.
1829
1830 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1831
1832         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1833
1834 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1835
1836         * tree-alias-common.h (struct tree_alias_ops): Change ip and
1837         ip_partial to unsigned int.
1838
1839 2004-06-21  Richard Henderson  <rth@redhat.com>
1840
1841         * c-common.c (verify_sequence_points): Export.
1842         (c_expand_expr_stmt): Move to c-typeck.c.
1843         * c-common.h (c_expand_expr_stmt): Remove.
1844         (verify_sequence_points): Declare.
1845         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1846         * c-parse.in (for_init_stmt, stmt): Likewise.
1847         * c-tree.h (c_finish_expr_stmt): Declare.
1848         (c_tree_expr_nonnegative_p): Remove.
1849         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1850         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1851         (emit_side_effect_warnings): New.
1852         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
1853         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
1854         Use emit_side_effect_warnings.
1855         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1856         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1857         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1858         with void initializer.
1859         (gimplify_target_expr): Handle void BIND_EXPR initializer.
1860         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1861         INIT_EXPR and MODIFY_EXPR.
1862         * objc/objc-act.c (build_module_descriptor): Use add_stmt
1863         instead of c_expand_expr_stmt.
1864
1865 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1866
1867         * fold-const.c (fold_cond_expr_with_comparison):
1868         New function, extracted from fold.
1869         (fold): Extract code to fold A op B ? A : C, use
1870         it to fold A op B ? C : A.  Really optimize
1871         A & N ? N : 0 where N is a power of two.  Avoid
1872         relying on canonicalization and recursion for
1873         foldings of COND_EXPR to happen.
1874
1875 2004-06-20  David Ayers  <d.ayers@inode.at>
1876
1877         * objc/objc-act.h (get_object_reference): Rename to
1878         get_protocol_reference.
1879         (super_type): Rename to objc_super_type.
1880         (selector_type): Rename to objc_selector_type.
1881         (id_type): Rename to objc_id_type.
1882         (instance_type): Rename to objc_instance_type.
1883         (protocol_type): Rename to objc_protocol_type.
1884         (IS_ID): Update reference to id_type.
1885         * objc/objc-act.c (get_object_reference): Rename to
1886         get_protocol_reference; add documentation; update references to
1887         id_type.
1888         (lookup_method_in_protocol_list): Rename class_meth to
1889         is_class; add documentation.
1890         (finish_message_expr): Rename is_class to class_tree.
1891         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1892         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1893         build_next_objc_exception_stuff, get_arg_type_list,
1894         build_objc_method_call): Update references to id_type.
1895         (synth_module_prologue, build_objc_symtab_template,
1896         build_selector_reference_decl, build_selector,
1897         build_selector_translation_table, build_typed_selector_reference,
1898         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1899         synth_self_and_ucmd_args): Update references to selector_type.
1900         (build_private_template, build_ivar_reference): Update references
1901         to instance_type.
1902         (synth_module_prologue, build_protocol_reference,
1903         build_protocol_expr, start_protocol): Update references to
1904         protocol_type.
1905         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1906         Update references to super_type.
1907         * c-parse.in: (typespec_nonreserved_nonattr): Update
1908         references to get_object_reference.
1909         * objc/objc-tree.def: Add C mode identifier sequence.
1910
1911 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1912
1913         * loop-invariant.c: New file.
1914         * Makefile.in (loop-invariant.o): New.
1915         * cfgloop.h (global_cost_for_size, init_set_costs,
1916         move_loop_invariants): Declare.
1917         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1918         functions.
1919         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1920         variables.
1921         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1922         * loop-init.c (loop_optimizer_init): Call init_set_costs.
1923         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1924         (rest_of_compilation): Check flag_loop_optimize2.
1925         * toplev.c (process_options): Handle flag_loop_optimize2.
1926         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1927         * doc/passes.texi (loop-invariant.c): Document.
1928
1929 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1930
1931         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1932
1933 2004-06-20  Richard Henderson  <rth@redhat.com>
1934
1935         * stmt.c (warn_if_unused_value): Add locus argument.
1936         * tree.h (warn_if_unused_value): Update decl.
1937         * c-typeck.c (internal_build_compound_expr): Update call.
1938         * c-gimplify.c (gimplify_expr_stmt): Likewise.
1939
1940 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
1941
1942         PR middle-end/16089
1943         * builtins.c (entry_of_function): Move to ...
1944         * cfgrtl.c (entry_of_function): Here and make non-static.
1945         * integrate.c (emit_initial_value_sets): Use entry_of_function.
1946         * rtl.h (entry_of_function): Prototype.
1947
1948 2004-06-20  Roger Sayle  <roger@eyesopen.com>
1949
1950         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1951         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1952         TARGET_DECOMPOSE_LEA.
1953
1954 2004-06-20  Richard Henderson  <rth@redhat.com>
1955
1956         * c-common.h (add_decl_stmt): Move to cp-tree.h.
1957         * c-decl.c (finish_decl): Don't use add_decl_stmt.
1958         * c-parse.in: Likewise.
1959         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1960         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1961         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1962
1963 2004-06-20  Richard Henderson  <rth@redhat.com>
1964
1965         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1966         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1967         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1968         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1969         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1970         * c-pretty-print.c (pp_c_statement): Similarly.
1971         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1972         gimplify_if_stmt): Move to cp-gimplify.c.
1973         (c_genericize, c_gimplify_expr): Don't call them.
1974         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1975         * c-typeck.c (push_cleanup): New.
1976         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1977         c_finish_if_stmt): Use COND_EXPR.
1978         * tree.h (CLEANUP_EH_ONLY): Update documentation.
1979
1980 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
1981
1982         * c-common.h (has_c_linkage): New interface.
1983         * c-cppbuiltin.c: Include target.h.
1984         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1985         __PRAGMA_EXTERN_PREFIX when appropriate.
1986         * c-pragma.c: Include target.h.
1987         Document clarified semantics of symbol-renaming #pragmas.
1988         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1989         (maybe_apply_renaming_pragma): Rewrite according to clarified
1990         semantics.  Always recognize, but do not necessarily execute.
1991         (init_pragma): Unconditionally register symbol-renaming pragmas.
1992         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1993         and HANDLE_PRAGMA_EXTERN_PREFIX.
1994         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1995         and handle_pragma_extern_prefix flags.
1996         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1997         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1998         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1999         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
2000         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
2001         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
2002         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
2003         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
2004         not HANDLE_PRAGMA_EXTERN_PREFIX.
2005         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
2006         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
2007         into one section "Symbol-Renaming Pragmas"; clarify; document
2008         adjusted semantics.
2009
2010         * builtins.c (expand_builtin): Do not issue error for a builtin
2011         with no special case code and no DECL_ASSEMBLER_NAME; just do the
2012         library call.
2013         * c-decl.c (builtin_function): Don't call make_decl_rtl.
2014         * c-objc-common.c (has_c_linkage): Stub implementation.
2015         * cgraphunit.c (cgraph_expand_function)
2016         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
2017
2018 2004-06-19  Roger Sayle  <roger@eyesopen.com>
2019
2020         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
2021         instead of both an ARGLIST and a result TYPE.  Handle these C99
2022         comparison functions as "polymorphic" builtins.  Also handle
2023         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
2024         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
2025         Move handling of BUILT_IN_ISUNORDERED from here to there.
2026
2027 2004-06-19  Richard Henderson  <rth@redhat.com>
2028
2029         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
2030         * c-gimplify.c: Remove unnecessary prototypes.
2031         (c_gimplify_stmt): Merge into ...
2032         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
2033         * c-semantics.c (prep_stmt): Remove.
2034         * gimplify.c (annotate_one_with_locus): Break out from ...
2035         (annotate_all_with_locus): ... here.
2036         (gimplify_expr): Add locus to expressions even if pre/post queues
2037         are not present.
2038
2039 2004-06-19  Richard Henderson  <rth@redhat.com>
2040
2041         PR target/15941
2042         * function.c (assign_parms): If not padding upward or intentionally
2043         forcing upward padding, take offset_rtx into account when determining
2044         the alignment for stack_parm.
2045
2046 2004-06-19  Richard Henderson  <rth@redhat.com>
2047
2048         PR target/15550
2049         * ifcvt.c (noce_try_move): Recognize all generated instructions.
2050
2051 2004-06-19  Jan Hubicka  <jh@suse.cz>
2052
2053         * function.c (free_after_compilation): Do not free computed_goto_common*.
2054         * function.h (struct function): Kill computed_goto_common*.
2055         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
2056         * tree-cfg.c (disband_implicit_edges): Do not forward across the
2057         commonized computed goto.
2058
2059 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2060
2061         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
2062         in binutils.
2063
2064 2004-06-19  Andrew Pinski  <apinski@apple.com>
2065
2066         PR c++/15721
2067         * toplev.c (wrapup_global_declarations): Do not check
2068         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
2069         cgraph_varpool_node's needed field.
2070
2071 2004-06-19  Jan Hubicka  <jh@suse.cz>
2072             Steven Bosscher  <stevenb@suse.de>
2073
2074         CFG transparent RTL expansion:
2075         * Makefile.in (cfgexpand.o): New object file.
2076         (builtins.o): Add dependency on basic-block.h
2077         * builtins.c: Include basic-block.h
2078         (entry_of_function): New function.
2079         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
2080         * cfgexpand.c: New file.
2081         * expr.c (execute_expand, pass_expand): Kill.
2082         * pass.c (rest_of_compilation): Do not build CFG unless called from
2083         coverage code.
2084         * tree-cfg.c (delete_tree_cfg): Rename to..
2085         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
2086         * tree-flow.h (delete_tree_cfg_annotations): Declare.
2087         (dleete_tree_cfg): Kill.
2088         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
2089         (execute_del_cfg): Rename to...
2090         (execute_free_datastructures): This one...
2091         (pass_del_cfg): Rename to...
2092         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
2093         (init_tree_optimization_passes): Make cfg build and profiling to happen
2094         unconditionally.
2095
2096 2004-06-19  Steven Bosscher  <stevenb@suse.de>
2097
2098         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
2099         inserting the cache variables.
2100
2101         * tree-mudflap.c: Include headers to make basic_block available.
2102         Move functions around such that related functions are near each
2103         other.  Add prototypes for all static functions.  Add comments
2104         briefly explaining what IR the mudflap1 and mudflap2 work on and
2105         what they do.
2106         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
2107         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
2108         (pass_mudflap_1, pass_mudflap_2): Update.
2109         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
2110         function tree.
2111         (mf_build_check_statement_for): Make it work on the CFG.
2112         (mf_xform_derefs_1): Likewise.  Cleanup code style.
2113         (mf_xform_derefs): Likewise.
2114
2115 2004-06-19  Jan Hubicka  <jh@suse.cz>
2116
2117         * tree-cfg.c (label_to_block): Invent the label destination for
2118         undefined labels.
2119         (cleanup_dead_labels): Update table in the case label_to_block added
2120         new label.
2121
2122 2004-06-18  Richard Henderson  <rth@redhat.com>
2123
2124         PR c++/16036
2125         * gimple-low.c (lower_function_body): Generate return statement for
2126         fall off the end of the function here ...
2127         * tree-cfg.c (make_edges): ... instead of here.
2128         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
2129
2130 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2131
2132         * tree-ssa.c (raise_value): Removed.
2133         (get_eq_name, check_phi_redundancy): New functions.
2134         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
2135
2136 2004-06-18  Roger Sayle  <roger@eyesopen.com>
2137
2138         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
2139         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
2140         constant folding for unordered comparison tree nodes.  If both
2141         operands are real constants, call fold_relational_const.  If either
2142         operand is a NaN, evaluate the other for side-effects and return a
2143         constant.  Optimize (double)float1 CMP (double)float2 into the
2144         equivalent float1 CMP float2.
2145         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
2146         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
2147         LTGT_EXPR>: Call fold_relational_const for constant operands.
2148         (fold_relational_const): Add support for unordered comparison tree
2149         nodes.  Don't constant fold "ordered" floating point comparisons
2150         against NaN if when flag_trapping_math is set.
2151
2152 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
2153
2154         * fold-const.c (build_range_check): If !in_p and recursive call
2155         fails, exit immediately.  If high - low overflows and etype is
2156         a signed type, retry with unsigned etype.
2157         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
2158         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
2159
2160 2004-06-18  Richard Henderson  <rth@redhat.com>
2161
2162         * c-gimplify.c (gimplify_condition): Remove.
2163         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
2164         call it.
2165
2166 2004-06-18  Richard Henderson  <rth@redhat.com>
2167
2168         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
2169         switch estimates.
2170
2171 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
2172
2173         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
2174         (NORMAL_TEXT_SECTION_NAME): Define.
2175         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
2176         (SECTION_FORMAT_STRING): Define.
2177
2178 2004-06-18  Steven Bosscher  <stevenb@suse.de>
2179
2180         * config/xtensa/xtensa.c
2181         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
2182         * xtensa.md: Replace the old pipeline description with a DFA model.
2183
2184 2004-06-18  Steven Bosscher  <stevenb@suse.de>
2185             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2186
2187         * config/s390/s390.md: Remove the generic pipeline description.
2188         * config/s390/2064.md: Make all insn reservations apply to
2189         the z900, g5 and g6.
2190         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
2191         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2192         Define to hook_int_void_1.
2193         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
2194         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
2195
2196 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
2197                         Diego Novillo  <dnovillo@redhat.com>
2198
2199         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
2200         (create_stmt_ann): Ditto.
2201         (create_tree_ann): New function.
2202         (create_cst_ann): Remove.
2203         (create_expr_ann): Ditto.
2204
2205         * tree-flow-inline.h (cst_ann): Remove.
2206         (get_cst_ann): Ditto.
2207         (get_expr_ann): Ditto.
2208         (expr_ann): Ditto.
2209         (get_tree_ann): New function.
2210         (tree_ann): Ditto.
2211         (ann_type): tree_ann -> tree_ann_t.
2212         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
2213         (struct cst_ann_d): Removed.
2214         (struct expr_ann_d): Ditto.
2215         (union tree_ann_d): Removed cst and expr.
2216         (tree_ann): Renamed to tree_ann_t.
2217         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
2218         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
2219         annotation.
2220         (set_value_handle): Ditto.
2221         (phi_translate): Ditto.
2222         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
2223
2224 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2225
2226         * config/sh/t-linux64: New file.
2227         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
2228
2229 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
2230
2231         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
2232         (unshare_all_rtl_again): Call unshare_all_rtl_1.
2233         (unshare_all_rtl): New.
2234         * function.c (instantiate_virtual_regs): Remove parameters.
2235         * function.h (instantiate_virtual_regs): Add prototype.
2236         * rtl.h (unshare_all_rtl): Add prototype.
2237         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
2238         prototype.
2239         * passes.c: Remove assertions on the parameters to
2240         rest_of_handle_* functions.  Remove the parameters to
2241         the functions, replacing decl with current_function_decl
2242         and insns with get_insns ().
2243
2244 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2245
2246         * fold-const.c (constant_boolean_node): Handle boolean_type_node
2247         directly, return either boolean_true_node or boolean_false_node.
2248
2249 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
2250
2251         * opts.sh: Delete.  Break out generated code to next four files.
2252         * opt-gather.awk: New file.
2253         * optc-gen.awk: New file.
2254         * opth-gen.awk: New file.
2255         * opt-functions.awk: New common file.
2256         * Makefile.in: Update for above.
2257         * configure.ac: Update comment.
2258         * configure: Regenerate.
2259
2260 2004-06-17  Richard Henderson  <rth@redhat.com>
2261
2262         * c-common.c (flag_objc_sjlj_exceptions): New.
2263         * c-common.h (flag_objc_sjlj_exceptions): Declare.
2264         * c-opts.c (c_common_handle_option): Set it.
2265         (c_common_post_options): Handle interation of different
2266         objective-c exception and runtime switches.
2267         * c-decl.c (c_eh_initialized_p): New.
2268         (finish_decl): Use it instead of local eh_initialized_p.
2269         * c-parse.in (nested_function, notype_nested_function): Record
2270         the result of compstmt.
2271         (compstmt_or_error): Likewise.
2272         (compstmt): Don't add_stmt the result.
2273         (stmt): Don't return anything.  Rewrite objc try and sync rules.
2274         (objc_try_stmt, objc_catch_list): Remove.
2275         (objc_catch_block, objc_finally_block): Remove.
2276         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
2277         (objc_try_catch_clause, objc_finally_clause): New.
2278         (objc_try_catch_stmt): Rewrite.
2279         * c-tree.h (c_eh_initialized_p): Declare.
2280         * c-opt (fobjc-sjlj-exceptions): New.
2281         * except.c (output_function_exception_table): Don't call cgraph
2282         on non-decls.
2283         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
2284         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
2285         catch_count_stack, exc_binding_stack, if_nesting_count,
2286         blk_nesting_count, objc_enter_block, objc_exit_block,
2287         objc_declare_variable, val_stack_push, val_stack_pop,
2288         objc_build_try_enter_fragment, objc_build_extract_expr,
2289         objc_build_try_exit_fragment, objc_build_extract_fragment,
2290         objc_build_try_prologue, objc_build_try_epilogue,
2291         objc_build_catch_stmt, objc_build_catch_epilogue,
2292         objc_build_finally_prologue, objc_build_finally_epilogue,
2293         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
2294         objc_build_synchronized_epilogue): Remove.
2295         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
2296         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
2297         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
2298         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2299         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
2300         objc_begin_catch_clause, objc_finish_catch_clause,
2301         objc_build_finally_clause, objc_finish_try_stmt,
2302         objc_build_synchronized): New.
2303         (objc_is_object_id, objc_is_class_id): New.
2304         (objc_comptypes): Use them.
2305         (build_next_objc_exception_stuff): Break NeXT sjlj out from
2306         build_objc_exception_stuff.
2307         (synth_module_prologue): Update to match.
2308         (objc_build_throw_stmt): Use cur_try_context to decide if
2309         we're in a @catch.
2310         * objc/objc-act.h: Update prototypes.
2311         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
2312
2313 2004-06-17  Andrew Pinski <apinski@apple.com>
2314
2315         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
2316         Use TYPE_FIELDS instead of TYPE_VALUES.
2317
2318 2004-06-17  Jason Merrill  <jason@redhat.com>
2319
2320         PR c++/16015
2321         * gimplify.c (gimplify_target_expr): Handle void initializer.
2322         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
2323         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
2324         and AGGR_INIT_EXPR.
2325
2326 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2327
2328         * fold-const.c (fold_relational_const): Use constant_boolean_node.
2329
2330 2004-06-17  Jan Hubicka  <jh@suse.cz>
2331
2332         PR target/15433
2333         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
2334         operand numbering in the output template.
2335         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
2336
2337 2004-06-17  Jan Hubicka  <jh@suse.cz>
2338
2339         * except.c (can_throw_internal): Recognize RESX expresisons.
2340
2341 2004-06-17  Jan Hubicka  <jh@suse.cz>
2342
2343         * cfgbuild.c (make_edges): Do not use label_value_list.
2344         (find_basic_blocks_1): Do not collect label_value_list.
2345         (find_sub_basic_blocks): Update call of make_edges.
2346
2347 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
2348
2349         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
2350         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
2351         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
2352         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
2353         (get_v_may_def_result_ptr):  Return a def_operand_p.
2354         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
2355         (get_v_must_def_op_ptr):  Return a def_operand_p.
2356         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
2357         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
2358         (phi_element_for_edge):  Remove.
2359         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
2360         (propagate_tree_value):  Add new prototype.
2361         (phi_element_for_edge):  Remove prototype.
2362         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
2363         (prepare_operand_for_rename):  Split into two functions.
2364         (prepare_use_operand_for_rename):  Prepare use operands.
2365         (prepare_def_operand_for_rename):  Prepare def operands.
2366         (rewrite_stmt):  Use new operand types.
2367         (rewrite_operand):  Use new operand types, change parameter type.
2368         * tree-outof-ssa.c (replace_variable):  Split into two functions.
2369         (replace_use_variable):  Rewrite uses.
2370         (replace_def_variable):  Rewrite defs.
2371         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
2372         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
2373         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
2374         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
2375         (ccp_fold, replace_uses_in):  Use new operand types.
2376         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
2377         and no longer set the value, change parameter type.
2378         (replace_exp_1):  Use new operand types.
2379         (propagate_value):  Change parameter type, use new operand types.
2380         (propagate_tree_value):  Propagate_value without SSA operands.
2381         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
2382         (cprop_into_successor_phis):  Use new operand types.
2383         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
2384         (eliminate_redundant_computations):  Use new operand types.
2385         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
2386         (fix_stmt_v_may_defs):  Use new operand_types.
2387         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
2388         (build_tree_conflict_graph):  Use new operand_types.
2389         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
2390         * tree-ssa-operands.c (struct freelist_d):  Remove.
2391         (check_optype_freelist, add_optype_freelist):  Remove.
2392         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2393         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
2394         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2395         Call ggc_free instead of add_optype_freelist.
2396         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
2397         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
2398         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
2399         (struct use_optype_d):  Change underlying type.
2400         (def_operand_p, use_operand_p):  New types for pointers to operands.
2401         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
2402         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
2403         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
2404         pointer types.
2405         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
2406         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
2407         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
2408         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
2409         PHI result as an operand.
2410         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
2411         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
2412         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
2413         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
2414         PHI_ARG_DEF_FROM_EDGE.
2415         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
2416         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
2417
2418 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2419
2420         PR tree-optimization/15991
2421         * tree-cfg.c (tree_block_label): Export.
2422         * tree-flow-inline.h (bsi_after_labels): New function.
2423         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
2424         * tree-ssa.c (propagate_into_addr): New function.
2425         (replace_immediate_uses): Handle propagation of pointer constants.
2426         (raise_value): Do not restrict propagation of pointer constants.
2427         * tree-ssanames.c (duplicate_ssa_name): New function.
2428         * tree.h (duplicate_ssa_name): Declare.
2429
2430 2004-06-17  David Ayers  <d.ayers@inode.at>
2431
2432         * c-parse.in: Unify Objective-C token names.
2433
2434 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2435
2436         Bug 14610
2437         * Makefile.in (min-insn-modes.o): Correct dependencies.
2438         * real.c (encode_ieee_extended, decode_ieee_extended): Always
2439         produce/consume 12-byte little-endian Intel format.
2440         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
2441         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
2442         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
2443         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
2444         New functions which convert between 12-byte little-endian Intel
2445         format and the desired format.
2446         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
2447         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
2448         Update.
2449
2450 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2451
2452         * expmed.c (expand_mult_const): In sanity check, compare only
2453         the bits of val and val_so_far that are significant in the
2454         result mode.
2455
2456 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
2457
2458         * tree-ssa-pre.c:  Update comments.
2459         (val_expr_pair_eq): Factor code from here.
2460         (expr_pred_trans_eq): and here.
2461         (expressions_equal_p): To here.
2462         (print_value_set): Print value for expression.
2463         (phi_trans_lookup): Rename some variables.
2464         (lookup): Ditto.
2465         (value_exists_in_set_bitmap): Ditto.
2466         (value_remove_from_set_bitmap): Ditto.
2467         (value_insert_into_set_bitmap): Ditto.
2468
2469 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
2470
2471         * config/s390/s390-modes.def (CCL3mode): New machine mode.
2472         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
2473         (s390_alc_comparison, s390_slb_comparison): Likewise.
2474         (s390_branch_condition_mask): Likewise.
2475         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
2476         ("*subsi3_cc2", "*subsi3_cconly2"): New.
2477
2478         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
2479         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
2480         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2481         Handle SIGN_EXTEND and ZERO_EXTEND.
2482
2483         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
2484         * config/s390/s390.c (s390_expand_addcc): New function.
2485         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
2486         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
2487         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
2488
2489 2004-06-17  Ben Elliston  <bje@au.ibm.com>
2490
2491         * tree-alias-common.c: Add whitespace.
2492         * tree-inline.c: Correct comment about this file's purpose.
2493         * tree-optimize.c: Likewise.
2494         * tree-tailcall.c: Likewise.
2495
2496         * tree-alias-ander.h: Add standard top-of-file comment.
2497         * tree-alias-common.h: Likewise.
2498         * tree-alias-type.h: Likewise.
2499
2500 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2501
2502         * tree-ssa-pre.c (compute_avail): Value number uses as well.
2503         Strip useless type conversions.
2504         Casts have to be treated slightly different than normal unaries.
2505
2506 2004-06-16  Richard Henderson  <rth@redhat.com>
2507
2508         * c-common.def (COMPOUND_STMT): Remove.
2509         * c-common.c (finish_fname_decls): Don't look through it.
2510         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
2511         * c-common.h (COMPOUND_BODY): Remove.
2512         (c_common_stmt_codes): Remove COMPOUND_STMT.
2513         * c-dump.c (c_dump_tree): Likewise.
2514         * c-gimplify.c (c_gimplify_stmt): Likewise.
2515         * c-pretty-print.c (pp_c_statement): Likewise.
2516         * tree.h (DECL_SAVED_TREE): Update commentary.
2517         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
2518         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
2519         (GOTO_EXPR): Rename from GOTO_STMT.
2520         (GOTO_FAKE_P): Remove.
2521         (COMPOUND_STMT): Remove.
2522         (HANDLER): Update wrt COMPOUND_STMT.
2523         (STMT_EXPR): Likewise.
2524         (LABEL_EXPR): Rename from LABEL_STMT.
2525         (SCOPE_STMT): Remove.
2526         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
2527         through COMPOUND_STMT.
2528
2529 2004-06-16  Richard Henderson  <rth@redhat.com>
2530
2531         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
2532         c_finish_while_stmt_cond): Remove decls.
2533         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
2534         * c-typeck.c (c_begin_if_stmt): Return void.
2535         (c_begin_else): Tidy.  Save stmt_count.
2536         * c-tree.h (c_begin_if_stmt): Update decl.
2537
2538         * objc/objc-act.c (objc_build_try_enter_fragment,
2539         objc_build_extract_fragment, objc_build_try_epilogue,
2540         objc_build_catch_stmt, objc_build_catch_epilogue,
2541         objc_build_finally_prologue, objc_build_finally_epilogue): Update
2542         for if builder function changes.
2543
2544 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
2545
2546         * config/s390/s390.c (struct machine_function):  New member
2547         last_restore_gpr.
2548         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
2549         Do not modify machine->save_return_addr_p or regs_ever_live.
2550         Fill in machine->last_restore_gpr.
2551         (s390_optimize_prolog): Use s390_frame_info to compute registers
2552         to save/restore, remove duplicated code.
2553         (s390_arg_frame_offset): Use s390_frame_info to compute frame
2554         size, remove duplicated code.
2555         (s390_emit_prologue): Adapt s390_frame_info call.  Update
2556         machine->save_return_addr_p and regs_ever_live.
2557         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
2558         machine->last_save_gpr.
2559
2560 2004-06-16  Richard Henderson  <rth@redhat.com>
2561
2562         * c-parse.in (if_stmt_locus): Remove.
2563         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
2564         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
2565         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
2566         empty_locus.  Add stmt_count, saw_else.
2567         (c_begin_if_stmt): Push if_stack here.
2568         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
2569         (c_finish_then, c_finish_else): Record empty_locus.
2570         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
2571         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
2572         if or else body.
2573         * c-tree.h: Update prototypes.
2574
2575 2004-06-16  Steven Bosscher  <stevenb@suse.de>
2576
2577         * tree.h (PHI_CHAIN): New.
2578         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
2579         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
2580         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
2581         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
2582         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
2583         when traversing a list of PHI_NODEs.
2584
2585 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
2586
2587         PR target/13292
2588         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
2589         on -msoft-float.
2590         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
2591         68040 and soft-float.
2592         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
2593         in the TARGET_68040_ONLY case.
2594
2595 2004-06-16 Peter Barada  <peter@the-baradas.com>
2596
2597         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
2598         (movsi_cf): Make named, don't match TARGET_CFV4.
2599         (pushexthisi_const): Use mov3q if possible.
2600         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
2601         to special case mvz.w for ColdFire V4.
2602         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
2603         to special case mvz.b for ColdFire V4.
2604         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
2605         divide.
2606         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
2607         * config/m68k/m68k.c(valid_mov3q_const):  New function.
2608         (const_method): SWAP is valid for ColdFire.
2609         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
2610         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
2611
2612 2004-06-16  Richard Henderson  <rth@redhat.com>
2613
2614         * c-common.def (CASE_LABEL): Remove.
2615         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
2616         (match_case_to_enum_1): Likewise.
2617         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
2618         * c-dump.c (c_dump_tree): Likewise.
2619         * c-gimplify.c (c_gimplify_stmt): Likewise.
2620         * c-pretty-print.c (pp_c_statement): Likewise.
2621         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
2622         * tree.h (CASE_LOW): Update commentary.
2623
2624 2004-06-16  Richard Henderson  <rth@redhat.com>
2625
2626         * c-common.def (ASM_STMT): Remove.
2627         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
2628         * c-dump.c (c_dump_tree): Likewise.
2629         * c-gimplify.c (c_gimplify_stmt): Likewise.
2630         * c-pretty-print.c (pp_c_statement): Likewise.
2631         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
2632         * tree.h: Fix commentary.
2633
2634 2004-06-16  Richard Henderson  <rth@redhat.com>
2635
2636         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
2637         * c-common.c (c_add_case_label): Use LABEL_EXPR.
2638         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
2639         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
2640         * c-dump.c (c_dump_tree): Likewise.
2641         * c-gimplify.c (c_gimplify_stmt): Likewise.
2642         * c-pretty-print.c (pp_c_statement): Likewise.
2643         * c-parse.in (stmt): Use GOTO_EXPR.
2644         (label): Use LABEL_EXPR.
2645         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
2646         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
2647
2648 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2649
2650         * cfgcleanup.c (try_simplify_condjump): Update test to make
2651         sure we have a conditional branch around am unconditional branch.
2652
2653 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2654
2655         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2656
2657 2004-06-16  Dale Johannesen  <dalej@apple.com>
2658
2659         * loop.c (loop_givs_reduce): Avoid miscompilation of
2660         loops entered at bottom.
2661
2662 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2663
2664         * cfglayout.c (fixup_reorder_chain): Handle case where the
2665         destination of E_FALL is EXIT_BLOCK_PTR.
2666
2667 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2668
2669         PR target/15653
2670         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
2671         after shifts before asm.
2672
2673 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2674
2675         PR tree-optimization/15993
2676         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
2677         destination is unchanged.
2678
2679 2004-06-16  Andreas Jaeger  <aj@suse.de>
2680
2681         * doc/install.texi (Configuration): Update description for
2682         --enable-version-specific-runtime-libs.
2683
2684 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2685
2686         * doc/install.texi: boehm-gc now uses automake 1.8.5.
2687
2688 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2689
2690         * toplev.h (rest_of_compilation): Adjust prototype.
2691
2692 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2693
2694         * coverage.c: Remove argument to rest_of_compilation.
2695         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
2696         * passes.c (rest_of_compilation): Remove argument.
2697         (pass_rest_of_compilation): New.
2698         (rest_of_handle_final, rest_of_handle_delay_slots,
2699         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
2700         rest_of_handle_machine_reorg, rest_of_handle_regrename
2701         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
2702         rest_of_handle_regmove, rest_of_handle_tracer
2703         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
2704         rest_of_handle_web, rest_of_handle_branch_prob
2705         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
2706         rest_of_handle_addressof, rest_of_handle_jump_bypass
2707         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
2708         Check that the two arguments are actually superfluous.
2709         * tree-optimize.c (register_dump_files): Add properties argument.
2710         Track validity of passes.  Only initialize dump files for
2711         tree-based passes.  Store the full set of provided passes in
2712         the pass.
2713         (init_tree_optimization_passes): Register pass_expand and
2714         pass_rest_of_compilation.
2715         (execute_one_pass): Do not track the presence of required properties
2716         here.  Set in_gimple_form.  Do not update current_properties.
2717         (current_properties): Remove.
2718         (set_save_expr_context): Remove.
2719         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
2720         expand to RTL here, and do not call rest_of_compilation.  Push
2721         GGC context even before gimplification.
2722         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
2723         (pass_expand, pass_rest_of_compilation): Declare.
2724
2725 2004-06-15  Jeff Law  <law@redhat.com>
2726
2727         * fold-const.c (swap_tree_comparison): No longer static.
2728         (tree_swap_operands_p): Similarly.  Return true if both operands
2729         are SSA_NAMEs and the first operand has a higher version number than
2730         the second operand.
2731         * tree.h (swap_tree_comparison): Prototype.
2732         (tree_swap_operands_p): Prototype.
2733         * tree-ssa-operands.c (get_expr_operands): For commutative
2734         operators and relational comparisons, canonicalize the
2735         order of the operands.
2736
2737 2004-06-15  Richard Henderson  <rth@redhat.com>
2738
2739         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
2740         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
2741         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
2742         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
2743         (finish_fname_decls, fname_decl): Use statement_lists.
2744         (c_expand_expr_stmt): Don't set last_expr_type.
2745         (c_type_hash): Fix indentation.
2746         (c_safe_from_p): Don't follow TREE_CHAIN.
2747         (c_tree_chain_matters_p): Remove.
2748         * c-common.def (SCOPE_STMT): Remove.
2749         (CLEANUP_STMT): Redefine to contain its own body.
2750         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
2751         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
2752         Add x_cur_stmt_list.
2753         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
2754         (cur_stmt_list): New.
2755         (STATEMENT_LIST_STMT_EXPR): New.
2756         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
2757         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
2758         (CLEANUP_BODY): New.
2759         (CLEANUP_DECL): Move to operand 2.
2760         (c_common_stmt_codes): Remove SCOPE_STMT.
2761         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
2762         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
2763         (c_push_function_context, c_pop_function_context): Don't save it.
2764         (finish_decl): Set TREE_USED on the decl for a cleanup.
2765         Use push_cleanup.
2766         (store_parm_decls): Use statement lists.
2767         (finish_function): Remove compstmt rule workaround.  Use statement
2768         lists.  Call finish_fname_decls after finalizing the body.
2769         (c_begin_compound_stmt): Move to c-typeck.c.
2770         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
2771         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
2772         (c_genericize): Invoke them.
2773         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
2774         (c_build_bind_expr): Export.
2775         (gimplify_block, gimplify_cleanup): Remove.
2776         (gimplify_condition): Use gimplify_stmt.
2777         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
2778         (gimplify_if_stmt): Remove recursion hack.
2779         (c_gimplify_expr): Remove STMT_EXPR handling.
2780         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
2781         (is_last_stmt_of_scope): Remove.
2782         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
2783         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
2784         c_end_compound_stmt.
2785         * c-objc-common.c (build_cdtor): Likewise.
2786         * c-parse.in (primary): Use c_finish_stmt_expr.
2787         (push_scope, pop_scope): Remove.
2788         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
2789         (c99_block_end, compstmt): Use c_end_compound_stmt.
2790         (c99_block_lineno_labeled_stmt): Likewise.
2791         (compstmt_primary_start): Use c_begin_stmt_expr.
2792         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2793         (do_stmt_start): Fill in body directly.
2794         (lineno_stmt): Avoid setting lineno on constants.
2795         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2796         Remove SCOPE_STMT.
2797         * c-semantics.c (begin_stmt_tree): Remove.
2798         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2799         (add_stmt): Use statement lists.
2800         (add_scope_stmt, finish_stmt_tree): Remove.
2801         (push_cleanup): New.
2802         * c-tree.h: Move some decls from c-common.h.
2803         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2804         (do_case, c_finish_case): Likewise.
2805         (c_finish_then): Take body for then as argument.
2806         (c_finish_else): Similarly.
2807         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2808         c_finish_for_stmt_incr, c_finish_for_stmt): New.
2809         (c_begin_stmt_expr, c_finish_stmt_expr): New.
2810         (c_begin_compound_stmt): Do scope management.
2811         (c_end_compound_stmt): New.
2812         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2813         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2814         Look through exception handling constructs.
2815         (gimplify_bind_expr): Accept temporary argument.
2816         (gimplify_target_expr): Special case BIND_EXPR bodies.
2817         (gimplify_expr): Handle fallback == fb_none like a statement.
2818         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2819         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2820         * langhooks.h (tree_chain_matters_p): Remove.
2821         * stub-objc.c (objc_clear_super_receiver): New.
2822         * tree-gimple.h (voidify_wrapper_expr): Update decl.
2823         (append_to_statement_list, append_to_statement_list_force): Move
2824         to tree-iterator.h.
2825         * tree-inline.c (expand_call_inline): Update call.
2826         (clone_body): Use statement lists.
2827         (walk_tree): Don't check tree_chain_matters_p.
2828         (copy_tree_r): Likewise.
2829         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2830         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2831         * tree-iterator.h (append_to_statement_list,
2832         append_to_statement_list_force): Moved from tree-gimple.h.
2833         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2834         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2835         (objc_enter_block): Likewise.
2836         (objc_exit_block): Use c_end_compound_stmt.
2837         (objc_build_try_enter_fragment): Add #error and comment for
2838         rewriting for OBJCPLUS.
2839         (objc_build_extract_fragment, objc_build_try_epilogue,
2840         objc_build_catch_stmt, objc_build_finally_prologue,
2841         objc_build_finally_epilogue): Update for C statement builders.
2842         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2843         Remove.
2844
2845 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2846
2847         * df.c (df_reg_clobber_gen): Removed.
2848         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2849         Make more effective for hard regs.
2850         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2851
2852 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
2853
2854         * c-pragma.h (c_lex_string_translate): Change type to int.
2855         * c-parse.in: Change all assignments of c_lex_string_translate
2856         to true and false to 1 and 0.
2857         * c-lex.c (c_lex_string_translate): Likewise.
2858         (lex_string): Convert string without translation in the -1
2859         case.
2860
2861 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
2862
2863         * convert.h: Add include guards
2864
2865 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2866
2867         * tree-flow-inline.h: Document all functions.
2868
2869 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2870
2871         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2872         * tree-dfa.c (create_stmt_ann): Ditto.
2873         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2874         * tree-inline.c (estimate_num_insns_1): Ditto.
2875         * tree.c (tree_size): Ditto.
2876         (make_node_stat): Ditto.
2877         (tree_node_structure): Ditto.
2878         (ephi_node_elt_check_failed): Remove.
2879         (is_essa_node): Ditto.
2880         * tree.def (EPHI_NODE): Ditto.
2881         (EEXIT_NODE): Ditto.
2882         (EUSE_NODE): Ditto.
2883         (EKILL_NODE): Ditto.
2884         * tree.h (EREF_NODE_CHECK): Remove.
2885         (EPHI_NODE_ELT_CHECK): Ditto.
2886         (struct tree_eref_common): Ditto.
2887         (struct tree_euse_node): Ditto.
2888         (struct ephi_arg_d): Ditto.
2889         (struct tree_ephi_node): Ditto.
2890         (ephi_node_elt_check_failed): Remove prototype.
2891         (is_essa_node): Ditto.
2892         (enum tree_node_structure_enum): Remove TS_E*_NODE.
2893         (union tree_node): Remove E*_NODE uses.
2894
2895 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2896
2897         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2898         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2899         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2900         Likewise.
2901         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2902         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2903         expand_builtin_strcmp, expand_builtin_strncmp,
2904         expand_builtin_frame_address): Likewise.
2905         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2906         insert_one_insn): Likewise.
2907         * calls.c (prepare_call_address, precompute_register_parameters,
2908         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2909         * cfganal.c (flow_active_insn_p): Likewise.
2910         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2911         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2912         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2913         make_extraction, recog_for_combine, gen_lowpart_for_combine,
2914         simplify_comparison, record_dead_and_set_regs_1,
2915         record_dead_and_set_regs, record_promoted_value,
2916         check_promoted_subreg, get_last_value_validate, get_last_value,
2917         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2918         unmentioned_reg_p_1): Likewise.
2919         * conflict.c (mark_reg): Likewise.
2920         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2921         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2922         merge_equiv_classes, flush_hash_table, invalidate,
2923         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2924         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2925         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2926         record_jump_cond, cse_insn, addr_affects_sp_p,
2927         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2928         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2929         cse_cc_succs, cse_condition_code_reg): Likewise.
2930         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2931         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2932         cselib_record_set, cselib_record_sets): Likewise.
2933         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2934         dbxout_block): Likewise.
2935         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2936         * dojump.c (do_jump): Likewise.
2937         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2938         is_based_loc, rtl_for_decl_location): Likewise.
2939         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2940         set_decl_incoming_rtl, mark_user_reg): Likewise.
2941         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2942         copy_to_suggested_reg, allocate_dynamic_stack_space,
2943         probe_stack_range, hard_function_value): Likewise.
2944         * expmed.c (store_bit_field, store_fixed_bit_field,
2945         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2946         extract_split_bit_field, expand_divmod, emit_store_flag_force):
2947         Likewise.
2948         * expr.c (convert_move, convert_modes,
2949         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2950         use_group_regs, emit_move_insn, emit_move_insn_1,
2951         compress_float_constant, push_block, emit_single_push_insn,
2952         emit_push_insn, get_subtarget, expand_assignment, store_expr,
2953         store_constructor, store_field, force_operand, safe_from_p,
2954         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2955         Likewise.
2956         * final.c (profile_function, final_scan_insn, alter_subreg,
2957         get_mem_expr_from_op, output_asm_operand_names, output_operand,
2958         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2959         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2960         find_regno_partial, propagate_one_insn, init_propagate_block_info,
2961         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2962         attempt_auto_inc, find_auto_inc, mark_used_regs,
2963         count_or_remove_death_notes_bb): Likewise.
2964         * function.c (find_temp_slot_from_address, update_temp_slot_address,
2965         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2966         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2967         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2968         purge_single_hard_subreg_set, instantiate_decl,
2969         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2970         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2971         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2972         expand_function_start, diddle_return_value, clobber_return_register,
2973         expand_function_end, keep_stack_depressed, handle_epilogue_set,
2974         update_epilogue_consts): Likewise.
2975         * genemit.c (gen_exp, gen_insn): Likewise.
2976         * genrecog.c (make_insn_sequence): Likewise.
2977         * global.c (global_conflicts, expand_preferences, mark_reg_store,
2978         mark_reg_conflicts, set_preference, reg_becomes_live,
2979         build_insn_chain, mark_reg_change): Likewise.
2980         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2981         Likewise.
2982         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2983         Likewise.
2984         * integrate.c (copy_rtx_and_substitute, try_constants,
2985         subst_constants, mark_stores, allocate_initial_values): Likewise.
2986         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2987         delete_computation, rtx_renumbered_equal_p, true_regnum,
2988         reg_or_subregno): Likewise.
2989         * lcm.c (reg_dies, reg_becomes_live): Likewise.
2990         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2991         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2992         wipe_dead_reg, no_conflict_p): Likewise.
2993         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2994         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2995         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2996         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2997         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2998         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2999         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
3000         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
3001         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
3002         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
3003         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
3004         try_swap_copy_prop): Likewise.
3005         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
3006         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
3007         Likewise.
3008         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
3009         reload_cse_simplify_operands, reload_combine,
3010         reload_combine_note_store, reload_combine_note_use,
3011         reload_cse_move2add, move2add_note_store): Likewise.
3012         * print-rtl.c (print_rtx): Likewise.
3013         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
3014         contains_pseudo, handle_asm_insn): Likewise.
3015         * ra-debug.c (ra_print_rtx_object, dump_constraints,
3016         dump_static_insn_cost): Likewise.
3017         * ra-rewrite.c (slots_overlap_p, emit_colors,
3018         remove_suspicious_death_notes): Likewise.
3019         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
3020         register_operand, scratch_operand, nonmemory_operand,
3021         constrain_operands): Likewise.
3022         * reg-stack (check_asm_stack_operands, remove_regno_note,
3023         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
3024         subst_asm_stack_regs): Likewise.
3025         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
3026         record_address_regs, reg_scan_mark_refs): Likewise.
3027         * regmove.c (discover_flags_reg, replacement_quality,
3028         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
3029         fixup_match_1): Likewise.
3030         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
3031         kill_set_value, copyprop_hardreg_forward_1): Likewise.
3032         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
3033         reload_inner_reg_of_subreg, can_reload_into, push_reload,
3034         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
3035         operands_match_p, decompose, find_reloads, find_reloads_toplev,
3036         find_reloads_address, subst_indexed_address, find_reloads_address_1,
3037         find_reloads_subreg_address, find_replacement,
3038         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
3039         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
3040         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
3041         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
3042         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
3043         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
3044         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
3045         do_output_reload, emit_reload_insns, gen_reload,
3046         delete_address_reloads_1, inc_for_reload): Likewise.
3047         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
3048         update_reg_unused_notes, fill_slots_from_thread): Likewise.
3049         * resource.c (update_live_status, mark_referenced_resources,
3050         mark_set_resources, mark_target_live_regs): Likewise.
3051         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
3052         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
3053         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
3054         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
3055         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
3056         parms_set, find_first_parameter_load, keep_with_call_p,
3057         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
3058         num_sign_bit_copies1): Likewise.
3059         * rtlhooks.c (gen_lowpart_general): Likewise.
3060         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
3061         sched_analyze): Likewise.
3062         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
3063         Likewise.
3064         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
3065         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
3066         simplify_binary_operation, simplify_const_relational_operation,
3067         simplify_subreg): Likewise.
3068         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
3069         expand_end_stmt_expr, expand_return, expand_decl,
3070         expand_anon_union_decl): Likewise.
3071         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
3072         find_splittable_regs, find_splittable_givs, find_common_reg_term,
3073         loop_iterations): Likewise.
3074         * var-tracking.c (variable_union, variable_part_different_p,
3075         variable_different_p, count_uses, add_uses, add_stores,
3076         compute_bb_dataflow, set_variable_part, delete_variable_part,
3077         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
3078         Likewise.
3079         * varasm.c (assemble_variable): Likewise.
3080
3081 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
3082
3083         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
3084         definition.
3085         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
3086         #undef and #if 0'd definition.
3087
3088 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
3089
3090         * combine.c (distribute_notes): Comment typo fix.
3091
3092 2004-06-15  Roger Sayle  <roger@eyesopen.com>
3093
3094         * expmed.c (synth_mult): Mask bits of the multiplier to the
3095         machine mode of the multiplication.  Don't consider shifts
3096         by more than (or equal to) the width of the operation's mode.
3097
3098 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3099
3100         * doc/install.texi: Yet another update for autoconf
3101         and automake versions.
3102
3103 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3104
3105         * function.h (struct function): Remove cannot_inline field.
3106         (current_function_cannot_inline): Remove.
3107         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
3108         Simplify conditionals to ignore warn_return_type.
3109         * tree-optimize.c (tree_rest_of_compilation): Do not reset
3110         DECL_DEFER_OUTPUT.
3111         * objc/objc-act.c (build_module_descriptor, finish_method_def):
3112         Do not set current_function_cannot_inline.
3113
3114 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
3115
3116         * cfglayout.c (fixup_reorder_chain): Handle case where the
3117         destination of E_TAKEN is EXIT_BLOCK_PTR.
3118
3119 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
3120
3121         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
3122
3123 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3124
3125         * fold-const.c (operand_equal_p): Update comment.
3126
3127 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3128
3129         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
3130         (INCOMING_RETURN_ADDR_RTX): Define.
3131         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
3132         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
3133         __builtin_return_address(0).
3134         (m32r_return_addr): Added for __builtin_return_address(0).
3135         (m32r_reload_lr): Ditto.
3136
3137         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
3138
3139 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3140
3141         * doc/install.texi (Prerequisites): Update libbanshee,
3142         fastjar, libcpp, libjava/libltdl entries to
3143         automake 1.8.5.
3144
3145 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3146             Olivier Hainque  <hainque@act-europe.fr>
3147
3148         * function.c (fixup_var_refs): Also adjust the start of sequence
3149         after fixing up the insns.
3150
3151 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3152
3153         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
3154
3155 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
3156
3157         * doc/install.texi (Prerequisites): Update libstdc++ entry to
3158         automake 1.8.5.
3159
3160 2004-06-14  Eric Christopher  <echristo@redhat.com>
3161
3162         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
3163         to -mtpf-trace (-mno-tpf-trace).
3164         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
3165         documentation.
3166
3167 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
3168
3169         * real.c: Fix bit count in head comment.
3170
3171 2004-06-14  Jeff Law  <law@redhat.com>
3172
3173         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
3174         PHIs where the destination or an argument is marked with
3175         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3176
3177 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
3178
3179         PR middle-end/15945
3180         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
3181         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
3182
3183 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3184
3185         * opts.sh (var_args): Fix regexp.
3186
3187 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
3188
3189         PR target/15178
3190         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3191
3192 2004-06-14  Paul Brook  <paul@codesourcery.com>
3193
3194         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
3195
3196 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3197
3198         * Makefile.in (FLAGS_H): New.
3199         (flags.h): Replace by FLAGS_H.
3200         * c.opt: Document Var, VarExists, Init and Report attributes.
3201         * common.opt: Fill the values of the attributes.
3202         * diagnostic.c (flag_fatal_errors): Do not define.
3203         * except.c (flag_non_call_exceptions): Do not define.
3204         * flags.h: Include options.h.  Remove declarations conflicting with
3205         the automatically defined ones.
3206         * opts.c: Remove automatically defined variables.
3207         (handle_option): Perform default initialization.
3208         (common_handle_option): Do not handle options covered by the
3209         default initialization.
3210         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
3211         fields.
3212         (CL_REPORT): New.
3213         * opts.sh: Generate variable declarations, handle CL_REPORT.
3214         * toplev.c: Remove automatically defined variables.
3215         (f_options): Removed.
3216         (print_switch_values): Use cl_options instead of f_options.
3217         * toplev.h (version_flag): Declaration removed.
3218
3219 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
3220
3221         * config/sparc/sparc.h: Correct comment about availability of
3222         little endian option.
3223
3224         * config.gcc: Remove sparc64-*-aout*.
3225         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
3226         * config/sparc/sp64-aout.h: Remove.
3227         * config/sparc/aout.h: Remove.
3228
3229 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
3230
3231         * config/s390/s390.c: Include "tree-gimple.h".
3232         (s390_gimplify_va_arg): New function.
3233         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3234         (s390_va_arg): Remove.
3235         * config/s390/s390-protos.h (s390_va_arg): Remove.
3236         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
3237
3238 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
3239
3240         * basic-block.h (could_fall_through): Declare.
3241         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
3242         Fail if the source already has a fallthrough edge to the exit
3243         block pointer.
3244         (could_fall_through): New function.
3245         * cfgbuild.c (make_edges): Check if we already have a fallthrough
3246         edge to the exit block pointer.
3247         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
3248         not called before reload has completed.
3249         Handle special case of first block having a fall-through exit edge.
3250         (cfg_layout_finalize): Don't call it before reload or if we have
3251         rtl epilogues.
3252         (fixup_reorder_chain): A fall through to the exit block does not
3253         require the block to come last.  Add sanity checks.
3254         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
3255         edges to the exit block.
3256         * function.c (cfglayout.h): #include.
3257         (thread_prologue_and_epilogue_insns): If we have neither return nor
3258         epilogue, but a fall through to the exit block from mid-function,
3259         force a non-fall-through exit.
3260         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
3261
3262 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
3263
3264         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
3265         for power5 and rs64a.  Correct condition for default.  Correct power3,
3266         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
3267
3268 2004-06-13  Steven Bosscher <stevenb@suse.de>
3269
3270         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
3271         Revert previous change, don't use CALL_P.
3272
3273 2004-06-13  Jason Merrill  <jason@redhat.com>
3274
3275         * tree.h: Move std_gimplify_va_arg_expr protoype here.
3276         * tree-gimple.h: From here.
3277
3278 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3279
3280         Fix PR tree-optimization/15979
3281         Fix PR tree-optimization/15981
3282         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
3283         try to insert values undefined along some path.
3284
3285 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3286
3287         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
3288         are available everywhere too.
3289
3290 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
3291
3292         * fold-const.c (fold_checksum_tree <case 't'>): Only
3293         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
3294         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
3295         EXPR is an INTEGERAL_TYPE or a scalar float type.
3296
3297 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
3298
3299         * tree-sra.c (tree_sra): Update documentation.
3300
3301 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3302
3303         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
3304         function_types_compatible_p, type_lists_compatible_p): Remove
3305         flags parameter.
3306         * c-tree.h (comptypes): Likewise.
3307         (COMPARE_STRICT): Remove.
3308         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
3309         callers changed.
3310
3311 2004-06-13  Eric Christopher  <echristo@redhat.com>
3312
3313         * c-decl.c (diagnose_mismatched_decls): Improve error message.
3314         Remove unused code.
3315         * c-typeck.c (comptypes): Add location in standard we're checking.
3316
3317 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3318
3319         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
3320         version 3.3.4.
3321
3322 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3323
3324         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
3325         index by machine mode.
3326         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
3327         tables inside the loop over machine modes.
3328         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
3329         expand_divmod): Index shift*_cost by the appropriate machine mode.
3330
3331 2004-06-12  Eric Christopher  <echristo@redhat.com>
3332
3333         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
3334         * config/s390/s390.md: Ditto.
3335         * config/s390/s390.c: Ditto.
3336         (s390_frame_info): Conditionalize frame and setup info on
3337         TARGET_TPF_PROFILING.
3338         (s390_arg_frame_offset): Ditto.
3339
3340 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3341
3342         * fold-const.c (omit_two_operands): New function.
3343         * tree.h (omit_two_operands): Prototype here.
3344         * builtins.c (fold_builtin_unordered_cmp): New function to lower
3345         C99 unordered comparison builtins to the appropriate tree nodes.
3346         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
3347         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
3348         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
3349         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
3350         (simplify_builtin_memcmp, simplify_builtin_strncmp,
3351         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
3352         omit_two_operands function to build the required COMPOUND_EXPRs.
3353
3354 2004-06-12  Steven Bosscher <stevenb@suse.de>,
3355             Andreas Jaeger  <aj@suse.de>
3356
3357         * gcse.c (record_set_info): Use predicates like REG_P.
3358         (mems_conflict_for_gcse_p): Likewise.
3359         (load_killed_in_block_p): Likewise.
3360         (hash_expr_1): Likewise.
3361         (insert_set_in_table): Likewise.
3362         (gcse_constant_p): Likewise.
3363         (hash_scan_set): Likewise.
3364         (hash_scan_insn): Likewise.
3365         (canon_list_insert): Likewise.
3366         (record_last_mem_set_info): Likewise.
3367         (record_last_set_info): Likewise.
3368         (compute_hash_table_work): Likewise.
3369         (mark_set): Likewise.
3370         (mark_clobber): Likewise.
3371         (mark_oprs_set): Likewise.
3372         (compute_transp): Likewise.
3373         (find_avail_set): Likewise.
3374         (cprop_insn): Likewise.
3375         (do_local_cprop): Likewise.
3376         (cprop): Likewise.
3377         (find_implicit_sets): Likewise.
3378         (find_bypass_set): Likewise.
3379         (bypass_conditional_jumps): Likewise.
3380         (insert_insn_end_bb): Likewise.
3381         (pre_insert_copy_insn): Likewise.
3382         (compute_transpout): Likewise.
3383         (next_ls_expr): Likewise.
3384         (invalidate_any_buried_refs): Likewise.
3385         (compute_ld_motion_mems): Likewise.
3386         (reg_set_info): Likewise.
3387         (reg_clear_last_set): Likewise.
3388         (find_moveable_store): Likewise.
3389         (compute_store_table): Likewise.
3390         (find_loads): Likewise.
3391         (store_killed_in_insn): Likewise.
3392         (insert_insn_start_bb): Likewise.
3393         (reg_set_between_after_reload_p): Likewise.
3394         (reg_used_between_after_reload_p): Likewise.
3395         (is_jump_table_basic_block): Likewise.
3396         (gcse_after_reload): Likewise.
3397         (hash_scan_set_after_reload): Likewise.
3398         (compute_hash_table_after_reload): Likewise.
3399
3400 2004-06-12  Steven Bosscher  <stevenb@suse.de>
3401
3402         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
3403         (INSN_P): Don't look at the rtx code class, just explicitly
3404         check for one of the tree RTX_INSN codes.
3405
3406 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3407
3408         * c-typeck.c (default_function_array_conversion): Use
3409         build_pointer_type not TYPE_POINTER_TO.
3410
3411 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3412
3413         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3414         * configure, config.in: Regenerate.
3415         * system.h: Unconditionally define bool as unsigned char,
3416         BOOL_BITFIELD as unsigned int.
3417         * domwalk.h: Use BOOL_BITFIELD.
3418
3419 2004-06-12  Andreas Jaeger  <aj@suse.de>
3420
3421         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
3422         * libgcc-darwin.ver: Likewise.
3423
3424 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
3425
3426         * reload.c (find_reloads): Force reload for pseudo registers on big
3427         endian machines.
3428
3429 2004-06-11  Steven Bosscher <stevenb@suse.de>
3430
3431         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
3432         Don't try to mark anything control dependent on the entry or
3433         exit blocks.
3434
3435 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
3436
3437         Fix Bug 15899
3438         Fix Bug 15460
3439         * tree.h (SSA_NAME_VALUE): New macro.
3440         (struct tree_ssa_name): Add value_handle member.
3441         * tree-ssa-pre.c: Replaced.
3442         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
3443         (struct cst_ann_d): New.
3444         (struct expr_ann_d): New.
3445         (union tree_ann_d): Add cst_ann, expr_ann.
3446         * tree-dfa.c (create_cst_ann): New function.
3447         (create_expr_ann): Ditto.
3448         * tree-flow-inline.h (cst_ann): New function.
3449         (expr_ann): Ditto.
3450         (get_cst_ann): Ditto.
3451         (get_expr_ann): Ditto..
3452
3453 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3454
3455         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
3456         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
3457         _U_Qfcmp library function.
3458         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
3459         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
3460
3461         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
3462         unspec used for loading address from DLT.
3463         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
3464         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
3465         Don't use short code sequence when loading the address of a nonlocal
3466         label.
3467         (nonlocal_goto): New expander.
3468         (indirect_goto): New jump pattern for nonlocal gotos.
3469         (short_jump): Remove extra whitespace.
3470         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
3471         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
3472         pattern.
3473
3474 2004-06-11  Roger Sayle  <roger@eyesopen.com>
3475
3476         * expmed.c (synth_mult): Add an additional MODE argument for the
3477         machine mode of the multiplication.  Update recursive calls.  Use
3478         mode instead of word_mode for determining operation costs.
3479         (choose_mult_variant): Update calls to synth_mult with "mode".
3480
3481 2004-06-11  Richard Henderson  <rth@redhat.com>
3482
3483         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
3484         and makes_aliased_stores.
3485
3486 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3487
3488         * doc/install.text (--enable-shared): Fix typo.
3489
3490 2004-06-11  Richard Henderson  <rth@redhat.com>
3491
3492         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
3493         argument.  Use internal post for call to gimplify_expr.  Tidy
3494         rounded type size computation.
3495         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
3496         get_initialized_tmp_var.
3497
3498 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3499
3500         * doc/install.texi (--enable-shared): Update libobjc's shared library
3501         status.  Remove reference to libf2c.
3502
3503 2004-06-11  Jason Merrill  <jason@redhat.com>
3504
3505         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3506         * config/i386/i386.c (ix86_va_arg): Remove.
3507         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3508         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
3509         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3510         * config/alpha/alpha.c (alpha_va_arg): Remove.
3511         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3512         * config/sparc/sparc.c (sparc_va_arg): Remove.
3513
3514         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
3515         assignment might throw.
3516         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
3517         expressions.
3518
3519 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
3520
3521         PR 15886:
3522         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
3523
3524 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3525
3526         * doc/install.texi (Prerequisites): Update documentation of
3527         required versions of autoconf and automake.  Remove mention of
3528         libf2c.
3529
3530 2004-06-11  Jason Merrill  <jason@redhat.com>
3531
3532         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
3533         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3534
3535 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
3536
3537         * typeclass.h: Add GPL plus exception license.  Add include
3538         guard.
3539
3540 2004-06-10  Jason Merrill  <jason@redhat.com>
3541
3542         * gimplify.c (gimplify_modify_expr): Don't force a temporary
3543         of an aggregate_value_p type.
3544
3545 2004-06-10  Jeff Law  <law@redhat.com>
3546
3547         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
3548         code when we are in gimple form.
3549
3550 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
3551
3552         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
3553         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
3554         (highest_ssa_version): Remove.
3555         * tree-outof-ssa.c (new_temp_expr_table): Replace
3556         highest_ssa_version with num_ssa_names.
3557         (dump_replaceable_exprs): Likewise.
3558         (rewrite_vars_out_of_ssa): Likewise.
3559         * tree-ssa-ccp.c (initialize): Likewise
3560         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3561         * tree-ssa-dce.c (tree_dce_init): Likewise.
3562         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3563         * tree-ssa-live.c (create_ssa_var_map): Likewise.
3564         (dump_var_map): Likewise.
3565         * tree-ssa.c (verify_ssa): Likewise.
3566         (kill_redundant_phi_nodes): Likewise.
3567         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
3568         * tree-ssanames.c: Include tree-flow.h
3569         (ssa_names): New varray.
3570         (init_ssa_names): Initialize ssa_names.
3571         Reserve the first slot of the ssa_names table.
3572         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
3573         Assign version numbers using num_ssa_names.
3574
3575 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3576
3577         * doc/sourcebuild.texi (Front End): Add details of more
3578         installation documentation required.
3579
3580 2004-06-10  Brian Booth  <bbooth@redhat.com>
3581
3582         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
3583         of V_MAY_DEF and V_MUST_DEF.
3584         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
3585         num_vdefs to num_v_may_defs.
3586         (compute_immediate_uses_for_stmt): Rename occurences of vdef
3587         to v_may_def.
3588         (redirect_immediate_uses): Ditto.
3589         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
3590         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
3591         Also add code to sum up the number of v_must_defs.
3592         (vdefs_disappeared_p): Replace with...
3593         (v_may_defs_disappeared_p): This.
3594         (v_must_defs_disappeared_p): New function.
3595         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
3596         Also add code to mark new variables found in V_MUST_DEFs for
3597         renameing.
3598         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
3599         vdef_ops to v_may_def_ops.
3600         (get_vdef_ops): Replace with...
3601         (get_v_may_def_ops): This.
3602         * tree-flow-inline.h (get_vdef_ops): Replace with...
3603         (get_v_may_def_ops): This.
3604         (get_v_must_def_ops): New function.
3605         (get_vdef_result_ptr): Replace with...
3606         (get_v_may_def_result_ptr): This.
3607         (get_vdef_op_ptr): Ditto with...
3608         (get_v_may_def_op_ptr); This.
3609         (get_v_must_def_op_ptr): New function.
3610         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
3611         to v_may_def. Also add code to mark statements with
3612         V_MUST_DEFs as definition sites.
3613         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
3614         add code to register new V_MUST_DEFs made by the statement.
3615         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
3616         (check_replaceable): Rename occurences of vdef to v_may_def. Also
3617         add check for V_MUST_DEFs.
3618         (find_replaceable_in_bb): Ditto.
3619         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
3620         to v_may_def. Also add code to dump V_MUST_DEFs.
3621         * tree-sra.c (mark_all_vdefs): Replace with...
3622         (mark_all_v_may_defs): This.
3623         (mark_all_v_must_defs): New function.
3624         (create_scalar_copies): Replace call to mark_all_vdefs with
3625         calls to mark_all_v_may_defs and mark_all_v_must_defs.
3626         (scalarize_structures): Rename occurences of vdef to v_may_def.
3627         Also add a check for V_MUST_DEFs.
3628         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
3629         * tree-ssa-alias.c (global_var): Update comment.
3630         (compute_may_aliases): Ditto.
3631         (compute_points_to_and_addr_escape): Rename occurences of vdef
3632         to v_may_def. Also add code to mark variables in V_MUST_DEF
3633         operands as being written to.
3634         (group_aliases): Update comment.
3635         (maybe_create_global_var): Ditto.
3636         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
3637         Also add a check for V_MUST_DEFs on GIMPLE registers.
3638         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
3639         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
3640         to v_may_def. Also add code to mark all V_MUST_DEF operands
3641         VARYING.
3642         (initialize): Ditto.
3643         (set_rhs): Rename occurences of vdef to v_may_def. Also add
3644         code to update SSA_NAMEs in V_MUST_DEFs.
3645         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
3646         to v_may_def.
3647         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
3648         occurences of vdef to v_may_def. Also add code to mark statements
3649         with V_MUST_DEFs as necessary.
3650         (propagate_necessity): Rename occurences of vdef to v_may_def.
3651         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
3652         occurences of vdef to v_may_def. Also add code to mark operands
3653         in V_MUST_DEFs for renaming.
3654         (eliminate_redundant_computations): Rename occurences of vdef
3655         to v_may_def.
3656         (record_equivalences_from_stmt): Rename occurences of vdef
3657         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
3658         (optimize_stmt): Remove unnesessary variable vdefs. Update
3659         comment.
3660         (register_definitions_for_stmt): Rename occurences of vdef
3661         to v_may_def. Also add code to register definitions made with
3662         V_MUST_DEFs.
3663         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
3664         (fix_stmt_v_may_defs): This.
3665         (fix_phi_uses): Rename occurences of vdef to v_may_def.
3666         (dse_optimize_stmt): Ditto.
3667         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
3668         to v_may_def. Also add code to mark V_MUST_DEF operands as being
3669         used in virtual operators.
3670         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
3671         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
3672         renaming.
3673         * tree-ssa-operands.c (opf_kill_def): New flag for killing
3674         definitions.
3675         (build_vdefs): Renamed to...
3676         (build_v_may_defs): This.
3677         (build_v_must_defs): New variable.
3678         (voperands_d): Add v_must_def_ops and replace vdef_ops with
3679         v_may_def_ops.
3680         (append_vdef): Replace with...
3681         (append_v_may_def): This.
3682         (append_v_must_def): New function.
3683         (NUM_FREE): Increment for V_MUST_DEF
3684         (optype_freelist): Increment its size for V_MUST_DEF
3685         (allocate_vdef_optype): Replace with...
3686         (allocate_v_may_def_optype): This.
3687         (allocate_v_must_def_optype): New function.
3688         (free_vdefs): Replace with...
3689         (free_v_may_defs): This.
3690         (free_v_must_defs): New function.
3691         (remove_vdefs): Replace with...
3692         (remove_v_may_defs): This.
3693         (remove_v_must_defs): New function.
3694         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
3695         add code to initialize build_v_must_defs.
3696         (finalize_ssa_vdefs): Replace with...
3697         (finalize_ssa_v_may_defs): This.
3698         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
3699         (finalize_ssa_v_must_defs): New function.
3700         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
3701         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
3702         (verify_start_operands): Rename occurences of vdef to v_may_def.
3703         Also add check for build_v_must_defs.
3704         (get_stmt_operands): Rename occurences of vdef to v_may_def.
3705         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
3706         killing definitions.
3707         (get_expr_operands): Update comment and use opf_kill_def for
3708         killing definitions.
3709         (add_stmt_operand): Replace code that appends VDEFs with code
3710         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
3711         otherwise.
3712         (add_call_clobber_ops): Update comments.
3713         * tree-ssa-operands.h (vdef_optype_d): Replace with...
3714         (v_may_def_optype_d): This.
3715         (v_must_def_optype_d): New structure.
3716         (VDEF_OPS): Replace with...
3717         (V_MAY_DEF_OPS): This.
3718         (STMT_VDEF_OPS): Same with...
3719         (STMT_V_MAY_DEF_OPS): This.
3720         (NUM_VDEFS): And...
3721         (NUM_V_MAY_DEFS): This.
3722         (VDEF_RESULT_PTR): As well as...
3723         (V_MAY_DEF_RESULT_PTR): This.
3724         (VDEF_RESULT): Same goes for...
3725         (V_MAY_DEF_RESULT): This.
3726         (VDEF_OP_PTR): And...
3727         (V_MAY_DEF_OP_PTR): This.
3728         (VDEF_OP): And...
3729         (V_MAY_DEF_OP): This.
3730         (V_MUST_DEF_OPS): New macro.
3731         (STMT_V_MUST_DEF_OPS): Ditto.
3732         (NUM_V_MUST_DEFS): Ditto.
3733         (V_MUST_DEF_OP_PTR): Ditto.
3734         (V_MUST_DEF_OP): Ditto.
3735         (remove_vdefs): Replace signature with...
3736         (remove_v_may_defs): This.
3737         (remove_v_must_defs): New function signature.
3738         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
3739         with calls to remove_v_may_defs and remove_v_must_defs.
3740         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
3741         Also add code that marks left occurences of operands in V_MUST_DEFs.
3742         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
3743         to v_may_def. Also add check for V_MUST_DEFs.
3744         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
3745
3746 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
3747
3748         PR target/15653
3749         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
3750         insn.
3751
3752 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3753
3754         PR web/15263
3755         * doc/install.texi: Remove superfluous linebreak.
3756
3757 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3758
3759         * builtins.c (expand_builtin): Fall back to library function call for
3760         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
3761         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
3762         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
3763         IMAGPART_EXPR respectively.
3764
3765 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
3766
3767         * sh.c (dump_table): New argument start.  Changed caller.
3768         (fixup_mova): New function.
3769         (find_barrier): Use it.
3770         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
3771         If the label a mova refers to is above the mova itself, change
3772         the mova into a load.
3773         * sh.md (*casesi_worker): Rename to:
3774         (casesi_worker_1).
3775         (casesi_worker_2): New insn.
3776
3777 2004-06-10  Jason Merrill  <jason@redhat.com>
3778
3779         * target.h (struct gcc_target): Change gimplify_va_arg_expr
3780         hook signature.
3781         * tree-gimple.h: Adjust.
3782         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
3783         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
3784         Use fold_convert.
3785         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
3786         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
3787         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
3788         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
3789         (gimplify_va_arg_expr): Return GS_ERROR in error case.
3790         Gimplify valist rather than calling stabilize_va_list.
3791
3792 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3793
3794         * Makefile.in (df.o): Remove fibheap dependency.
3795         * df.h: Do not include sbitmap.h.
3796         (struct ref): New field "data".
3797         (DF_REF_DATA): New accessor macro.
3798         (struct df): Field "dom" removed.
3799         (df_analyze_subcfg): New function.
3800         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3801         (transfer_function): ... new type.
3802         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3803         (iterative_dataflow): ... new function.
3804         (enum set_representation, struct dataflow): New.
3805         * df.c: Do not include fibheap.h.
3806
3807         (df_reg_def_chain_clean, df_reg_use_chain_clean,
3808         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3809         prune_to_subcfg, df_bb_modify): New functions.
3810         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3811         df_refs_update, df_reg_table_realloc, df_ref_create,
3812         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3813         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3814         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3815
3816         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3817         (df_rd_transfer_function, df_ru_transfer_function,
3818         df_lr_transfer_function): Type of bitmaps changed to void *.
3819         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3820         (hybrid_search): ... new function.
3821         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3822         (iterative_dataflow): ... new function. Avoid use of fibheaps for
3823         a worklist.  Do not process basic blocks unnecessarily.
3824
3825 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3826
3827         * fold-const.c (fold_abs_const): Make extern.
3828         * tree.h (fold_abs_const): Prototype here.
3829         * builtins.c (fold_builtin_fabs): New function to transform
3830         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3831         (fold_builtin_abs): New function to transform abs, labs, llabs
3832         and imaxabs builtins into ABS_EXPR tree nodes.
3833         (expand_builtin): Fall back to a function call for abs, labs,
3834         llabs and imaxabs builtins that survive constant folding.
3835         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3836         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3837
3838 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3839
3840         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3841         leaf function without unwind info at RP 0.
3842
3843 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3844
3845         PR c++/14791
3846         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3847         (fileptr_type_node): Define.
3848         * tree.c (build_common_tree_nodes_2): Initialize
3849         fileptr_type_node to ptr_type_node.
3850         * c-common.c (c_common_nodes_and_builtins): For C++, make
3851         fileptr_type_node a distinct type copy.
3852         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3853         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3854         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3855         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3856         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3857         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3858         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3859         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3860         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3861         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3862         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3863         the above *FILEPTR* types instead of *PTR*.
3864
3865 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
3866
3867         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3868         match.
3869
3870 2004-06-09  Roger Sayle  <roger@eyesopen.com>
3871
3872         * fold-const.c (fold_not_const): New function.
3873         (fold) <ABS_EXPR>: Don't bother testing wins.
3874         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3875         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3876
3877 2004-06-09  Richard Henderson  <rth@redhat.com>
3878
3879         PR middle-end/15228
3880         * function.c (assign_parms): Always set_mem_align with the computed
3881         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
3882
3883 2004-06-09  Richard Henderson  <rth@redhat.com>
3884
3885         PR opt/15108
3886         * tree-tailcall.c (find_tail_calls): Don't check early for
3887         tail_recursion failure.
3888
3889 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
3890
3891         Move SSA_NAME annotations into tree_ssa_name.
3892
3893         * tree-dfa.c (create_ssa_name_ann): Remove.
3894         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3895         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3896         (struct ssa_name_ann_d): Remove.
3897         (union tree_ann_d): Update.
3898         (ssa_name_ann_t): Remove.
3899         * tree-ssa-alias.c: (get_ptr_info): New local function.
3900         Replace references to ssa_name_ann_t with struct ptr_info_def.
3901         * tree-ssa-operands.c (get_expr_operands): Likewise.
3902         * tree.h (SSA_NAME_PTR_INFO): Define.
3903         (struct ptr_info_def): Declare.
3904         (struct tree_ssa_name): Add field 'ptr_info'.
3905
3906 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
3907
3908         * config/i386/winnt.c (i386_pe_output_labelref): Correct
3909         misplaced ')'.
3910
3911 2004-06-09  Steven Bosscher  <stevenb@suse.de>
3912
3913         * config/i386/k6.md: Rewrite using the DFA model.
3914         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3915         cost of load-operation insns for the K6.
3916         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3917         (ia32_multipass_dfa_lookahead): Likewise.
3918
3919 2004-06-09  Richard Henderson  <rth@redhat.com>
3920
3921         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3922         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3923
3924 2004-06-09  Richard Henderson  <rth@redhat.com>
3925
3926         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
3927
3928 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
3929
3930         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
3931         (CPP_ID_DATA_H): New.
3932         (gtype-desc.o): Update dependencies.
3933         (GTFILES): Use CPP_ID_DATA_H.
3934
3935 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
3936
3937         Revert:
3938         PR c++/15815
3939         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3940         * doc/extend.texi: Deprecate #pragma interface and #pragma
3941         implementation.
3942
3943 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
3944
3945         * config/sparc/sparc.h (MOVE_RATIO): New definition.
3946
3947 2004-06-09  Richard Henderson  <rth@redhat.com>
3948
3949         * basic-block.h (struct edge_def): Add goto_locus.
3950         * tree-cfg.c (make_goto_expr_edges): Set it.
3951         (disband_implicit_edges): Use it.
3952         * tree-pretty-print.c (dump_implicit_edges): Print it.
3953
3954 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3955
3956         * h8300.md (ldm_h8300s_4): Fix condition for expander.
3957
3958 2004-06-08  Jason Merrill  <jason@redhat.com>
3959
3960         Gimplify VA_ARG_EXPR into simpler forms.
3961         * target.h: Add gimplify_va_arg_expr hook.
3962         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
3963         * fold-const.c (build_fold_addr_expr)
3964         (build_fold_addr_expr_with_type): Move from gimplify.c.
3965         * tree.h: Declare them.
3966         * gimplify.c (gimplify_and_add): New fn.
3967         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
3968         (gimplify_array_ref_to_plus, gimplify_modify_expr)
3969         (gimplify_expr): Use build_fold_*.
3970         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
3971         don't know how to gimplify it.
3972         * builtins.c (std_gimplify_va_arg_expr): New fn.
3973         (dummy_object): New static fn.
3974         (gimplify_va_arg_expr): New fn.
3975         (stabilize_va_list): Use build_fold_*.
3976         * tree-gimple.h: Declare new fns.
3977         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3978         (ix86_gimplify_va_arg): New fn.
3979         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3980         (ia64_gimplify_va_arg): New fn.
3981         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
3982         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3983         * alias.c (get_varargs_alias_set): Just return 0 for now.
3984
3985         * c-objc-common.c (c_tree_printer): Improve handling of %T.
3986
3987 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
3988
3989         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
3990         of convert.
3991         * tree-inline.c (setup_one_parameter): Likewise.
3992         * tree-sra.c (csc_build_component_ref): Likewise.
3993         * tree-ssa-ccp.c (ccp_fold): Likewise.
3994         * tree-ssa-copy.c (cprop_operand): Likewise.
3995         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3996         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3997
3998 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3999
4000         PR rtl-optimization/15521:
4001         * sched-int.h (in_post_call_group_p): Change type to enum.
4002         * sched-deps.c (sched_analyze_insn):
4003         (sched_analyze): When in_post_call_group_p is post_call_initial,
4004         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
4005         and also reset in_post_call_group_p to post_call.
4006         (sched_analyze): When the previous basic block ended in a CALL_INSN,
4007         initialize in_post_call_group_p as post_call_initial.
4008         (init_deps): initialize in_post_call_group_p to not_post_call.
4009
4010 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
4011
4012         PR ada/6637
4013         * doc/install.texi: List ada, libada as options to --enable-shared
4014
4015 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
4016
4017         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
4018         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
4019         config.in entries.
4020         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
4021         if hard links are not available.
4022         * configure: Regenerate.
4023         * config.in: Regenerate.
4024
4025 2004-06-08  Per Bothner  <per@bothner.com>
4026
4027         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
4028
4029 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4030
4031         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
4032         Correct formatting.
4033
4034 2004-06-08  James E Wilson  <wilson@specifixinc.com>
4035
4036         PR target/15790
4037         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
4038
4039 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
4040
4041         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
4042         POINTER_TYPE and INTEGER_TYPE.
4043
4044 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
4045
4046         * modulo-sched.c: Compile only when INSN_SCHEDULING is
4047         defined.
4048
4049 2004-06-08  Jeff Law  <law@redhat.com>
4050
4051         * doc/contrib.texi: Add entries for Stefan Olsson and
4052         Ola Ronnerup.
4053
4054 2004-06-08  DJ Delorie  <dj@redhat.com>
4055
4056         * toplev.c (floor_log2_wide): Replace loop with faster bit
4057         operations.
4058         (exact_log2_wide): Define in terms of the above.
4059         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
4060         available.
4061
4062 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
4063
4064         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
4065         Make sure that we are in INDIRECT mode when getting the
4066         stub name.
4067
4068 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
4069
4070         * h8300.md (extendqisi2_h8300): Add constraints.
4071         (ldm_h8300s_4_normal): Fix typo.
4072
4073 2004-06-08  Richard Henderson  <rth@redhat.com>
4074
4075         * gimple-low.c (struct lower_data): Replace the_return_label and
4076         one_return_stmt with return_statements.
4077         (lower_function_body): Process the entire list of return_statements.
4078         (lower_return_expr): Check source value before unifying return_exprs.
4079         * gimplify.c (gimplify_return_expr): Force the use of a temporary
4080         for !aggregate_value_p.
4081         * tree-gimple.c: Update RETURN_EXPR grammer.
4082
4083 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
4084
4085         PR target/15598
4086         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
4087
4088 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4089
4090         PR rtl-optimization/15717
4091         * config/i386/i386.c (legitimate_constant_p): Do not allow
4092         x - symbol_ref.
4093
4094 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
4095
4096         * gimplify.c (copy_if_shared_r): Revert:
4097         2004-05-21  Richard Henderson  <rth@redhat.com>
4098         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
4099
4100 2004-06-07  Roger Sayle  <roger@eyesopen.com>
4101
4102         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
4103         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
4104         (init_expmed): Initialize these cost arrays as appropriate.
4105         (store_bit_field, extract_bit_field): Correct whitespace.
4106         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
4107         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
4108         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
4109         word_mode or compute_mode as appropriate.
4110
4111 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4112
4113         PR target/15783
4114         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
4115         parameter.  Enumerate the registers inside the PARALLEL.
4116         (function_arg): Adjust call to function_arg_union_value.
4117         (function_value): Likewise.
4118
4119         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
4120
4121 2004-06-07  Roger Sayle  <roger@eyesopen.com>
4122
4123         * real.c (real_copysign): New function to implement libm's copysign.
4124         * real.h (real_copysign): Prototype here.
4125         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
4126         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
4127         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
4128         fold_builtin_isdigit): Add function prototypes.
4129         (fold_builtin_copysign): New function to fold copysign, copysignf
4130         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
4131         constant arguments at compile-time using real_copysign.  Fold
4132         copysign(X,Y) as fabs(X) if Y is always non-negative.
4133         (fold_builtin_1): Correct minor whitespace/style issues.  Call
4134         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
4135
4136 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
4137
4138         * tree.c (iterative_hash_expr): Use real_hash.
4139
4140 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4141
4142         PR c/14765
4143         * c-parse.in (compstmt_primary_start): Set last_expr_type to
4144         NULL_TREE.
4145
4146 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
4147
4148         PR c++/15815
4149         * doc/extend.texi: Deprecate #pragma interface and #pragma
4150         implementation.
4151
4152 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
4153
4154         PR middle-end/15666
4155         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
4156         builtin decl as well.
4157
4158 2004-06-07  Roger Sayle  <roger@eyesopen.com>
4159
4160         PR c/14649
4161         * c-typeck.c (require_constant_value, require_constant_elements):
4162         Move declarations to the top of the file.
4163         (build_function_call): If we require a constant value, fold with
4164         fold_initializer.  If the result is a constant, and the function
4165         wasn't called using __builtin_foo, issue a pedantic warning.
4166         (build_unary_op): If we require a constant value, fold tree with
4167         fold_initializer.
4168         (build_binary_op): Use require_constant_value to determine whether
4169         to call fold or fold_initializer.
4170
4171 2004-06-07  Richard Henderson  <rth@redhat.com>
4172
4173         * gimple-low.c (struct lower_data): Add the_return_label and
4174         one_return_stmt.
4175         (lower_function_body): Initialize and use them.
4176         (lower_return_expr): New.
4177         (lower_stmt): Call it.
4178         * gimplify.c (gimplify_return_expr): Force the argument to be either
4179         null or a result_decl.
4180         * tree-gimple.c: Update gimple grammer to match.
4181         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
4182         coalescing of result_decls.
4183
4184 2004-06-07  Richard Henderson  <rth@redhat.com>
4185
4186         PR rtl-opt/15193
4187         * expmed.c (extract_bit_field): Fix vector_extract return.
4188
4189         * config/i386/i386.md (negv4sf2): New pattern.
4190
4191 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
4192
4193         PR c++/15337
4194         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
4195         message.
4196
4197 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
4198
4199         * config.in: Regenerate.
4200
4201 2004-06-06  Steven Bosscher  <stevenb@suse.de>
4202
4203         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
4204         SWITCH_LABELS are always sorted.
4205
4206 2004-06-06  Steven Bosscher  <stevenb@suse.de>
4207
4208         * hooks.c (hook_int_void_1): New generic hook.
4209         * hooks.h (hook_int_void_1): Add prototype.
4210         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
4211         Define to hook_int_void_1.
4212         * config/c4x/c4x.md: Replace dummies for the old pipeline model
4213         with dummies for the new one.
4214
4215 2004-06-06  Roger Sayle  <roger@eyesopen.com>
4216
4217         * tree.h (lvalue_or_else): Delete function prototype.
4218         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
4219
4220 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
4221
4222         PR target/14542
4223         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
4224         a live change of a register after peephole replacement.
4225
4226 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
4227
4228         PR c/13519
4229         * c-typeck.c (composite_type, common_pointer_type): New functions.
4230         (common_type): Split parts into composite_type and
4231         common_pointer_type.  Ensure that arithmetic operations return
4232         unqualified types without attributes.  Don't make composite type
4233         of signed enum and compatible integer be unsigned.
4234         (build_conditional_expr, build_binary_op): Use
4235         common_pointer_type.
4236         * c-decl.c (merge_decls): Use composite_type.
4237         * c-tree.h (composite_type): Declare.
4238
4239 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
4240
4241         PR target/14457
4242         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
4243         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
4244         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
4245         (inhibit_libc): Must define.
4246         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
4247         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
4248         ("xorhi3"): Likewise.
4249
4250 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4251
4252         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
4253         always_inline pass.
4254
4255 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
4256
4257         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
4258         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
4259
4260 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
4261
4262         * regclass.c (init_reg_sets): Check for missing registers in target
4263         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
4264
4265 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
4266
4267         * Makefile.in (MKDEPS_H): New shorthand.
4268         (c-opts.o): Update dependencies.
4269         * c-opts.c: Include mkdeps.h.
4270         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
4271         not cpp_add_dependency_target.
4272
4273 2004-06-05  Steven Bosscher  <stevenb@suse.de>
4274
4275         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
4276         * config/v850/v850.md: Convert to DFA scheduler description.
4277
4278 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4279
4280         PR fortran/15478
4281         * doc/install.texi: Document GMP as prerequisite. Document
4282         --with-gmp and --with-gmp-dir configure options.
4283         * fortran/gfortran.texi: Remove section "Compiling and testing",
4284         remove TOC reference to it.
4285
4286 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
4287
4288         * combine.c(simplify_shift_const): Check shift amount is a
4289         CONST_INT.
4290
4291 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
4292
4293         * toplev.c (init_asm_output): Add explicit 'b' to mode when
4294         opening asm_out_file.
4295         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
4296         reading asm_out_file. Replace fflush after reading asm_out_file
4297         with fseek.
4298         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
4299         default and add to HOST_HOOKS_INITIALIZER.
4300         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
4301         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
4302         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
4303         to set mmi.offset padding.
4304          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
4305         $(srcdir)/config/i386/winnt.c.
4306         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
4307         (i[34567]86-*-uwin*): Likewise.
4308         *i[34567]86-*-interix3*): Likewise.
4309         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
4310         * config/i386/host-mingw32.c: New file.
4311         * config/i386/x-mingw32: Add rule for host-mingw32.o.
4312         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
4313         (extern_head): Likewise.
4314         (struct export_list) Likewise.
4315         (export_head): Likewise.
4316         (i386_pe_record_external_function): Use ggc_alloc.
4317         (i386_pe_record_exported_symbol): Likewise.
4318         Include "gt-winnt.h" at end.
4319         * doc/hostconfig.texi: Document
4320         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
4321
4322 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
4323
4324         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
4325         Rename 68000 and 68k to m68k for consistency in comments.  Remove
4326         trailing whitespace before EOLs and before TABs.
4327         (MAX_CODE_ALIGN): Remove unused macro.
4328         (CALL_USED_REGISTERS): Reformat and add comments.
4329
4330 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
4331
4332         * gcc.c (MFLIB_SPEC): Remove library references, to require users
4333         to enumerate -lmudflap* and dependencies when linking.
4334
4335 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
4336
4337         PR target/15822
4338         * dojump.c (do_jump): Fix uninitialized variable tcode1.
4339
4340 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
4341
4342         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
4343         * genconditions.c (write_header): Back out removal of reload.h.
4344
4345 2004-06-04  Jan Hubicka  <jh@suse.cz>
4346
4347         Re-apply hopefully fixed patch:
4348         * i386.md (UNSPECV_EH_RETURN): Kill.
4349         (eh_return): Use jump_insn.
4350         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4351
4352 2004-06-04  Jeff Law  <law@redhat.com>
4353
4354         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
4355
4356 2004-06-04  Steven Bosscher  <stevenb@suse.de>
4357
4358         * except.c (for_each_eh_region): New function.
4359         * except.h (for_each_eh_region): Add a prototype for it.
4360         * tree-cfg.c (update_eh_labels): New function, callback for
4361         for_each_eh_region.
4362         (label_for_bb): Make global static, unfortunately.
4363         (cleanup_dead_labels): Also update label references for
4364         exception regions.
4365
4366 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
4367
4368         * config/mips/mips.c (struct irix_section_align_entry): Fix
4369         GTY marker.
4370
4371 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
4372
4373         * toplev.c (check_global_declarations): Don't ask for
4374         DECL_ASSEMBLER_NAME unless the function really is declared
4375         static and not defined.
4376
4377 2004-06-03  Matt Austern  <austern@apple.com>
4378
4379         PR c++/15428
4380         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
4381         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
4382         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
4383         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
4384         documentation to reflect the new macro name and to clarify its
4385         meaning.
4386
4387 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4388
4389         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
4390
4391 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
4392
4393         * config/darwin.c (machopic_indirect_data_reference): Copy
4394         the SYMBOL_REF_DECL from the original RTX for the new
4395         non-lazy pointer RTX.
4396
4397 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
4398
4399         * tree.h: Remove include of version.h
4400         * c-cppbuiltin.c: Include version.h
4401         * diagnostic.c: Include version.h
4402         * dwarf2out.c: Include version.h
4403         * toplev.c: Include version.h
4404         * vmsdbgout.c: Include version.h
4405         * Makefile.in: Remove dependency on version.h from TREE_H, and
4406         add dependencies to required .o targets
4407
4408 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
4409
4410         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
4411         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
4412         (TARGET_H): Add insn-modes.h.
4413         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
4414         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
4415         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
4416         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
4417         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
4418         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
4419         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
4420         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
4421         CFGLAYOUT_H.
4422         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
4423         Replace ra.h with RA_H.
4424         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
4425         insn-recog.o): Replace resource.h with RESOURCE_H.
4426         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
4427         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
4428         with SCHED_INT_H.
4429         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
4430         ra-rewrite.o): Replace df.h with DF_H.
4431         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
4432         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
4433         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
4434         (insn-conditions.o): Remove unused reload.h.
4435         * cfglayout.h: Add include guard.  Include basic-block.h.
4436         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
4437         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
4438         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
4439         basic-block.h.
4440         * genconditions.c:  Remove reload.h.
4441         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
4442         hard-reg-set.h, insn-modes.h.
4443         * resource.h: Add include guard.  Include hard-reg-set.h.
4444         * sched-int.h:  Add include guard.  Include insn-attr.h,
4445         basic-block.h, rtl.h.
4446         * target.h: Add include guard.  Include insn-modes.h.
4447         * tree-ssa-live.h: Include partition.h.
4448
4449 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
4450                 Kenneth Zadeck <zadeck@naturalbridge.com>
4451
4452         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
4453         (add_var_to_ssa_edges_worklist): Add value argument.
4454         Update callers.
4455         Use new worklist.
4456         (process_ssa_edge_worklist): New function.
4457         (tree_ssa_ccp): Move worklist processing core to
4458         process_ssa_edge_worklist, and just call that for the two worklists.
4459
4460 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4461
4462         * basic-block.c (tail_recursion_label_list): Don't declare.
4463         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
4464         accordingly.
4465         * cfgbuild.c (find_label_refs): Remove.
4466         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
4467         * cfgcleanup.c (tail_recursion_label_p): Remove.
4468         (merge_blocks_move): Do not check for tail recursion.
4469         (try_optimize_cfg): Likewise.
4470         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
4471         * cfgrtl.c (tail_recursion_label_list): Remove.
4472         * except.c (remove_unreachable_regions): Don't handle
4473         CALL_PLACEHOLDER insns.
4474         (convert_from_eh_region_ranges_1, can_throw_internal,
4475         can_throw_external): Likewise.
4476         * function.c (free_after_compilation): Don't clear
4477         x_tail_recursion_label.
4478         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
4479         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
4480         (reorder_blocks_1): Likewise.
4481         * function.h (struct function): Remove x_tail_recursion_label
4482         member.  Don't define tail_recursion_label.
4483         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
4484         * print-rtl.c (print_rtx): Likewise.
4485         * rtl.def (CALL_PLACEHOLDER): Remove.
4486         * rtl.h (sibcall_use_t): Remove enum.
4487         (optimize_sibling_and_tail_recursive_calls,
4488         replace_call_placeholder): Remove function prototypes.
4489         * stmt.c (tail_recursion_args): Remove.
4490         (optimize_tail_recursion): Remove.
4491         (expand_return): Don't check for possible tail recursion.
4492         * tree.h (optimize_tail_recursion): Remove prototype.
4493
4494 2004-06-02  Jan Hubicka  <jh@suse.cz>
4495
4496         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
4497         return_stmt.
4498
4499 2004-06-02  Jason Merrill  <jason@redhat.com>
4500
4501         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
4502         Do include c-parse.in.
4503
4504 2004-06-02  Eric Christopher  <echristo@redhat.com>
4505
4506         * c-typeck.c (common_type): Don't lose type qualifiers
4507         when creating new variants.
4508
4509 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
4510
4511         PR tree-optimization/14042
4512         PR tree-optimization/14729
4513         PR tree-optimization/14736
4514         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
4515         Check the type which the pointer points to
4516         instead of the pointer types.
4517
4518 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
4519
4520         PR tree-optimization/15738.
4521         * builtins.c (fold_builtin_strchr): Transform
4522         strrchr (s, '\0') to strchr (s, '\0').
4523
4524 2004-06-02  Steven Bosscher  <stevenb@suse.de>
4525
4526         * i386.c (ix86_adjust_cost): Don't increase the cost for
4527         load+operation for PROCESSOR_PENTIUMPRO, it is already
4528         modelled in the DFA description
4529
4530 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
4531
4532         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
4533         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
4534         (ALIAS_H, EMIT_RTL_H): New.
4535         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
4536         (cfgcleanup.o): Add EMIT_RTL_H.
4537         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
4538         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
4539         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
4540         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
4541         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
4542         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
4543         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
4544         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
4545         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
4546         set_mem_size): Move to emit-rtl.h.
4547         * emit-rtl.h: New.
4548         * alias.h: New.
4549
4550 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
4551
4552         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
4553         Call fixup_memory_subreg only if the MEM is equal to 'var'.
4554         Adjust recursive calls to self.
4555         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
4556
4557 2004-06-01  Richard Henderson  <rth@redhat.com>
4558             Andrew Pinski  <pinskia@physics.uc.edu>
4559
4560         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
4561         (primary): Handle offsetof.  Add error productions for faux functions.
4562         Move component_ref objc checking to build_component_ref.
4563         (reswords): Add offsetof.
4564         (rid_to_yy): Add offsetof.
4565         * c-tree.h (build_offsetof): Declare.
4566         * c-common.h (objc_is_public): Declare.
4567         * c-typeck.c (build_component_ref): Check objc_is_public.
4568         (build_offsetof): New.
4569         * stub-objc.c (objc_is_public): New.
4570         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
4571         from is_public.
4572         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
4573         * doc/extend.texi (Offsetof): Move from C++ section to C section
4574         and rewrite for __builtin_offsetof.
4575
4576 2004-06-01  Peter Barada  <peter@the-baradas.com>
4577             Peter Jakubek  <peter@laseranimation.com>
4578
4579         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
4580         a scratch to perform an add to memory.
4581
4582 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4583
4584         PR target/14018
4585         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
4586         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4587         m68k_align_funcs): Remove.
4588         (override_options): Remove code to handle -malign-* options.
4589         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
4590         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
4591         (m68k_align_loops_string, m68k_align_jumps_string,
4592         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4593         m68k_align_funcs): Remove definitions.
4594
4595 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
4596
4597         PR target/15626
4598         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
4599         by the Sun linker in conjunction with the Sun assembler.
4600         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
4601
4602 2004-06-01  Jeff Law  <law@redhat.com>
4603
4604         * stmt.c (expand_decl): Be more selective about calling
4605         mark_reg_pointer.
4606
4607 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
4608
4609         PR objc/7993
4610         * objc-act.c (is_private): Do not emit the 'instance variable %s
4611         is declared private' error.
4612         (is_public): Emit the error after calling is_private.
4613         (lookup_objc_ivar): If the instance variable is private, return 0
4614         - the instance variable is invisible here.
4615
4616 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4617
4618         * doc/invoke.texi (-static-libgcc): Explicitly mention
4619         non-GNU linkers.
4620
4621 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4622
4623         PR target/12968
4624         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
4625
4626 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
4627
4628         PR c/15749
4629         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
4630         misuses of structures with flexible array members if
4631         in_system_header.
4632
4633 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4634
4635         PR target/15693
4636         * config/sparc/sparc.c (compare_operand): New predicate.
4637         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
4638         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
4639         operand is a ZERO_EXTRACT and the second operand is not zero,
4640         force the former to a register.
4641         (cmpdi expander): Likewise.
4642
4643 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
4644
4645         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
4646         looks at.
4647         * alias.c (alias_invariant_size): Make alias_invariant_size
4648         static, fix GTY marker.
4649
4650 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4651
4652         PR tree-optimization/15743.
4653         * builtins.c (fold_builtin_1): Fold index() and rindex().
4654
4655 2004-05-31  Roger Sayle  <roger@eyesopen.com>
4656
4657         PR middle-end/15069
4658         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
4659         into "X < 0" (where C is the signbit) if X's type is a full mode.
4660
4661 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4662
4663         * pa.md: Disable the peephole2 patterns that generate indexed
4664         floating-point stores when indexing is disabled.
4665
4666 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4667
4668         * c-pretty-print.c (pp_c_left_bracket): Make a function.
4669         (pp_c_right_bracket): Likewise.
4670         (pp_c_star): Likewise.
4671         (pp_c_ampersand): Define.
4672         * c-pretty-print.h (pp_c_left_bracket): Declare.
4673         (pp_c_right_bracket): Likewise.
4674         (pp_c_star): Likewise.
4675         (pp_c_ampersand): Likewise.
4676
4677 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4678
4679         * config/sol2.h (__enable_execute_stack): ANSIfy function
4680         definition.
4681
4682 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
4683
4684         * c-incpath.c (add_path): Canonicalize paths to use '/' if
4685         HAVE_DOS_BASED_FILESYSTEM.
4686
4687 2004-05-31  Steven Bosscher  <stevenb@suse.de>
4688
4689         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
4690         Only look at case labels if the immediate dominator is also
4691         the only predecessor.  Don't look for more case labels if the
4692         first seen is a case range.
4693
4694 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4695
4696         * builtins.c: Add a prototype for fold_builtin_strchr().
4697
4698 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
4699
4700         Revert this patch:
4701         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4702
4703         * combine.c (gen_binary): Remove.
4704         (known_cond, simplify_shift_const
4705         find_split_point, combine_simplify_rtx,
4706         simplify_if_then_else, simplify_set,
4707         simplify_logical, expand_field_assignment,
4708         extract_left_shift, force_to_mode,
4709         if_then_else_cond, apply_distributive_law,
4710         simplify_and_const_int, simplify_shift_const,
4711         gen_lowpart_for_combine, simplify_comparison,
4712         reversed_comparison): Replace with
4713         simplify_gen_binary, simplify_gen_relational or
4714         distribute_and_simplify_rtx.
4715         (distribute_and_simplify_rtx): New function.
4716
4717 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4718
4719         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
4720         when generating PIC code.
4721
4722 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4723
4724         * c-decl.c (c_expand_body_1): Remove and fold back into ...
4725         (c_expand_body): here.
4726         (c_expand_decl): Move to ...
4727         * c-common.c (c_expand_decl): Here and remove check for nested
4728         functions.
4729         * c-common.h (c_expand_decl): Add prototype.
4730         * c-tree.h (c_expand_decl): Remove.
4731
4732 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4733
4734         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
4735         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
4736         fold_mathfn_compare, fold_inf_compare, fold,
4737         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
4738         Use constant_boolean_node where appropriate.  Don't bother using
4739         fold_convert on the second argument to omit_one_operand.
4740
4741 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4742
4743         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
4744         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
4745         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
4746         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
4747         Add missing (but documented) tree nodes to the index.
4748
4749 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4750
4751         PR tree-optimization/14819
4752         * builtins.c (fold_builtin_strchr): New.
4753         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
4754         with fold_builtin_strchr().
4755
4756 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4757
4758         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
4759         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
4760         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
4761         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
4762         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
4763         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
4764         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
4765         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
4766         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
4767         formatting.
4768
4769 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4770
4771         * gimplify.c (sort_case_labels): New.  Split out from...
4772         (gimplify_switch_expr): ...here.  Use it.
4773         * tree-eh.c (lower_try_finally_switch): Sort the labels of
4774         the SWITCH_EXPR created here before leaving the function.
4775         * tree.c (sort_case_labels): Add prototype.
4776
4777 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4778
4779         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
4780         of BOOLEAN_TYPE.
4781
4782 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4783
4784         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
4785         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
4786         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
4787         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
4788         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
4789         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
4790         comment typos.  Follow spelling conventions.
4791
4792 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
4793
4794         * gengtype-yacc.y: Add NESTED_PTR token.
4795         (option): Record `nested_ptr' option.
4796         * gengtype-lex.l: Handle `nested_ptr' keyword.
4797         * gengtype.c (walk_type): Process `nested_ptr' option.
4798         * gengtype.h (struct nested_ptr_data): New.
4799         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
4800         * stringpool.c (struct string_pool_data): Make 'entries' point to
4801         ht_identifier instead of tree.
4802         (gt_pch_save_stringpool): Don't adjust pointers.
4803         (gt_pch_restore_stringpool): Call ht_load.
4804
4805 2004-05-29  Jason Merrill  <jason@redhat.com>
4806
4807         * gimplify.c (gimplify_expr): Don't build a statement list
4808         if no gimplification was necessary.
4809
4810 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4811
4812         * pretty-print.c (pp_base_format_text): Support %< instead of %`
4813         and %> as well as %'.
4814         * c-format.c: Use %< and %>.
4815         (gcc_diag_char_table, gcc_cdiag_char_table,
4816         gcc_cxxdiag_char_table): Update.
4817
4818 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4819
4820         * c-typeck.c (common_type): Correct comment.
4821
4822 2004-05-29  Peter Barada  <peter@the-baradas.com>
4823
4824         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
4825         * config/m68k/m68k.c (const_method): Likewise.
4826         * config/m68k/m68k.c (const_int_cost): Likewise.
4827         * config/m68k/m68k.c (const_int_cost): Likewise.
4828         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
4829
4830 2004-05-29  Peter Barada  <peter@the-baradas.com>
4831
4832         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
4833         addressing.
4834         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
4835         movsi,movhi,movqi insn patterns.
4836
4837 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4838
4839         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
4840
4841         PR target/15720
4842         * config/darwin.c (machopic_indirect_call_target): Copy
4843         the SYMBOL_REF_DECL from the original RTX for the new
4844         stub RTX.
4845
4846 2004-05-28  DJ Delorie  <dj@redhat.com>
4847
4848         * stor-layout.c (place_field): Revert erroneous commit.
4849
4850 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
4851
4852         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
4853         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
4854         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
4855         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
4856         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
4857         vec_ste): Remove type checks for integral parameters and literals
4858         from '..._args_eq' macros.
4859
4860 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4861
4862         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
4863
4864 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4865
4866         * testsuite/g++.dg/charset/function.cc: New.
4867
4868         * testsuite/gcc.dg/charset/function.c: New.
4869
4870         * c-decl.c (c_make_fname_decl): Free return value from
4871         fname_as_string.
4872
4873         * cp/decl.c (cp_make_fname_decl): Free return value from
4874         fname_as_string.
4875
4876         * c-common.c (fname_as_string): Translate if necessary.
4877
4878 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
4879
4880         * stringpool.c: Add comments to PCH saving/restoring routines.
4881
4882 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4883
4884         * c-common.c (c_estimate_num_insns_1): Kill.
4885         (c_estimate_num_insns): Kill.
4886         * c-common.h (c_estimate_num_insns): Kill.
4887
4888         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
4889         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
4890         Remove comment about not checking for
4891         _POSIX_PRIORITY_SCHEDULING.
4892         * gthr-posix.c: Likewise.
4893
4894 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
4895             Roger Sayle  <roger@eyesopen.com>
4896
4897         PR rtl-optimization/15649
4898         Add LTGT_EXPR and improve pretty-printing of unordered
4899         comparisons.
4900         * c-common.c (c_common_truthvalue_conversion):
4901         Handle LTGT_EXPR.
4902         * c-typeck.c (build_binary_op): Likewise.
4903         * dojump.c (do_jump): Likewise.
4904         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
4905         * predict.c (tree_predict_by_opcode): Likewise.
4906         * real.c (real_compare): Likewise.
4907         * tree-cfg.c (verify_expr): Likewise.
4908         * tree-inline.c (estimate_num_insns_1): Likewise.
4909         * tree-pretty-print.c (dump_generic_node): Likewise.
4910         Handle ORDERED_EXPR, UNORDERED_EXPR.
4911         (op_symbol): Print unordered comparisons differently
4912         than ordered ones.
4913         * tree.def (LTGT_EXPR): New '<' tree code.
4914         * doc/c-tree.texi (Expressions): Document floating-point
4915         comparison nodes.
4916
4917         Fold comparisons between floating point values.
4918         * fold-const.c (enum comparison_code): New, from
4919         #define'd constants.  Define compcodes for unordered
4920         comparisons and for invalid transformations.
4921         (invert_tree_comparison): Add "honor_nans" parameter.
4922         (fold_truthop): Revamp to work on floating-point types too.
4923         (comparison_to_compcode): Support unordered comparisons.
4924         Use new enum comparison_code.
4925         (compcode_to_comparison): Likewise.
4926         (combine_compcodes): New function.
4927         (invert_truthvalue): Let invert_tree_comparison decide
4928         whether it is valid to fold the comparison.  Fold ORDERED
4929         and UNORDERED even if flag_unsafe_math_optimizations is off,
4930         and the remaining even if flag_unsafe_math_optimizations
4931         is off but we are under -fno-trapping-math.
4932         (fold_relational_const): Integer modes do not honor NaNs.
4933
4934 2004-05-28  Paul Brook  <paul@codesourcery.com>
4935
4936         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
4937
4938 2004-05-28  Paul Brook  <paul@codesourcery.com>
4939
4940         * config/arm/arm.c (thumb_force_lr_save): New function.
4941         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
4942         thumb_output_function_prologue): Use it.
4943         (thumb_expand_prologue): Set lr_save_eliminated.
4944
4945 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4946
4947         * config/mips/mips.md (extendsidi2): Tie the source and destination
4948         of the register alternative.  Split it into nothing.
4949
4950 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4951
4952         * rtl.h (skip_consecutive_labels): Declare.
4953         * emit-rtl.c (skip_consecutive_labels): New function.
4954         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
4955         * jump.c (follow_jumps): Say what null return values mean.
4956
4957 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4958
4959         PR target/13250
4960         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
4961
4962 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4963
4964         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
4965         libgcc-std.ver.
4966         * config/sh/libgcc-std.ver: New file.
4967
4968 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4969
4970         * except.c: Revert change of 2004-05-26.
4971         * config/i386/i386.md: Revert change of 2004-05-27.
4972
4973 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4974
4975         * configure.ac: Remove --enable-tree-browser option.
4976         Define TREEBROWSER when ac_tree_checking is defined.
4977         * configure: Rebuilt.
4978
4979 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
4980
4981         * expr.c (store_constructor): Restore sanity check on
4982         the size of the type before clearing.
4983
4984 2004-05-27  Jan Hubicka  <jh@suse.cz>
4985
4986         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
4987
4988 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4989
4990         * combine.c (gen_binary): Remove.
4991         (known_cond, simplify_shift_const
4992         find_split_point, combine_simplify_rtx,
4993         simplify_if_then_else, simplify_set,
4994         simplify_logical, expand_field_assignment,
4995         extract_left_shift, force_to_mode,
4996         if_then_else_cond, apply_distributive_law,
4997         simplify_and_const_int, simplify_shift_const,
4998         gen_lowpart_for_combine, simplify_comparison,
4999         reversed_comparison): Replace with
5000         simplify_gen_binary, simplify_gen_relational or
5001         distribute_and_simplify_rtx.
5002         (distribute_and_simplify_rtx): New function.
5003         * simplify-rtx.c (simplify_binary_operation):
5004         Use nonzero_bits to simplify ANDs where we are
5005         turning off bits already known to be off in OP0.
5006
5007 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
5008
5009         PR target/14478
5010         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
5011
5012 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
5013
5014         PR middle-end/14084
5015         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
5016         to size of decl.
5017
5018 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
5019
5020         PR/14924
5021         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
5022
5023 2004-05-26  Roger Sayle  <roger@eyesopen.com>
5024
5025         * tree.h: Fix comment typo.
5026
5027 2004-05-27  Steven Bosscher  <stevenb@suse.de>
5028
5029         * gimplify.c (compare_case_labels): New function.
5030         (gimplify_switch_expr): Sort case labels, and make sure the
5031         last label in the label vector is the default case.
5032         * tree-cfg.c (group_case_labels): New function.
5033         (build_tree_cfg): Cleanup redundant labels and group case labels
5034         before creating edges.
5035         (cleanup_dead_labels): Handle GOTO_EXPRs.
5036         (find_case_label_for_value): Use a binary search to find the
5037         case label for the given value.
5038         * tree-gimple.c: Mention that labels are sorted, and that the
5039         last label must be the default.
5040
5041 2004-05-27  Jan Hubicka  <jh@suse.cz>
5042
5043         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
5044
5045 2004-05-27  Jan Hubicka  <jh@suse.cz>
5046
5047         * i386.md (UNSPECV_EH_RETURN): Kill.
5048         (eh_return): Use jump_insn.
5049         (eh_return_si, eh_return_di): Change pattern to jump instruction.
5050
5051 2004-05-26  Jan Hubicka  <jh@suse.cz>
5052
5053         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
5054         not loop optimizing.
5055
5056 2004-05-26  Jan Hubicka  <jh@suse.cz>
5057
5058         * except.c (can_throw_internal):  Notice RESX instructions.
5059
5060 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
5061
5062         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
5063         of the two sizes to assemble_integer.
5064
5065 2004-05-25  Paul Brook  <paul@codesourcery.com>
5066
5067         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
5068         pointless #ifdef.
5069
5070 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
5071
5072         * Makefile.in (top_builddir): Define to .
5073
5074 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
5075
5076         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
5077         top-level detects, except when in-tree ld is being cross-built.
5078         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
5079         then AS only if target is host.
5080         * configure: Rebuilt.
5081
5082 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
5083
5084         * global.c (global_alloc): Call make_accurate_live_analysis.
5085         (record_one_conflict): Remove dead code.
5086         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
5087         (bb_info): New structure.
5088         (BB_INFO, BB_INFO_BY_INDEX): New macros.
5089         (allocate_bb_info, free_bb_info, mark_reg_change,
5090         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
5091         modify_bb_reg_pav, calculate_reg_pav,
5092         make_accurate_live_analysis): New functions.
5093
5094 2004-05-25  Devang Patel  <dpatel@apple.com>
5095
5096         * alias.c (init_alias_analysis): Use ggc_calloc instead of
5097         xrealloc.
5098         (end_alias_analysis): Use ggc_free instead fo free.
5099
5100 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
5101
5102         PR target/15546
5103         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
5104         as needed to be outputted.
5105
5106 2004-05-25  Jan Hubicka  <jh@suse.cz>
5107
5108         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
5109
5110 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
5111         Mostafa Hagog  <mustafa@il.ibm.com>
5112
5113         * Makefile.in (modulo-sched.o, ddg.o): New.
5114         * ddg.h, ddg.c, modulo-sched.c: New files.
5115         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
5116         internals to "dupicate_insn".
5117         (duplicate_insn): New function.
5118         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
5119         declarations.
5120         * common.opt (fmodulo-sched): New flag.
5121         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
5122         Remove static and forward declaration.
5123         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
5124         functions.
5125         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
5126         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
5127         declarations.
5128         * flags.h (flag_modulo_sched): New flag.
5129         * opts.c (common_handle_option): Handle modulo-sched flag.
5130         * params.def (max-sms-loop-number, sms-max-ii-factor,
5131         sms-dfa-history, sms-loop-average-count-threshold): New
5132         parameters.
5133         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
5134         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
5135         parameters.
5136         * passes.c ("sms", "sms-vcg"): New dumps.
5137         (rest_of_handle_sched): Call sms_schedule.
5138         * rtl.h (sms_schedule): New declaration.
5139         * timevar.def (TV_SMS): New.
5140         * toplev.c (flag_modulo_sched): Initialize.
5141         (f_options): Handle -fmodulo-sched option.
5142         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
5143         * docs/passes.texi: Document new SMS pass.
5144
5145 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
5146
5147         * Makefile.in (OBJS): Add rtlhooks.o.
5148         (rtlanal.o): Depend on function.h.
5149         (cse.o): Depend on rtlhooks-def.h.
5150         (combine.o): Depend on rtlhooks-def.h.
5151         (rtlhooks.o): New rule.
5152         * combine.c: Include rtlhooks-def.h.
5153         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
5154         num_sign_bit_copies, cached_num_sign_bit_copies,
5155         num_sign_bit_copies1): Move most of the code to rtlanal.c.
5156         (reg_nonzero_bits_for_combine,
5157         reg_num_sign_bit_copies_for_combine): New functions holding
5158         the remnants of the above.
5159         (combine_rtl_hooks): New.
5160         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
5161         * cse.c: Include rtlhooks-def.h.
5162         (cse_rtl_hooks): New.
5163         (cse_main): Set rtl_hooks instead of gen_lowpart.
5164         * emit-rtl.c (gen_lowpart): Remove.
5165         (gen_lowpart_general): Move to rtlhooks.c.
5166         * rtl.h (nonzero_bits, num_sign_bit_copies,
5167         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
5168         (gen_lowpart_general): Remove.
5169         (gen_lowpart): Temporarily redefine as a macro.
5170         * rtlanal.c: Include function.h.
5171         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
5172         num_sign_bit_copies, cached_num_sign_bit_copies,
5173         num_sign_bit_copies1): New, from combine.c.
5174         * rtlhooks.c: New file.
5175         * rtlhooks-def.h: New file.
5176
5177 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
5178
5179         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
5180         to support 32-bit -mint8 mode.
5181
5182         * doc/invoke.texi (-mint8): Added documentation for the -mint8
5183         option in the AVR architecture.
5184
5185 2004-05-24  Mike Stump  <mrs@apple.com>
5186
5187         * doc/install.texi: Document that dejagnu 1.4.4 is required.
5188
5189 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
5190
5191         * intl.h (open_quote, close_quote): New.
5192         * intl.c (open_quote, close_quote): New.
5193         (gcc_init_libintl): Set them.
5194         * pretty-print.c: Include "intl.h".
5195         (pp_base_format_text): Support 'q' format flag and %` and %'
5196         formats.  Use ' instead of ` in comments.
5197         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
5198         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
5199         foramt_types_orig): Describe these new formats.
5200         (decode_format_attr, check_function_format,
5201         check_format_info_main): Use these new formats.
5202         (status_warning): Use ATTRIBUTE_GCC_DIAG.
5203         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
5204         check these formats to 3.5.
5205
5206 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5207
5208         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
5209         (BACKEND): Reflect this.
5210         (LIBDEPS): Move CPPLIB before LIBIBERTY.
5211         (LIBS): Likewise.
5212
5213 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
5214
5215         PR tree-optimization/14197
5216         * builtins.c: Include "tree-gimple.h"
5217         (readonly_data_expr): Use get_base_address.  Make sure to call
5218         decl_readonly_section only on trees it can handle.
5219         * tree-gimple.c (get_base_address): Accept STRING_CST and
5220         CONSTRUCTOR expressions.
5221         * Makefile.in: Update dependencies.
5222
5223 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
5224
5225         Move libcpp to the toplevel.
5226         * Makefile.in: Remove references to libcpp files,
5227         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
5228         and change hashtable.h to that.
5229         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
5230         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
5231         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
5232         * configure: Regenerate.
5233         * config.in: Regenerate.
5234         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
5235         * cppcharset.c: Removed.
5236         * cpperror.c: Removed.
5237         * cppexp.c: Removed.
5238         * cppfiles.c: Removed.
5239         * cpphash.c: Removed.
5240         * cpphash.h: Removed.
5241         * cppinit.c: Removed.
5242         * cpplex.c: Removed.
5243         * cpplib.c: Removed.
5244         * cpplib.h: Removed.
5245         * cppmacro.c: Removed.
5246         * cpppch.c: Removed.
5247         * cpptrad.c: Removed.
5248         * cppucnid.h: Removed.
5249         * cppucnid.pl: Removed.
5250         * cppucnid.tab: Removed.
5251         * hashtable.c: Removed.
5252         * hashtable.h: Removed.
5253         * line-map.c: Removed.
5254         * line-map.h: Removed.
5255         * mkdeps.c: Removed.
5256         * mkdeps.h: Removed.
5257         * stringpool.h: Include symtab.h instead of hashtable.h.
5258         * tree.h: Include symtab.h instead of hashtable.h.
5259         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
5260
5261 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5262
5263         * gcc.c (struct prefix_list): Add forward declaration.
5264         (do_spec_path): New function, extracted from...
5265         (do_spec_1) <'D'>: ... here.  Drop support for
5266         SPACE_AFTER_L_OPTION.
5267         (do_spec_1) <'I'>: Use do_spec_path.
5268         (process_command): Do not store the 'include' suffix
5269         in include_prefixes.
5270         * system.h: Poison SPACE_AFTER_L_OPTION.
5271
5272 2002-05-23  Roger Sayle  <roger@eyesopen.com>
5273
5274         * fold-const.c (non_lvalue): Explicitly list the tree codes that
5275         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
5276
5277 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
5278
5279         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
5280         Update based on printed manual.  Enable setting of offsets for
5281         FSFPRINT and move it to gcc-common.texi.
5282         * doc/gcc.texi: Update FSF printing details.
5283         * doc/gccint.texi: Remove FSF printing details.
5284
5285 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
5286
5287         * config/rs6000/t-rs6000: Remove the disabling -Werror.
5288
5289 2004-05-22  Roger Sayle  <roger@eyesopen.com>
5290
5291         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5292         expand_builtin_strrchr, expand_builtin_strpbrk,
5293         expand_builtin_mempcpy, expand_builtin_memcmp,
5294         expand_builtin_strcmp, expand_builtin_strncmp,
5295         expand_builtin_strcat, std_expand_builtin_va_start,
5296         std_expand_builtin_va_arg, expand_builtin_va_copy,
5297         expand_builtin_signbit, fold_builtin_cabs,
5298         fold_builtin_logarithm, fold_builtin_mempcpy,
5299         fold_builtin_signbit, fold_builtin_isascii,
5300         fold_builtin_toascii, fold_builtin_isdigit,
5301         fold_builtin_1, build_function_call_expr,
5302         simplify_builtin_strchr, simplify_builtin_strrchr,
5303         simplify_builtin_strpbrk, simplify_builtin_strncpy,
5304         simplify_builtin_memcmp, simplify_builtin_strcmp,
5305         simplify_builtin_strncmp, simplify_builtin_strncat,
5306         simplify_builtin_strspn, simplify_builtin_strcspn,
5307         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
5308         to build with calls to build2, build3 or omit_one_operand.
5309
5310 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5311
5312         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
5313         section when generating EABI code.
5314
5315 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5316
5317         PR 15546
5318         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
5319         Call mark_decl_referenced on the SYMBOL_REF_DECL.
5320
5321 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5322
5323         * c-common.c (c_common_truthvalue_conversion): Handle
5324         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5325         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5326         i.e. set the type to truthvalue_type_node and return.
5327
5328 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
5329
5330         * tree.h (struct tree_decl): Add possibly_inlined bit.
5331         (DECL_POSSIBLY_INLINED): New accessor macro.
5332         * cgraph.h: Remove declaration of cgraph_inline_hash.
5333         * cgraph.c: Remove definition of cgraph_inline_hash.
5334         (hash_node): Revert to hashing DECL_UID.
5335         (eq_node): Take two pointers to cgraph_node structures.
5336         Compare DECL_UIDs.
5337         (cgraph_remove_node): Pass the node directly to htab_find_slot.
5338         (cgraph_varpool_hash_node): Rename hash_varpool_node;
5339         hash on DECL_UID.
5340         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
5341         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
5342         (cgraph_node): Allocate a temporary node on the stack, fill in
5343         its DECL field, and pass that to htab_find_slot.
5344         (cgraph_varpool_node): Likewise.
5345         (cgraph_function_possibly_inlined_p): If global info is ready,
5346         return the DECL_POSSIBLY_INLINED bit.
5347         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
5348         instead of mucking with cgraph_inline_hash.
5349
5350 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5351
5352         * doc/contrib.texi: Add g77 contributors.
5353
5354 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5355
5356         * calls.c (initialize_argument_information): Forbid sibcalls if a
5357         callee-copied argument is stored in the current function's frame.
5358
5359 2004-05-22  Eric Christopher  <echristo@redhat.com>
5360
5361         * fix-header.c (read_scan_file): Update for add_path change.
5362
5363 2004-05-22  Ben Elliston  <bje@au.ibm.com>
5364
5365         * c.opt (Wmissing-include-dirs): New.
5366         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
5367         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
5368         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
5369         * c-incpath.h (add_path): Add fourth (bool) argument.
5370         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
5371         (add_standard_paths): Likewise.
5372         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
5373         is used and the directory was user-supplied via -I.
5374         (add_path): Set p->user_supplied_p.  Remove duplicated code by
5375         using add_cpp_dir_path ().
5376         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
5377         (struct cpp_dir): Add user_supplied_p.
5378         * doc/invoke.texi (Warning Options): Document new option.
5379
5380 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
5381
5382         * fold-const.c (fold_read_from_constant_string): Convert result to
5383         requested type.
5384
5385 2004-05-21  Richard Henderson  <rth@redhat.com>
5386
5387         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
5388         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
5389         Don't mark VA_ARG_EXPRs volatile here.
5390         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
5391
5392 2004-05-21  Richard Henderson  <rth@redhat.com>
5393
5394         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
5395         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
5396
5397 2004-05-21  Roger Sayle  <roger@eyesopen.com>
5398
5399         * fold-const.c (fold, fold_relational_hi_lo,
5400         nondestructive_fold_binary_to_constant,
5401         fold_read_from_constant_string): Use fold_convert instead of convert.
5402         * builtins.c (simplify_builtin, simplify_builtin_strstr,
5403         simplify_builtin_strchr, simplify_builtin_strrchr,
5404         simplify_builtin_strpbrk): Use fold_convert instead of convert.
5405
5406 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
5407
5408         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
5409         is NULL.
5410
5411 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
5412
5413         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
5414         override sparc.h definition.
5415
5416 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5417
5418         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
5419         get_unwidened, get_narrower): Replace build with build2.
5420         * fold-const.c (negate_expr, associate_trees, size_binop,
5421         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
5422         pedantic_omit_one_operand, distribute_bit_expr,
5423         make_bit_field_ref, optimize_bit_field_compare,
5424         decode_field_reference, range_binop, make_range,
5425         build_range_check, fold_range_test, fold_truthop,
5426         optimize_minmax_comparison, extract_muldiv_1,
5427         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
5428         fold_inf_compare, fold_single_bit_test, fold,
5429         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
5430         Likewise replace build with either build2 or build3.
5431
5432 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
5433
5434         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
5435         * calls.c (prepare_call_address): Don't test
5436         NO_RECURSIVE_FUNCTION_CSE.
5437         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
5438         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5439         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5440         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5441         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5442         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5443         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5444         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5445         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5446         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5447         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5448         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
5449         Likewise.
5450         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5451         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
5452         * doc/tm.texi (Costs): Remove documentation for
5453         NO_RECURSIVE_FUNCTION_CSE.
5454
5455 2004-05-20  Paul Brook  <paul@codesourcery.com>
5456
5457         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
5458         * unwind-dw2.c (extract_cie_info): Ditto.
5459         (_Unwind_FrameState): Change retaddr_column to word type.
5460
5461 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5462
5463         PR middle-end/3074
5464         * fold-const.c (strip_compound_expr): Delete function.
5465         (count_cond): Delete function.
5466         (fold_binary_op_with_conditional_arg): Only perform transformations
5467         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
5468         when a is constant.  This greatly simplifies this routine.
5469
5470         * tree.c (saved_expr_p): Delete function.
5471         * tree.h (saved_expr_p): Delete function prototype.
5472
5473 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5474
5475         * common.opt (ftree-loop-optimize): Remove.
5476
5477 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
5478
5479         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
5480         (NM_FOR_TARGET): Use := and $(shell).
5481         (mainversion): Remove unused variable.
5482
5483 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5484
5485         * reorg.c (delete_from_delay_slot): If we have a barrier after the
5486         sequence containing the insn to be deleted, always reemit it.
5487
5488 2004-05-20  Richard Henderson  <rth@redhat.com>
5489
5490         PR 15454
5491         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
5492         * function.c (expand_function_start): Expand static_chain_decl by hand.
5493         * gimplify.c (create_tmp_var_name): Export.
5494         * tree-gimple.h (create_tmp_var_name): Declare.
5495
5496 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5497
5498         * rs6000.c (print_operand) <case 'z'>: Call
5499         mark_decl_referenced before assemble_name.
5500
5501 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
5502
5503         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5504         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5505         (cgraph_varpool_node): Hash on the pointer to the decl, not
5506         the DECL_UID.  Fixes 64-bit bootstrap failure.
5507
5508 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
5509
5510         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
5511         we don't earlyclobber operands used in the second insn.
5512
5513 2004-05-20  Steven Bosscher  <stevenb@suse.de>
5514
5515         * tree-mudflap.c: Formatting fixes.
5516
5517 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
5518
5519         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
5520         * gengtype.c (open_base_files): Include reload.h in ifiles.
5521         * reload.h (reg_equiv_memory_loc_varray): Declare.
5522         * reload1.c (reg_equiv_memory_loc_varray): New variable.
5523         (init_reload): Initialize it.
5524         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
5525         reg_equiv_memory_loc_varray to size 0.
5526         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
5527         growing reg_equiv_memory_loc_varray to the desired size.
5528         * passes.c (rest_of_handle_old_regalloc): Likewise.
5529         * reload.c: Amend comment on calling init_reload.
5530
5531 2004-05-20  Nick Clifton  <nickc@redhat.com>
5532
5533         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
5534         with 'TRAMP' in the body of the macro definition.
5535
5536 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
5537
5538         PR target/15383
5539         * config/ia64/ia64.c (ia64_expand_compare): Don't check
5540         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
5541         cmptf_libfunc isn't set.
5542         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
5543         conventions.
5544         (ia64_sysv4_init_libfuncs): New.
5545
5546         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
5547         ia64_sysv4_init_libfuncs.
5548
5549 2004-05-20  Falk Hueffner  <falk@debian.org>
5550
5551         PR other/15526
5552         * libgcc2.c (__mulvsi3): Fix overflow test.
5553
5554 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
5555
5556         PR c/14171
5557         * reg-stack.c (nan): Rename to ...
5558         (not_a_num): Here.
5559         (reg_to_stack): Rename nan to not_a_num.
5560         (subst_stack_regs_pat): Likewise.
5561         (convert_regs_entry): Likewise.
5562         (convert_regs_1): Likewise.
5563
5564         * tree-cfg.c (find_case_label_for_value): Replace call to
5565         simple_cst_equal with tree_int_cst_equal.
5566
5567 2004-05-19  Jeff Law <law@redhat.com>
5568
5569         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
5570         If the operand is for a use, then strip away the SSA_NAME, do not
5571         strip away the SSA_NAME for a set.  Never call release_ssa_name.
5572         (mark_def_sites): Appropriately pass additional argument to
5573         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
5574         then set the VDEF_RESULT to the VDEF_OP.
5575         (set_def_block): Strip away any SSA_NAME to get to the real
5576         underlying variable.
5577
5578         * tree-ssa-phiopt.c (value_replacement): Handle the case where
5579         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
5580         BB directly.
5581
5582 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5583
5584         PR c++/15463
5585         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
5586         result of inverse.
5587
5588         PR rtl-optimization/15274
5589         * loop-iv.c (determine_max_iter, shorten_into_mode,
5590         iv_number_of_iterations): Handle constants correctly.
5591         * rtl.h (get_mode_bounds): Declaration changed.
5592         * stor-layout.c (get_mode_bounds): Return a constant suitable for
5593         the target mode.
5594
5595         PR rtl-optimization/14692
5596         * loop-unswitch.c (may_unswitch_on): Try folding the result.
5597         (unswitch_single_loop): Work correctly when may_unswitch_on
5598         returns a folded constant.
5599
5600         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
5601         * simplify-rtx.c (simplify_const_relational_operation): Optimize
5602         comparisons with mode bounds.
5603
5604         * function.c (struct temp_slot): Add new field prev.
5605         (free_after_compilation, init_temp_slots): Free new fields.
5606         (cut_slot_from_list, insert_slot_to_list,
5607         temp_slots_at_level, max_slot_level, move_slot_to_level,
5608         make_slot_available): New functions.
5609         (assign_stack_temp_for_type, combine_temp_slots,
5610         find_temp_slot_from_address, preserve_temp_slots,
5611         preserve_rtl_expr_result, free_temp_slots,
5612         free_temps_for_rtl_expr, pop_temp_slots): Work with
5613         the new structure of lists.
5614         (mark_all_temps_used): Removed.
5615         * function.h (struct function): Field x_temp_slots
5616         replaced by x_used_temp_slots and x_avail_temp_slots.
5617         (temp_slots): Replaced by ...
5618         (used_temp_slots, avail_temp_slots): New.
5619         * tree.h (mark_all_temps_used): Declaration removed.
5620
5621         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
5622         simplify_using_assignment): Take the expression out of
5623         the expr_list wrapper.
5624
5625         * loop-iv.c (iv_number_of_iterations): Improve clasification of
5626         infinite loops.
5627
5628 2004-05-19  Roger Sayle  <roger@eyesopen.com>
5629
5630         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
5631         costs should be based on code size when optimizing for size.
5632
5633 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
5634
5635         * fold-const.c: Remove non-printable character 160.
5636
5637 2004-05-19  Nick Clifton  <nickc@redhat.com>
5638
5639         * doc/invoke.texi (ARM Options): Fix typo.
5640         Remove descrption of -mshort-load-bytes and
5641         -mno-short-load-bytes.
5642
5643         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
5644         missing parenthesis.
5645         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
5646         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
5647
5648 2004-05-19  Steven Bosscher  <stevenb@suse.de>
5649
5650         * expr.c (store_constructor): Build loop start and end by hand
5651         instead of via loop functions from stmt.c.
5652         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
5653         Remove the code to expand them.
5654
5655         * stmt.c (loop_stack): Remove this and everything related.
5656         (struct nesting, enum nesting_desc): Update.
5657         (expand_fixup): Likewise.
5658         (expand_loop_start, expand_start_loop_continue_elsewhere,
5659         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
5660         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
5661         expand_exit_loop_if_false, expand_exit_loop_top_cond,
5662         expand_exit_something): Remove.
5663         * tree.h: Remove prototypes.
5664
5665 2004-05-18  Mike Stump  <mrs@apple.com>
5666             Devang Patel  <dpatel@apple.com>
5667
5668         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
5669         if this label is for eh.
5670         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
5671         * config/darwin.c (darwin_emit_unwind_label): Likewise.
5672         * dwarf2out.c (output_call_frame_info): Likewise.
5673         * output.h (default_emit_unwind_label): Likewise.
5674         * target.h (unwind_label): Likewise.
5675         * varasm.c (default_emit_unwind_label): Likewise.
5676
5677         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
5678         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
5679         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
5680         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
5681         DEBUG_RANGES_SECTION): Define.
5682
5683 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
5684
5685         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5686         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5687         (cgraph_varpool_node):
5688         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
5689         (cgraph_function_possibly_inlined_p): Use the decl itself for
5690         the key, not DECL_ASSEMBLER_NAME.
5691         (change_decl_assembler_name): No need to muck with the hash tables.
5692         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
5693         Delete.
5694         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
5695         for the key, not DECL_ASSEMBLER_NAME.
5696         * cgraph.h: Remove prototypes of deleted functions.
5697         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
5698         (mark_decl_referenced): New function.
5699         * tree.h: Prototype mark_decl_referenced.
5700         * final.c (output_addr_const) <case SYMBOL_REF>: Call
5701         mark_decl_referenced before assemble_name.
5702         * c-decl.c (finish_decl): Use mark_decl_referenced.
5703
5704 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
5705             Jeff Law <law@redhat.com>
5706
5707         * tree-ssa-phiopt.c (abs_replacement): New function.
5708         (empty_block_p): New function extracted from...
5709         (candidate_bb_for_phi_optimization): Break out empty block test.
5710         (conditional_replacement): Use empty_block_p.
5711         (value_replacement): Similarly.
5712
5713         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
5714         * tree-ssa-phiopt.c: Include flags.h.
5715         (conditional_replacement): Remove argument names from prototype.
5716         Minor formatting and comment fixes.
5717         (tree_ssa_phiopt): If conditional_replacement returns false, then
5718         call value_replacement.
5719         (value_replacement): New function.
5720
5721 2004-05-18  Jeff Law  <law@redhat.com>
5722
5723         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
5724         from conditional_replacement.
5725         (candidate_bb_for_phi_optimization): Similarly.
5726         (conditional_replacement): Use replace_phi_with_stmt and
5727         candidate_bb_for_phi_optimization.
5728
5729         * tree-ssa-phiopt.c: Fix various formatting issues.
5730
5731 2004-05-18  Steven Bosscher  <stevenb@suse.de>
5732
5733         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
5734         s390_expand_cmpmem): Do not use expand_start_loop and
5735         expand_end_loop, instead build the loop manually.
5736
5737 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
5738
5739         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
5740         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
5741
5742 2004-05-17  Jeff Law  <law@redhat.com>
5743
5744         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
5745         * flags.h (flag_delete_null_pointer_checks): Here.
5746         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
5747         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
5748         (add_phi_arg, remove_phi_arg_num): Similarly.
5749         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
5750         property into PHI nodes.
5751         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
5752         (record_equivalences_from_phis): If all PHI arguments are known to be
5753         nonzero, then the result must be nonzero as well.
5754         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
5755         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
5756         appropriately.  Walk the USE-DEF chains and propagate nonzero property
5757         as appropriate.
5758         * tree.h (PHI_ARG_NONZERO): Define.
5759         (phi_arg_d): Add nonzero flag.
5760
5761 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
5762
5763         * f: Entire directory removed
5764
5765         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
5766         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
5767         (g77_integer_type_node, g77_uinteger_type_node)
5768         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
5769         * c-common.c (c_common_nodes_and_builtins): Do not initialize
5770         the above set of variables.
5771
5772         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
5773         * doc/invoke.texi, doc/standards.texi: Remove cross-references
5774         to g77 manual.
5775
5776 2004-05-17  Steven Bosscher  <stevenb@suse.de>
5777
5778         PR tree-optimization/15438
5779         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
5780         attributed functions as pure or const.
5781
5782 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
5783
5784         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
5785         from source code with errors.
5786
5787 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
5788
5789         Enable tree browser for all front ends.
5790         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
5791         (BACKEND): ...to here.
5792
5793 2004-05-17  Jan Hubicka  <jh@suse.cz>
5794
5795         * i386.c (construct_container): Do not produce BLKmode registers.
5796         (classify_argument): Properly compute alignment of complex types.
5797
5798 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
5799
5800         PR target/15084
5801         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
5802         and renamed to movdi_insv_1_rex64.
5803         (insv): Support SImode for 32bit and DImode for 64bit.
5804
5805 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5806
5807         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
5808         (TARGET_SWITCHES): Remove debugg.
5809         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
5810         TARGET_64BIT.
5811         (subdi3): Replace the define_expand with a define_insn, the latter
5812         renamed from subdi3_internal_3.
5813         (negdi2): Likewise negdi2_internal_2.
5814         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
5815         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
5816         and associated define_splits.
5817         (adddi3_internal): Renamed from adddi3_internal_3.
5818         (ashldi3_internal): Likewise ashldi3_internal4.
5819         (ashrdi3_internal): Likewise ashrdi3_internal4.
5820         (lshrdi3_internal): Likewise lshrdi3_internal4.
5821
5822 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5823
5824         * optabs.c (expand_unop): Try implementing negation using subtraction
5825         from zero.
5826
5827 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5828
5829         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
5830         SAR register.
5831
5832 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
5833
5834         PR target/10982
5835         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
5836         (ne_zeroextractsi_shifted): New pattern.
5837         (ite_ne_zeroextractsi): New pattern.
5838         (ite_ne_zeroextractsi_shifted): New pattern.
5839
5840 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5841
5842         * c-gimplify.c (c_genericize):
5843         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
5844         * c-parse.in <expr_no_commas>: Likewise.
5845         <if_prefix>: Likewise.
5846         <select_or_iter_stmt>: Likewise.
5847         * expr.c (expand_var, expand_expr_real_1): Likewise.
5848         * expr.h (expand_expr): Make it a static inline function.
5849         Move prototype for expand_expr_real up before this.
5850         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
5851         Likewise.
5852         * gimplify.c (gimple_boolify, gimplify_addr_expr,
5853         gimplify_asm_expr, gimplify_expr): Likewise.
5854         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
5855         dump_function_to_file): Likewise.
5856         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
5857         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
5858         * tree-into-ssa.c (dump_tree_ssa): Likewise.
5859         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
5860         Likewise.
5861         * tree-optimize.c (execute_one_pass): Likewise.
5862         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
5863         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
5864
5865         * objc/objc-act.c (objc_build_try_enter_fragment,
5866         objc_build_try_epilogue, objc_build_catch_stmt,
5867         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
5868         with lang_hooks.foo ().
5869
5870 2004-05-15  Roger Sayle  <roger@eyesopen.com>
5871
5872         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
5873         that simplify_builtin doesn't destructively modify its argument.
5874
5875 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5876
5877         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
5878         implementations for ARM and Thumb.
5879         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
5880
5881 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
5882
5883         * prefix.c (update_path): Replace PREFIX with KEY only
5884         when it matches a full directory name in PATH.
5885
5886 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5887
5888         * arm.h (TARGET_APCS_32): Delete.
5889         (TARGET_MMU_TRAPS): Delete.
5890         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
5891         define __APCS_26__.
5892         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
5893         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
5894         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
5895         (prog_mode_type): Delete.
5896         (PROMOTE_MODE): Always promote unsigned for HImode.
5897         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
5898         (MASK_RETURN_ADDR): Simplify.
5899         * arm.c (arm_prgmode): Delete.
5900         (arm_override_options, arm_gen_rotated_half_load): Simplify.
5901         (print_multi_reg, output_return_instruction): Simplify.
5902         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
5903         (arm_return_addr): Simplify.
5904         * arm.md (prog_mode): Delete.
5905         (conds): Simplify.
5906         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
5907         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
5908         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
5909         (loadhi_shiftpredec): Delete.
5910         (peephole for post-increment on HImode load): Delete.
5911         * arm/crtn.asm: (FUNC_END): Simplify.
5912         * arm/lib1funcs.asm: Remove APCS-26 return macros.
5913         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
5914         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
5915         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
5916         MULTILIB_DEFAULTS as required.
5917         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
5918         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
5919         variables as required.
5920         * doc/invoke.texi (ARM Options): Remove obsolete flags.
5921
5922 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
5923
5924         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
5925         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
5926         count to 8 to handle n_reg > 2.
5927
5928 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5929
5930         * doc/extend.texi: Update WG14 URL.
5931
5932 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5933
5934         * basic-block.h (life_analysis, delete_noop_moves):
5935         Update prototypes.
5936         * bt-load.c (branch_target_load_optimize): Don't take the
5937         insns stream as an argument.  Update the life_analysis calls.
5938         * combine.c (combine_instructions): Update delete_noop_moves
5939         calls.
5940         * flow.c (notice_stack_pointer_modification): Don't take the
5941         insns stream as an argument.  Work on the flow graph.
5942         (life_analysis): Likewise.
5943         (delete_noop_moves): Likewise.
5944         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
5945         (rest_of_handle_life): Update life_analysis call.
5946         (rest_of_compilation): Likewise, and also update
5947         branch_target_load_optimize call.
5948         * ra.c (reg_alloc): Update life_analysis call.
5949         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
5950         the insns stream as an argument.
5951         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
5952         call.
5953         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
5954         prototypes.
5955         * value-profile.c (branch_prob): Update life_analysis call.
5956         * web.c (web_main): Work on the CFG, not on the insns stream.
5957
5958         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
5959         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
5960         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5961
5962 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5963
5964         PR c/15444
5965         * c-format.c (avoid_dollar_number): New function.
5966         (check_format_info_main): Call avoid_dollar_number when operand
5967         numbers might occur but has_operand_number == 0.
5968
5969 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
5970
5971         * arm.md (all peephole2 patterns): Use predicates that validate
5972         register classes as appropriate.
5973
5974 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5975
5976         PR opt/14472
5977         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
5978         ignore type conversions that do not inhibit tail calling.
5979         (find_tail_calls): Likewise.
5980
5981 2004-05-14  Jeff Law  <law@redhat.com>
5982
5983         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
5984         bother marking bypassed virtuals for out-of-ssa.  Instead merge
5985         bypassed virtuals into vars_to_rename just before into-ssa pass.
5986
5987         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
5988         so that it picks up more opportunities to eliminate ABS expressions
5989         or turn them into negations.
5990
5991 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5992
5993         * passes.c (rest_of_handle_null_pointer): Remove.
5994         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
5995         (rest_of_compilation): Likewise.
5996         * rtl.h (delete_null_pointer_checks): Remove prototype.
5997         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
5998         Remove declarations.
5999         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
6000         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
6001         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
6002         expr_reaches_here_p, computing_insn, def_reaches_here_p,
6003         can_disregard_other_sets, handle_avail_expr, classic_gcse,
6004         one_classic_gcse_pass, invalidate_nonnull_info,
6005         delete_null_pointer_checks_1, delete_null_pointer_checks,
6006         expr_reached_here_p_work): Remove.
6007         (gcse_main): Do not perform classic GCSE when optimizing for size.
6008         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
6009         are never used.
6010
6011 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
6012
6013         PR optimization/14466
6014         * tree-complex.c (make_temp): Remove.
6015         (gimplify_val): Replace make_temp with make_rename_temp
6016         and add NULL as the second argument.
6017         (expand_complex_div_wide): Likewise.
6018         * tree-dfa.c (make_rename_temp): New function.
6019         * tree-flow.h (make_rename_temp): Declare.
6020         * tree-sra.c (make_temp): Remove.
6021         (lookup_scalar): Replace make_temp with make_rename_temp.
6022         (create_scalar_copies): Likewise.
6023         * tree-ssa-phiopt.c (conditional_replacement): When we
6024         get non gimple create a temporary variable to hold the
6025         casted expression.
6026
6027 2004-05-14  Paul Brook  <paul@codesourcery.com>
6028
6029         * stor-layout.c (update_alignment_for_field): Use
6030         targetm.align_anon_bitfield.
6031         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
6032         (TARGET_INITIALIZER): Use it.
6033         * target.h (struct gcc_target): Add align_anon_bitfield.
6034         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
6035         (TARGET_ALIGN_ANON_BITFIELD): Define.
6036         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
6037
6038 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
6039
6040         * tree.def (documentation): Remove mention of class 'b'.
6041         (BLOCK): Now in class 'x'.
6042         * c-common.c (verify_tree): Remove case 'b'.
6043         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
6044         * calls.c (calls_function_1): Control cannot get past the switch
6045         when exp is a BLOCK.
6046         * print-tree.c (print_node): Move code for class 'b' to the class
6047         'c'/'x' switch, as case BLOCK.
6048         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
6049         (unsafe_for_reeval, substitute_placeholder_in_expr)
6050         (stabilize_reference_1): Remove case 'b'.
6051         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
6052         of something being 'b' to tests for TREE_CODE of something being
6053         BLOCK.
6054         * tree-ssa-operands.c (get_expr_operands): Likewise.
6055
6056 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
6057
6058         * tree-gimple.c: Rename from tree-simple.c.
6059         * tree-gimple.h: Rename from tree-simple.h.
6060         * c-gimplify.c: Rename from c-simplify.c
6061         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
6062         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
6063         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
6064         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
6065         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
6066         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
6067         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
6068         Update.
6069
6070 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
6071
6072         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
6073
6074 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
6075
6076         * tree-ssa.c (delete_tree_ssa): XFREE
6077         bitmaps allocated with BITMAP_XMALLOC.
6078
6079         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
6080         idfs_cache at the end of the function.
6081
6082         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
6083         at the end of the function.
6084
6085         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
6086         el at the end of the function.
6087
6088         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
6089         bitmaps allocated with BITMAP_XMALLOC.
6090
6091         * loop-unswitch.c (unswitch_single_loop): Free bbs at
6092         the end.
6093
6094         * final.c (shorten_branches): Free uid_shuid before
6095         reallocating it.
6096
6097         * bb-reoder.c (connect_traces): Free cold_traces at the end.
6098
6099 2004-05-13  Jeff Law  <law@redhat.com>
6100
6101         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
6102         variables.  Simplify slightly by using USE_OP/DEF_OP instead
6103         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
6104
6105         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
6106         rather than iterating through the blocks testing each bit in
6107         livein to initialize the worklist.
6108         (mark_def_sites): Remove useless checks of KILLS for virtual
6109         operands.
6110
6111         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
6112         new parameters for the statement and variable worklist as well
6113         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
6114         worklist recording interesting variables in the variable worklist
6115         and bitmap.  Handle casts between integral and boolean types.
6116         (substitute_single_use_vars): Accept new parameters for the statement
6117         and variable worklist.  When a substitution is made add a new
6118         entry to the statement worklist.  Handle casts between integral
6119         and boolean types.
6120         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
6121         worklists to children.  Iterate until the statement worklist
6122         is empty.
6123
6124 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
6125
6126         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
6127         the end of the block.
6128
6129         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
6130         with BITMAP_XMALLOC.
6131
6132         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
6133         with BITMAP_XMALLOC.
6134
6135         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
6136         Free nonzero_vars at the end of the function.
6137
6138         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
6139         need to generate code instead of a NOP_EXPR.
6140
6141 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
6142
6143         * gcc.c (default_compilers): Fill out initializers for new Fortran
6144         entries.
6145
6146 2004-05-13  Paul Brook  <paul@codesourcery.com>
6147
6148         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
6149
6150 2004-05-13  Paul Brook  <paul@codesourcery.com>
6151
6152         * config/arm/arm.c (arm_default_short_enums): New function.
6153         (TARGET_DEFAULT_SHORT_ENUMS): Define.
6154
6155 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
6156
6157         Merge from tree-ssa-20020619-branch.
6158
6159         * Makefile.in (reload1.o-warn): Add.
6160         (tree-alias-ander.o-warn): Add.
6161         (GMPLIBS): Define.
6162         (GMPINC): Define.
6163         (BANSHEELIB): Define.
6164         (BANSHEEINC): Define.
6165         (TREE_DUMP_H): Define.
6166         (TREE_SIMPLE_H): Define.
6167         (TREE_FLOW_H): Define.
6168         (LIBDEPS): Add BANSHEELIB.
6169         (INCLUDES): Add BANSHEEINC and GMPINC.
6170         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
6171         c-mudflap.o and c-pretty-print.o.
6172         (C_OBJS): Remove c-pretty-print.o.
6173         (OBJS-common): Remove sibcall.o.
6174         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
6175         tree-ssa.o, tree-optimize.o, tree-simple.o,
6176         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
6177         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
6178         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
6179         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
6180         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
6181         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
6182         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
6183         tree-tailcall.o, gimple-low.o, tree-iterator.o,
6184         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
6185         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
6186         tree-profile.o.
6187         (OBJC-archive): Add tree-nomudflap.o.
6188         (cc1): Add dependency on @TREEBROWSER@.
6189         (c-decl.o): Add dependency on TREE_DUMP_H.
6190         (c-dump.o): Likewise.
6191         (c-common.o): Add dependency on tree-iterator.h
6192         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
6193         (gtype-desc.o): Add dependency on TREE_FLOW_H.
6194         (tree.o): Add dependency on tree-iterator.h,
6195         BASIC_BLOCK_H and TREE_FLOW_H.
6196         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
6197         (langhooks.o): Add dependency on TREE_SIMPLE_H.
6198         (tree-alias-type.o, tree-alias-ander.o,
6199         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
6200         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
6201         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
6202         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
6203         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
6204         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
6205         tree-nested.o, tree-iterator.o, tree-dfa.o,
6206         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
6207         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
6208         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
6209         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
6210         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
6211         tree-sra.o, tree-complex.o, tree-profile.o,
6212         rtl-profile.o): New rules.
6213         (function.o): Add dependency on basic-block.h
6214         (expr.o): Add dependency on tree-iterator.h.
6215         (sibcall.o): Remove.
6216         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
6217         (cfg.o): Add dependency on TIMEVAR_H.
6218         (cfghooks.o): Add dependency on TREE_FLOW_H.
6219         (reg-stack.o): Add dependency on basic-block.h.
6220         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
6221         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
6222         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
6223         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
6224         tree-alias-type.h, tree-alias-common.h,
6225         tree-alias-type.c, tree-alias-common.c,
6226         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
6227         rtl-profile.c and tree-nested.c.
6228         (gt-tree-alias-common.h, gt-tree-mudflap.h,
6229         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
6230         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
6231         gt-tree-cfg.h, gt-tree-nested.h): New rules.
6232         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
6233         * basic-block.h: Include predict.h
6234         (struct edge_def): Add GTY marker.
6235         Change field 'insns' to be a union of tree and rtx.
6236         (EDGE_TRUE_VALUE): Define.
6237         (EDGE_FALSE_VALUE): Define.
6238         (EDGE_EXECUTABLE): Define.
6239         (struct bb_ann_d): Forward declare.
6240         (struct basic_block_def): Add GTY marker.
6241         Remove fields head_tree and end_tree.
6242         Add fields stmt_list, rbi and tree_annotations.
6243         (struct reorder_block_def): Define.
6244         (basic_block_info): Add GTY marker.
6245         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
6246         variables instead of macros.
6247         (flow_call_edges_add): Remove declaration.
6248         (make_eh_edge): Remove declaration.
6249         (brief_dump_cfg, find_edge, tree_predicted_by_p,
6250         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
6251         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
6252         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
6253         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
6254         (try_redirect_by_replacing_jump): Modfiy return type to
6255         edge instead of bool.
6256         * bb-reorder.c (copy_bb): Call duplicate_block
6257         instead of cfg_layout_duplicate_bb.
6258         (copy_bb_p): Call can_duplicate_block_p instead of
6259         cfg_layout_can_duplicate_bb_p.
6260         * bitmap.c (bitmap_first_set_bit): Abort if word
6261         wasn't found.
6262         (bitmap_last_set_bit): Likewise.
6263         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
6264         (DEF_FUNCTION_TYPE_3): Add.
6265         * builtins.c (c_strlen): Make extern.
6266         (builtin_save_expr): New.
6267         (expand_builtin_nonlocal_goto): New.
6268         (expand_builtin_constant_p): Remove.
6269         (expand_builtin_mathfn): Call builtin_save_expr instead
6270         of save_expr.
6271         (expand_builtin_mathfn_2): Likewise.
6272         (expand_builtin_strcmp): Likewise.
6273         (expand_builtin_strncmp): Likewise.
6274         (expand_builtin_strcat): Likewise.
6275         (fold_builtin_cabs): Likewise.
6276         (expand_builtin_alloca): Don't trigger if -fmudflap is
6277         given.
6278         (build_string_literal): Set TREE_INVARIANT on new node.
6279         (expand_builtin_profile_fun): New.
6280         (round_trampoline_addr): New.
6281         (expand_builtin_init_trampoline): New.
6282         (expand_builtin_adjust_trampoline): New.
6283         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
6284         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
6285         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
6286         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
6287         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
6288         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
6289         Handle.
6290         (fold_builtin_expect): New.
6291         (fold_builtin_isascii): Don't return non-constant results
6292         in GIMPLE form.
6293         (fold_builtin_isdigit): Likewise.
6294         (fold_builtin_1): New.
6295         (fold_builtin): Call it.
6296         (build_function_call_expr): Update call to build a new
6297         CALL_EXPR.
6298         (purge_builtin_constant_p): Remove.
6299         (simplify_builtin, simplify_builtin_memcmp,
6300         simplify_builtin_strcmp, simplify_builtin_strncmp,
6301         simplify_builtin_strpbrk, simplify_builtin_strstr,
6302         simplify_builtin_strchr, simplify_builtin_strrchr,
6303         simplify_builtin_strcat, simplify_builtin_strncat,
6304         simplify_builtin_strspn, simplify_builtin_strcspn,
6305         simplify_builtin_next_arg, simplify_builtin_va_start,
6306         simplify_builtin_sprintf): New.
6307         * builtins.def (BUILT_IN_STACK_ALLOC,
6308         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
6309         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
6310         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
6311         BUILT_IN_PROFILE_FUNC_EXIT): Define.
6312         * c-common.c: Include tree-iterator.h and hashtab.h.
6313         (lang_statement_code_p): Declare.
6314         (lang_gimplify_stmt): Declare.
6315         (fix_string_type): Set TREE_INVARIANT for value.
6316         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
6317         (c_type_hash): New.
6318         (c_common_get_alias_set): Handle multiple type nodes
6319         referring to "the same" type, currently for C90 only.
6320         (c_add_case_label): Use create_artificial_label.
6321         (finish_label_address_expr): Don't set TREE_CONSTANT on
6322         result.
6323         (c_expand_expr): Don't handle STMT_EXPR.
6324         (handle_alias_attribute): Marke aliased variables to be
6325         TREE_STATIC.
6326         (handle_nonnull_attribute): Initialize arg_num.
6327         (check_function_nonnull): Likewise.
6328         (c_walk_subtrees): New.
6329         (c_estimate_num_insns_1): Don't handle
6330         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
6331         (c_decl_uninit_1): Remove.
6332         (c_decl_uninit): Remove.
6333         (c_warn_unused_result): New.
6334         * c-common.def (ASM_STMT): Change number of operands
6335         to 4.
6336         (FILE_STMT): Remove.
6337         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
6338         Remove.
6339         (lang_gimplify_stmt): Add.
6340         (expand_stmt): Remove.
6341         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
6342         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
6343         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
6344         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
6345         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
6346         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6347         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6348         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
6349         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
6350         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
6351         genrtl_compound_stmt, genrtl_asm_stmt,
6352         genrtl_cleanup_stmt, c_decl_uninit): Remove.
6353         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
6354         c_tree_chain_matters_p, c_warn_unused_result,
6355         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
6356         Declare.
6357         * c-convert.c (convert): Make convert work when
6358         converting to compatible types across translation unit.
6359         * c-decl.c: Include langhooks.h, tree-mudflap.h,
6360         tree-simple.h, diagnostic.h and tree-dump.h
6361         (merge_decls): Initialize oldtype to NULL.
6362         (finish_decl): Use DECL_HARD_REGISTER instead of
6363         DECL_C_HARD_REGISTER.
6364         (check_bitfield_type_and_width): Check for null
6365         lang_type_specific when check the precision of an enum.
6366         (grokdeclarator): Immediately layout an ARRAY_TYPE used
6367         in a pointer-to-array declarator.
6368         (finish_struct): Clear allocated struct lang_type.
6369         (finish_enum): Set enum_min and enum_max.  Set
6370         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
6371         not to the enumerators.
6372         (set_decl_nonlocal): New.
6373         (store_parm_decls): Use it via walk_tree.
6374         (c_finalize): New.
6375         (finish_function): When !targetm.have_ctors_dtors,
6376         record static constructors and destructors here...
6377         (c_expand_body_1): ... not here.
6378         (c_expand_decl): Rename from c_expand_decl_stmt.
6379         Handle all C-specific expansion semantics.
6380         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
6381         STMT_LINENO.
6382         * c-format.c (handle_format_arg_attribute): Initialize
6383         format_num.
6384         * c-lang.c: Include tree-inline.h
6385         (LANG_HOOKS_EXPAND_DECL,
6386         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6387         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
6388         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
6389         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
6390         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
6391         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
6392         (c_types_compatible_p): New.
6393         * c-mudflap.c: New file.
6394         * c-objc-common.c: Include tree-mudflap.h
6395         (start_cdtor, finish_cdtor): Collapse
6396         together into
6397         (build_cdtor): ...here.  Update to construct a complete tree
6398         for the function.  No need to call push_scope, pop_scope, or
6399         clear_last_expr, or set current_function_cannot_inline.
6400         (c_missing_noreturn_ok_p): Change prototype to return
6401         bool.
6402         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
6403         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
6404         opts.c.
6405         (c_common_post_options): Don't ever use rtl inlining.
6406         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
6407         * c-pragma.c (handle_pragma_redefine_extname): Define
6408         always.
6409         (init_pragma): Activate #pragma redefine_extname for mudflap.
6410         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
6411         (pp_c_initializer): Accept any type CONSTRUCTOR.
6412         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
6413         COMPLEX_TYPE.
6414         (decl_name_str): New local function.
6415         (pp_c_direct_declarator): Call it.
6416         (pp_c_primary_expression): Call it.
6417         (pp_c_id_expression): Call it.
6418         (pp_c_statement): Call it.
6419         (print_c_tree): Create new pp object.
6420         * c-pretty-print.h (pp_c_tree_decl_identifier,
6421         print_c_tree): Declare.
6422         * c-semantics.c: Include langhooks.h
6423         (lang_expand_stmt, lang_expand_decl_stmt,
6424         find_reachable_label_1, find_reachable_label,
6425         expand_unreachable_if_stmt, expand_unreachable_stmt,
6426         genrtl_do_stmt_1): Remove.
6427         (begin_stmt_tree): Don't check for changed filename.
6428         Call annotate_with_locus.
6429         (finish_stmt_tree): Don't set line for end of function.
6430         (build_stmt): Don't check type nodes for
6431         side effects.
6432         (build_stmt): Set TREE_SIDE_EFFECTS.
6433         Set EXPR_LOCUS instead of STMT_LINENO.
6434         (lang_expand_stmt, lang_expand_decl_stmt,
6435         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6436         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6437         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
6438         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
6439         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
6440         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
6441         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
6442         find_reachable_label_1, expand_unreachable_if_stmt,
6443         expand_unreachable_stmt): Remove.
6444         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
6445         * c-simplify.c: New file.
6446         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
6447         (struct lang_type): Add fields enum_min and enum_max.
6448         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
6449         (c_expand_decl, c_missing_noreturn_ok_p,
6450         c_types_compatible_p): Declare.
6451         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
6452         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
6453         (default_function_array_conversion): Rely on build to
6454         set TREE_CONSTANT.
6455         (parser_build_binary_op, pointer_diff): Likewise.
6456         (build_unary_op, build_binary_op): Likewise.
6457         (build_array_ref):
6458         (build_external_ref): Set TREE_INVARIANT.
6459         (build_c_cast, pop_init_level): Likewise.
6460         (process_init_element): Use ASM_VOLATILE_P.
6461         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
6462         (c_finish_case): Call c_do_switch_warnings.
6463         * c.opt (fdump-): Remove.
6464         * calls.c (try_to_integrate): Remove.
6465         (prepare_call_address): Replace fndecl arg with a
6466         precomputed static chain value.
6467         (emit_call_1): New argument for full call expr.
6468         (flags_from_decl_or_type): Call special_function_p.
6469         (initialize_argument_information): Add argument
6470         may_tailcall.
6471         (purge_reg_equiv_notes): New.
6472         (expand_call): Do not try to expand calls inline.
6473         (fixup_tail_calls): New.
6474         * cfg.c: Include timevar.h and ggc.h.
6475         (bb_pool, edge_pool): Remove.
6476         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
6477         (entry_exit_blocks): Remove.
6478         (rbi_pool): Declare.
6479         (init_flow): Do not create pools.
6480         Allocate entry/exit block.
6481         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
6482         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
6483         (unlink_block): Clear b->prev_bb and b->next_bb.
6484         (compact_blocks): Clear all slots of BASIC_BLOCK array.
6485         (dump_flow_info): Work on trees too.
6486         (dump_cfg_bb_info): New.
6487         (brief_dump_cfg): New.
6488         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
6489         (find_edge): New.
6490         * cfgbuild.c (rtl_make_eh_edge): Rename from
6491         make_eh_edge.  Update all users.
6492         (find_basic_blocks): Don't call VARRAY_FREE on
6493         basic_block_info.
6494         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
6495         and newpos2.
6496         (delete_unreachable_blocks): Return changed status.
6497         (merge_seq_blocks): New.
6498         * cfghooks.c: Include tree-flow.h
6499         (tree_register_cfg_hooks, ir_type): New.
6500         (redirect_edge_and_branch): Change return type to edge.
6501         (predict_edge, predicted_by_p, can_duplicate_block_p,
6502         duplicate_block, block_ends_with_call_p,
6503         block_ends_with_condjump_p, flow_call_edges_add): New.
6504         * cfghooks.h (redirect_edge_and_branch): Change return
6505         type to edge.
6506         (predict_edge, predicted_by_p, can_duplicate_block_p,
6507         duplicate_block, block_ends_with_call_p,
6508         block_ends_with_condjump_p, flow_call_edges_add): Declare.
6509         (redirect_edge_and_branch): Change return type to edge.
6510         (struct cfg_hooks): Add fields block_ends_with_call_p,
6511         block_ends_with_condjump_p, flow_call_edges_add,
6512         predict_edge, predicted_by_p, can_duplicate_block_p and
6513         duplicate_block.
6514         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
6515         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
6516         (fixup_reorder_chain): Use initialize_bb_rbi.
6517         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
6518         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
6519         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
6520         (insn_locators_initialize): Use new info about blocks.
6521         * cfglayout.h (typedef struct reorder_block_def): Moved to
6522         basic_block.h.
6523         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
6524         removed.
6525         * cfgloop.c: Include tree.h and tree-flow.h.
6526         * cfgloop.h (create_loop_notes): Declare.
6527         * cfgloopmanip.c (create_loop_notes): New.
6528         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
6529         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
6530         and duplicate_block fields.
6531         (create_basic_block_structure): Don't look at
6532         RTX_INTEGRATED_P.
6533         (rtl_block_ends_with_call_p): New.
6534         (rtl_block_ends_with_condjump_p): New.
6535         (need_fake_edge_p): Moved from cfganal.c.
6536         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
6537         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
6538         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
6539         (cfg_layout_rtl_cfg_hooks): Ditto.
6540         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
6541         functions to be reachable.
6542         * cgraphunit.c (decide_is_function_needed):
6543         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
6544         inline functions don't need to be output.
6545         (cgraph_assemble_pending_functions): Don't do anything
6546         special for nested functions.
6547         (cgraph_mark_functions_to_output): Likewise.
6548         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
6549         (cgraph_analyze_function): Use estimate_num_insns.
6550         (cgraph_mark_functions_to_output): Likewise.
6551         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
6552         (cgraph_expand_function): Allow functions to not be
6553         emitted.
6554         (cgraph_remove_unreachable_nodes):
6555         (cgraph_recursive_inlining_p): Simplify.
6556         (lookup_recursive_calls,
6557         cgraph_decide_recursive_inlining): New.
6558         (cgraph_decide_inlining_*): Update calls of
6559         cgraph_mark_inline.
6560         * combine.c (get_pos_from_mask): Always set *plen.
6561         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
6562         ftree-based-profiling, ftree-ccp, ftree-ch,
6563         ftree-combine-temps, ftree-copyrename, ftree-dce,
6564         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
6565         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
6566         ftree-lrs): Add.
6567         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
6568         Undefine.
6569         * configure.ac: Add --enable-tree-browser option.
6570         Add --with-libbanshee option.
6571         Add GMPLIBS and GMPINC.
6572         * configure: Regenerate.
6573         * coverage.c (tree_ctr_tables): New.
6574         (coverage_counter_alloc): Use it.
6575         (build_ctr_info_value): Ditto.
6576         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
6577         (tree_coverage_counter_ref): New.
6578         * coverage.h (coverage_counter_ref): Remove declaration.
6579         (rtl_coverage_counter_ref): Declare.
6580         (tree_coverage_counter_ref): Declare.
6581         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
6582         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
6583         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
6584         (struct cse_basic_block_data): Rename enum values to not
6585         conflict with profile.h; update all uses.
6586         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
6587         in comments.
6588         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
6589         * diagnostic.h (debug_output_buffer, dump_generic_node,
6590         print_generic_stmt, print_generic_stmt_indented,
6591         print_generic_expr, print_generic_decl,
6592         debug_generic_expr, debug_generic_stmt, debug_c_tree):
6593         Declare.
6594         * dominance.c: Cache immediate dominators.
6595         * domwalk.c: New file.
6596         * domwalk.h: New file.
6597         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
6598         (gen_subprogram_die): Generate a DIE for a named
6599         return value.
6600         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
6601         (add_location_or_const_value_attribute): Likewise.
6602         (add_bound_info): Likewise.
6603         (gen_decl_die): Likewise.
6604         * emit-rtl.c (maybe_set_first_label_num): New.
6605         (copy_most_rtx): Don't copy the integrated flag.
6606         Copy the new return_val flag.
6607         * et-forest.c (MAX_NODES): Define.
6608         (record_path_before_1): Abort if len is greater than
6609         MAX_NODES.
6610         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
6611         gen_eh_region_catch, gen_eh_region_allowed,
6612         gen_eh_region_must_not_throw, get_eh_region_number,
6613         get_eh_region_may_contain_throw, get_eh_region_tree_label,
6614         set_eh_region_tree_label, expand_resx_expr): New.
6615         (expand_eh_region_start, expand_start_catch): Use them.
6616         (expand_end_catch): Tidy.
6617         (note_eh_region_may_contain_throw): Take region argument.
6618         (note_current_region_may_contain_throw): New.
6619         (get_exception_filter): Export.
6620         (collect_eh_region_array): Export.
6621         (remove_unreachable_regions): Check ERT_TRY based on reachability
6622         of catches, not reachability of continue_label.  Never remove
6623         ERT_MUST_NOT_THROW regions.
6624         (collect_rtl_labels_from_trees): New.
6625         (convert_from_eh_region_ranges): Use it.
6626         (connect_post_landing_pads): Handle dying cleanups.
6627         (struct reachable_info): Add callback data.
6628         (add_reachable_handler): Invoke the callback.
6629         (foreach_reachable_handler): New.
6630         (reachable_handlers): Use it.
6631         (arh_to_landing_pad, arh_to_label): New.
6632         (can_throw_internal_1): Split out from can_throw_internal.
6633         (can_throw_external_1): Similarly.
6634         * except.h: Update.
6635         * explow.c (emit_stack_save): Remove savearea mode check.
6636         (update_nonlocal_goto_save_area): New.
6637         (allocate_dynamic_stack_space): Use it.
6638         (probe_stack_range): Never emit loop notes.
6639         * expmed.c (extract_fixed_bit_field): Always propagate the
6640         target for the shift if it is a REG.
6641         * expr.c: Include tree-iterator.h
6642         (is_zeros_p): Remove.
6643         (categorize_ctor_elements_1, categorize_ctor_elements): New.
6644         (count_type_elements): New.
6645         (mostly_zeros_p): Use them.
6646         (expr_wfl_stack): Remove.
6647         (convert_move): Do nothing if to and from are the same.
6648         (emit_block_move_via_loop): Don't emit LOOP notes.
6649         (emit_move_insn): Don't handle CONSTANT_P_RTX.
6650         (emit_move_insn_1): Don't generate inline warnings.
6651         (expand_vars, expand_var): Split from ...
6652         (expand_expr_1): ... here.
6653         (expand_expr_real, expand_expr_real_1):  Use new macros
6654         EXPR_LOCATION and EXPR_HAS_LOCATION.
6655         * expr.h (simplify_builtin_fputs,
6656         simplify_builtin_strcpy, simplify_builtin_strncpy,
6657         expand_var, fixup_tail_calls,
6658         update_nonlocal_goto_save_area): Declare.
6659         (lookup_static_chain, expand_inline_function,
6660         mark_seen_cases): Remove.
6661         (prepare_call_address): Change type of 2nd argument to
6662         rtx.
6663         * final.c (profile_function): Update static chain test.
6664         (final): Don't look at RTX_INTEGRATED_P.
6665         * flags.h (flag_mudflap, flag_mudflap_threads,
6666         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
6667         flag_tree_dce, flag_tree_combine_temps,
6668         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
6669         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
6670         flag_tree_points_to): Declare.
6671         (enum pta_type): Declare.
6672         * flow.c (lang_missing_noreturn_ok_p): Remove.
6673         (check_function_return_warnings): Remove.
6674         (update_life_info): Update comments.
6675         (free_basic_block_vars): Don't call VARRAY_FREE for
6676         basic_block_info.
6677         (regno_uninitialized): Remove.
6678         * fold-const.c (int_const_binop): Make extern.
6679         (non_lvalue): Rely on build to set TREE_CONSTANT.
6680         (operand_equal_p): Replace only_const argument with
6681         flags.  Allow pure functions if OEP_PURE_SAME.
6682         (fold): Use OEP_ONLY_CONST.
6683         (invert_truthvalue) <NOP_EXPR> Break if argument is of
6684         boolean type.
6685         (fold_relational_hi_lo,
6686         nondestructive_fold_binary_to_constant,
6687         nondestructive_fold_unary_to_constant,
6688         fold_read_from_constant_string): New.
6689         * function.c (struct function): Remove calls_constant_p.
6690         (current_function_calls_constant_p): Remove.
6691         (inline_function_decl): Remove.
6692         (put_var_into_stack): Don't use it.
6693         (fix_lexical_addr): Likewise.
6694         (inline_function_decl): Remove extern declaration.
6695         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
6696         (trampolines_created): Move to varasm.c.
6697         (free_after_compilation): Update for removed fields.
6698         (allocate_struct_function): Likewise.
6699         (delete_handlers, lookup_static_chain): Remove.
6700         (fix_lexical_addr): Don't consider non-local variable refs.
6701         (trampoline_address): Remove.
6702         (round_trampoline_addr): Move to builtins.c.
6703         (adjust_trampoline_addr): Remove.
6704         (expand_function_start): Update for changes to static chain
6705         and nonlocal goto handling.
6706         (initial_trampoline): Move to varasm.c.
6707         (expand_function_end): Don't build trampolines or kill
6708         unreferenced nonlocal goto labels.
6709         (free_after_compilation): Don't set it.
6710         (expand_function_end): Likewise.
6711         (setjmp_vars_warning): Rename from
6712         uninitialized_vars_warning, remove uninitialized vars warning.
6713         (uninitialized_vars_warning): Remove old comment
6714         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
6715         and do not call the langhook.
6716         (expand_function_start, expand_function_end): Don't do
6717         function instrumentation here.
6718         (clear_block_marks): Rename from reorder_blocks_0, export.
6719         (blocks_nreverse): Export.
6720         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
6721         of rtl.
6722         (reset_block_changes, record_block_change, finalize_block_changes,
6723         check_block_change, free_block_changes): New functions.
6724         (assign_parms): Setting of current_function_stdarg
6725         moved ...
6726         (allocate_struct_function): ... here.
6727         * function.h (struct function): Remove x_nonlocal_labels,
6728         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
6729         x_context_display, x_trampoline_list, needs_context.
6730         Add static_chain_decl, nonlocal_goto_save_area.
6731         (struct function): Remove x_clobber_return_insn.
6732         Add tail_call_emit field, last_label_uid,
6733         unexpanded_var_list, dont_emit_block_notes,
6734         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
6735         (clear_block_marks): Declare.
6736         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
6737         (mfwrap_spec, mflib_spec): Declare.
6738         (cpp_unique_options, cc1_options): Ditto.
6739         (default_compilers): Add .F and .f90.
6740         (static_specs): Add mfwrap and mflib.
6741         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
6742         CONSTANT_RTX_P.
6743         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
6744         Update to match insns field in struct edge_def.
6745         * gdbinit.in (pgs, pge): Define.
6746         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
6747         instead of the integrated flag.
6748         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
6749         * gengtype-yacc.y (bitfieldlen): Add empty action.
6750         (struct_fields): Accept unnamed bitfields.
6751         (bitfieldlen): Split from ...
6752         (bitfieldopt): ... here.
6753         * gengtype.c (ifiles): Add tree-alias-type.h and
6754         tree-flow.h.
6755         * genrecog.c (validate_pattern): Do not handle
6756         CONSTANT_P_RTX.
6757         * gimple-low.c: New file.
6758         * gimplify.c: New file.
6759         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
6760         (restore_line_notes): Do not set RTX_INTEGRATED_P.
6761         * ifcvt.c (dead_or_predicable): Initialize local variable
6762         'earliest'.
6763         * input.h (expr_wfl_stack): Remove.
6764         * integrate.c (INTEGRATE_THRESHOLD): Remove.
6765         (setup_initial_hard_reg_value_integration): Likewise.
6766         (initialize_for_inline): Likewise.
6767         (note_modified_parmregs): Likewise.
6768         (integrate_parm_decls): Likewise.
6769         (process_reg_param): Likewise.
6770         (save_parm_insns): Likewise.
6771         (copy_insn_list): Likewise.
6772         (copy_insn_notes): Likewise.
6773         (compare_blocks): Likewise.
6774         (find_block): Likewise.
6775         (inlining): Likewise.
6776         (function_cannot_inline_p): Likewise.
6777         (parmdecl_map): Likewise.
6778         (in_nonparam_insns): Likewise.
6779         (save_for_inline): Likewise.
6780         (FIXED_BASE_PLUS): Likewise.
6781         (expand_inline_function): Likewise.
6782         (copy_rtx_and_substitute): Don't look at map->integrating,
6783         map->inline_target, and inlining, since we are never copying
6784         for integrating.
6785         Don't abort on RTX_INTEGRATED_P.
6786         (old_fun): Remove.
6787         (output_inline_function): Remove.
6788         * integrate.h (struct inline_map): Remove fields integrating,
6789         block_map, leaf_reg_map, inline_target, and local_return_label.
6790         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
6791         copy_loop_headers, never_reached_warning): Removed.
6792         (any_uncondjump_p): Reject nonlocal goto.
6793         * langhooks-def.h (lhd_types_compatible_p,
6794         lhd_expand_decl, lhd_gimplify_expr): Declare.
6795         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6796         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6797         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6798         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6799         LANG_HOOKS_GIMPLIFY_EXPR,
6800         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
6801         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6802         LANG_HOOKS_GIMPLIFY_EXPR,
6803         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
6804         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
6805         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
6806         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6807         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
6808         LANG_HOOKS_DECL_UNINIT,
6809         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
6810         * langhooks.c: Include tree-simple.h.
6811         (lhd_expand_decl): New.
6812         (lhd_types_compatible_p): New.
6813         (lhd_decl_uninit): Remove.
6814         (lhd_gimplify_expr): New.
6815         * langhooks.h (struct lang_hooks_for_rtl_expansion):
6816         Remove.
6817         (struct lang_hooks_for_functions): Add field
6818         missing_noreturn_ok_p.
6819         (struct lang_hooks): Add field expand_decl,
6820         types_compatible_p, gimplify_expr and
6821         gimple_before_inlining.
6822         Remove fields decl_uninit and rtl_expand
6823         * opts.c (decode_options): Set flag_tree_ccp,
6824         flag_tree_dce, flag_tree_dom, flag_tree_dse,
6825         flag_tree_pre, flag_tree_ter,
6826         flag_tree_live_range_split, flag_tree_sra,
6827         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
6828         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
6829         OPT_fmudflapth, OPT_fmudflapir,
6830         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
6831         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
6832         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
6833         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
6834         OPT_ftree_points_to_ and OPT_ftree_pre.
6835         * output.h (regno_uninitialized, find_basic_blocks,
6836         cleanup_cfg, delete_unreachable_blocks,
6837         check_function_return_warnings): Remove.
6838         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
6839         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
6840         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
6841         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
6842         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
6843         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
6844         Define.
6845         * passes.c (rest_of_decl_compilation):
6846         (rest_of_handle_sibling_calls): Remove.
6847         (rest_of_handle_inlining): Remove.
6848         (rest_of_handle_gcse): Do not run
6849         purge_builtin_constant_p.
6850         (rest_of_compilation): Update.
6851         Do not call copy_loop_headers.
6852         Do rtl-based profiling only when
6853         !flag_tree_based_profiling.  Register rtl-based profiling
6854         hooks.
6855         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
6856         (predicted_by_p): Rename to ...
6857         (rtl_predicted_by_p): .. this one; make global
6858         (tree_predicted_by_p): New.
6859         (dump_prediction): Add FILE argument.
6860         (predict_edge): Rename to ...
6861         (rtl_predict_edge): .. this one.
6862         (tree_predict_edge): New.
6863         (combine_predictions_for_insn): Update calls of predict_edge.
6864         (predict_loops): Break out from ...
6865         (estimate_probability): ... here; update comments; move updating
6866         of unknown probabilities from ...
6867         (estimate_bb_frequencies): ... here.
6868         (combine_predictions_for_bb): New.
6869         (tree_predict_by_opcode): New.
6870         (tree_estimate_probability): New.
6871         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
6872         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
6873         * predict.h: Add include guard.
6874         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
6875         * pretty-print.c (pp_write_text_to_stream): Make extern.
6876         * pretty-print.h (pp_write_text_to_stream): Declare.
6877         * print-rtl.c (print_rtx): Don't print the integrated flag.
6878         Print the return_val flag.
6879         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
6880         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
6881         Remove support for EXPR_WITH_FILE_LOCATION nodes.
6882         (print_node): Print TREE_INVARIANT and TREE_VISITED.
6883         * profile.c: Include cfghooks.h, tree-flow.h.
6884         (profile_hooks): New.
6885         (profile_dump_file): New.
6886         (instrument_edges): Use hooks instead of RTL-specific code.
6887         (instrument_values): Ditto.
6888         (get_exec_counts): Ditto.
6889         (compute_branch_probabilities): Ditto.
6890         (compute_value_histograms): Ditto.
6891         (branch_prob): Ditto.
6892         (find_spanning_tree): Ditto.
6893         (end_branch_prob): Ditto.
6894         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
6895         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
6896         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
6897         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
6898         (tree_register_profile_hooks): New.
6899         (rtl_register_profile_hooks): New.
6900         * ra-rewrite.c (rewrite_program): Clear variable info.
6901         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
6902         * regs.h: Add include guards.
6903         * reload.c (decompose): Clear val using memset.
6904         * rtl.def (CONSTANT_P_RTX): Remove.
6905         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
6906         (copy_loop_headers): Remove.
6907         (struct rtx_def): Replace the integrated flag with the
6908         return_val flag.
6909         (maybe_set_first_label_num): Declare.
6910         (init_branch_prob): Move declaration to value-prof.h.
6911         (end_branch_prob): Ditto.
6912         (branch_prob): Ditto.
6913         (never_reached_warning): Don't declare it.
6914         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
6915         (hoist_insn_to_edge): Update to match field insns in
6916         struct edge_def.
6917         * sbitmap.c (sbitmap_realloc): New.
6918         * sbitmap.h (sbitmap_realloc): Declare.
6919         * sibcall.c: Remove file.
6920         * simplify-rtx.c (simplify_rtx): Do not handle
6921         CONSTANT_P_RTX.
6922         * stmt.c (parse_output_constraint): Don't warn for read-write
6923         memory operand.
6924         (tail_recursion_args): Use types_compatible_p langhook.
6925         (force_label_rtx): Don't look at inline_function_decl.
6926         (label_rtx): Set LABEL_PRESERVE_P appropriately.
6927         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
6928         (declare_nonlocal_label): Remove.
6929         (expand_goto): Don't handle nonlocal gotos.
6930         (expand_nl_handler_label): Remove.
6931         (expand_nl_goto_receivers): Remove.
6932         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
6933         update_nonlocal_goto_save_area.
6934         (expand_expr_stmt_value): Check TREE_NO_WARNING.
6935         (warn_if_unused_value): Likewise.
6936         (expand_start_loop, expand_loop_continue_here,
6937         expand_end_loop): Don't create loop notes.
6938         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
6939         mark_seen_cases, check_for_full_enumeration_handling): Remove.
6940         (expand_end_case_type): Don't do warn_switch handling.
6941         (pushcase, pushcase_range) Update add_case_node calls.
6942         (add_case_node): Add dont_expand_label argument.
6943         (same_case_target_p): Don't search rtl.
6944         (expand_start_bindings_and_block, expand_end_bindings):
6945         Don't emit block notes when dont_emit_block_notes.
6946         (using_eh_for_cleanups_p): Export.
6947         (expand_return): Allow any typed rhs.
6948         (expand_stack_alloc): New.
6949         (expand_stack_save, expand_stack_restore): New.
6950         (containing_blocks_have_cleanups_or_stack_level): New
6951         function.
6952         (asm_op_is_mem_input): New fn.
6953         (expand_asm_expr): New fn.
6954         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
6955         nodes.
6956         * stor-layout.c (layout_type): Just return if type is
6957         error_mark_node.
6958         (update_alignment_for_field): Export.
6959         (variable_size): We don't care about global_bindings_p if
6960         the frontend doesn't want a list of the expressions.
6961         * system.h: Poison INTEGRATE_THRESHOLD.
6962         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
6963         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
6964         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
6965         TV_TREE_SSA_OTHER, TV_TREE_OPS,
6966         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
6967         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
6968         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
6969         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
6970         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
6971         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
6972         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
6973         TV_CONTROL_DEPENDENCES): Define.
6974         * toplev.c: Include tree-alias-common.h
6975         (current_file_decl, flag_mudflap, flag_mudflap_threads,
6976         flag_mudflap_ignore_reads, flag_tree_based_profiling,
6977         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
6978         flag_tree_dce, flag_tree_ch, flag_tree_sra,
6979         flag_tree_combine_temps, flag_tree_ter,
6980         flag_tree_live_range_split, flag_tree_dom,
6981         flag_tree_copyrename, flag_tree_dse): Declare.
6982         (f_options): Add tree-based-profiling, tree-gvn,
6983         tree-pre, tree-ccp, tree-dce,
6984         tree-dominator-opts, tree-copyrename, tree-dse,
6985         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
6986         (wrapup_global_declarations): Don't output nested inlined functions.
6987         (general_init): Call init_tree_optimization_passes.
6988         (process_options): Sorry for -ftree-based-profiling plus
6989         -ftest-coverage or -fprofile-values.
6990         * toplev.h (init_tree_optimization_passes,
6991         flag_tree_based_profiling): Declare.
6992         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
6993         * tree-alias-ander.c: New file.
6994         * tree-alias-ander.h: New file.
6995         * tree-alias-common.c: New file.
6996         * tree-alias-common.h: New file.
6997         * tree-alias-type.c: New file.
6998         * tree-alias-type.h: New file.
6999         * tree-browser.c: New file.
7000         * tree-browser.def: New file.
7001         * tree-cfg.c: New file.
7002         * tree-complex.c: New file.
7003         * tree-dfa.c: New file.
7004         * tree-dump.c (dump_enable_all): New.
7005         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
7006         (dump_node): Remove const from field suffix and swtch.
7007         (dump_files): Add null entry, .generic, .nested, .vcg,
7008         .xml and a match-all entry.
7009         (extra_dump_files, extra_dump_files_in_use,
7010         extra_dump_files_alloced): Declare
7011         (dump_option_value_info): Add raw, details, stats,
7012         blocks, vops, lineno, uid and all.
7013         (dump_register): New.
7014         (get_dump_file_info): New.
7015         (dump_begin): Call it.
7016         Do nothing for TDI_none.
7017         (dump_begin): Include phase number in dump filename.
7018         (dump_enable_all): New.
7019         (dump_switch_p_1): Split out from dump_switch_p.
7020         (dump_switch_p): Handle extra_dump_files.
7021         Start our scan at TDI_none + 1.
7022         If -fdump-tree-all was given, call dump_enable_all.
7023         * tree-dump.h: Include splay-tree.h.
7024         (dump_function, dump_function_to_file, dump_register):
7025         Declare.
7026         * tree-eh.c: New file.
7027         * tree-flow-inline.h: New file.
7028         * tree-flow.h: New file.
7029         * tree-inline.c: Re-write to handle inlining on GIMPLE.
7030         * tree-inline.h (walk_tree,
7031         walk_tree_without_duplicates): Move to tree.h.
7032         (estimate_num_insns): Declare.
7033         * tree-into-ssa.c: New file.
7034         * tree-iterator.c: New file.
7035         * tree-iterator.h: New file.
7036         * tree-mudflap.c: New file.
7037         * tree-mudflap.h: New file.
7038         * tree-nested.c: New file.
7039         * tree-nomudflap.c: New file.
7040         * tree-nrv.c: New file.
7041         * tree-optimize.c (dump_flags, vars_to_rename,
7042         in_gimple_form, all_passes, pass_gimple,
7043         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
7044         (execute_gimple, execute_rebuild_bind,
7045         gate_all_optimizations, execute_del_cfg,
7046         register_one_dump_file, register_dump_files, dup_pass_1,
7047         init_tree_optimization_passes, execute_todo,
7048         execute_one_pass, execute_pass_list): New.
7049         (clear_decl_rtl): Remove.
7050         (tree_rest_of_compilation): Update to use tree
7051         optimizers.
7052         * tree-outof-ssa.c: New file.
7053         * tree-pass.h: New file.
7054         * tree-phinodes.c: New file.
7055         * tree-pretty-print.c: New file.
7056         * tree-profile.c: New file.
7057         * tree-simple.c: New file.
7058         * tree-simple.h: New file.
7059         * tree-sra.c: New file.
7060         * tree-ssa-alias.c: New file.
7061         * tree-ssa-ccp.c: New file.
7062         * tree-ssa-copy.c: New file.
7063         * tree-ssa-copyrename.c: New file.
7064         * tree-ssa-dce.c: New file.
7065         * tree-ssa-dom.c: New file.
7066         * tree-ssa-dse.c: New file.
7067         * tree-ssa-forwprop.c: New file.
7068         * tree-ssa-live.c: New file.
7069         * tree-ssa-live.h: New file.
7070         * tree-ssa-loop.c: New file.
7071         * tree-ssa-operands.c: New file.
7072         * tree-ssa-operands.h: New file.
7073         * tree-ssa-phiopt.c: New file.
7074         * tree-ssa-pre.c: New file.
7075         * tree-ssa.c: New file.
7076         * tree-ssanames.c: New file.
7077         * tree-tailcall.c: New file.
7078         * tree.c: Include tree-iterator.h, basic-block.h and
7079         tree-flow.h.
7080         (tree_node_kind): Add phi_nodes and ssa names.
7081         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
7082         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
7083         (make_node_stat): Handle PHI_NODE and SSA_NAME.
7084         <'c'> Set TREE_INVARIANT.
7085         (copy_node_stat): Abort if trying to copy a
7086         STATEMENT_LIST.
7087         Clear TREE_VISITED.
7088         Clear annotation field.
7089         (build_constructor): Copy TREE_INVARIANT from vals.
7090         Don't clear TREE_CONSTANT.
7091         (expr_first, expr_last, expr_length): Remove.
7092         (staticp): Pass unknown component references to the language.
7093         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
7094         (skip_simple_arithmetic): Likewise.
7095         (stabilize_reference_1): Likewise.
7096         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
7097         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
7098         STATEMENT_LIST.
7099         (lhd_unsave_expr_now): Remove.
7100         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
7101         (recompute_tree_invarant_for_addr_expr): New.
7102         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
7103         Call recompute_tree_invarant_for_addr_expr.
7104         Set TREE_INVARIANT accordingly.
7105         (build2_stat): Don't handle CALL_EXPR.
7106         (build3_stat): Don't call build2_stat for CALL_EXPRs.
7107         (build_expr_wfl): Remove.
7108         (annotate_with_file_line, annotate_with_locus): New.
7109         (simple_cst_equal): Call simple_cst_list_equal to compare
7110         CONSTRUCTOR_ELTS pointers.
7111         (iterative_hash_expr): Don't hash types associated
7112         with conversions.  Instead hash on the signedness of the
7113         toplevel object and the operand of the conversion.
7114         (dump_tree_statistics): Call ssanames_print_statistics
7115         and phinodes_print_statistics.
7116         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
7117         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
7118         needs_to_live_in_memory): New.
7119         (initializer_zerop): Handle VECTOR_CST.  Don't check
7120         AGGREGATE_TYPE_P for CONSTRUCTOR.
7121         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
7122         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
7123         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
7124         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
7125         (CALL_EXPR): Add another operand.
7126         (EXPR_WITH_FILE_LOCATION): Remove.
7127         (SWITCH_EXPR): Add another operand.
7128         * tree.h: Update various comments.
7129         (union tree_ann_d): Forward declare.
7130         (struct tree_common): Add fields nowarning_flag,
7131         invariant_flag and visited.
7132         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
7133         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
7134         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
7135         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
7136         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
7137         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
7138         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
7139         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
7140         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
7141         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
7142         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
7143         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
7144         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
7145         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
7146         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
7147         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
7148         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
7149         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
7150         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
7151         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
7152         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
7153         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
7154         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
7155         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
7156         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
7157         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
7158         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
7159         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
7160         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
7161         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
7162         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
7163         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
7164         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
7165         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
7166         TDF_UID,): Define.
7167         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
7168         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
7169         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
7170         EXPR_WFL_SET_LINECOL): Remove.
7171         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
7172         make_phi_node, init_phinodes, fini_phinodes,
7173         release_phi_node, phinodes_print_statistics,
7174         init_ssanames, fini_ssanames, make_ssa_name,
7175         release_ssa_name, ssanames_print_statistics,
7176         annotate_with_file_line, build_empty_stmt,
7177         annotate_with_locus, expr_only, categorize_ctor_elements,
7178         count_type_elements, add_var_to_bind_expr, is_essa_node,
7179         expand_stack_alloc, expand_stack_save,
7180         expand_stack_restore, add_case_node, operand_equal_p,
7181         nondestructive_fold_unary_to_constant,
7182         nondestructive_fold_binary_to_constant,
7183         fold_read_from_constant_string, int_const_binop,
7184         strip_float_extensions, simplify_builtin, c_strlen,
7185         recompute_tree_invarant_for_addr_expr,
7186         needs_to_live_in_memory, make_vector,
7187         setjmp_vars_warning, update_alignment_for_field,
7188         expand_asm_expr, asm_op_is_mem_input,
7189         containing_blocks_have_cleanups_or_stack_level,
7190         create_artificial_label, gimplify_function_tree,
7191         get_name, unshare_expr, walk_tree,
7192         walk_tree_without_duplicates, in_gimple_form): Declare.
7193         (struct tree_exp): Add fields locus and block.
7194         (struct tree_ssa_name, struct edge_def, struct
7195         tree_phi_node, struct tree_eref_common, struct
7196         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
7197         union alias_var_def, struct tree_statement_list_node,
7198         struct tree_statement_list, enum operand_equal_flag): Declare.
7199         (enum tree_node_structure_enum): Add TS_SSA_NAME,
7200         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
7201         TS_STATEMENT_LIST.
7202         (union tree_node): Add fields ssa_name, phi, eref, ephi,
7203         euse and stmt_list.
7204         (function_cannot_inline_p, uninitialized_vars_warning,
7205         save_for_inline, output_inline_function, all_cases_count,
7206         check_for_full_enumeration_handling,
7207         declare_nonlocal_label): Remove.
7208         (enum tree_dump_index): Add TDI_none, TDI_tu,
7209         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
7210         * unroll.c (unroll_loop): Don't clear map->inline_target.
7211         * unwind-sjlj.c (uw_install_context): Make a proper static inline
7212         function.
7213         * value-prof.c (value_prof_hooks): New.
7214         (find_values_to_profile): Rename to rtl_find_values_to_profile.
7215         Move rtl-specific bits in from branch_prob.
7216         (value_profile_transformations): Rename to
7217         rtl_value_profile_transformations.
7218         (struct value_prof_hooks): New.
7219         (rtl_value_prof_hooks): New.
7220         (rtl_register_value_prof_hooks): New.
7221         (tree_find_values_to_profile): New stub.
7222         (tree_value_profile_transformations): New stub.
7223         (tree_value_prof_hooks): New stub.
7224         (tree_register_value_prof_hooks): New stub.
7225         (find_values_to_profile): New.
7226         (value_profile_transformations): New.
7227         * value-prof.h: Add multiple inclusion guard.
7228         (struct histogram_value): Change rtx fields to void *.
7229         (rtl_register_value_prof_hooks): New declaration.
7230         (tree_register_value_prof_hooks): New declaration.
7231         (find_values_to_profile): New declaration.
7232         (free_profiled_values): New declaration.
7233         (value_profile_transformations): New declaration.
7234         (struct profile_hooks): New declaration.
7235         (init_branch_prob): Declaration moved from rtl.h.
7236         (branch_prob): Declaration moved from rtl.h.
7237         (end_branch_prob): Declaration mooved from rtl.h.
7238         (tree_register_profile_hooks): New declaration.
7239         (rtl_register_profile_hooks): New declaration.
7240         (tree_profile_hooks): New declaration.
7241         (rtl_profile_hooks): New declaration.
7242         * varasm.c: Include tree-mudflap.h.
7243         (TRAMPOLINE_ALIGNMENT): Remove.
7244         (make_decl_rtl): Call mudflap_enqueue_decl.
7245         (assemble_static_space):
7246         (assemble_trampoline_template): Set and return
7247         TRAMPOLINE_ALIGNMENT.
7248         * varray.c (element): Add GENERIC_PTR_NOGC entry.
7249         Add entry for 'tree *'.
7250         Add entry for struct edge_def *.
7251         (varray_copy): New.
7252         * varray.h (enum varray_data_enum): Add
7253         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
7254         VARRAY_DATA_TREE_PTR.
7255         (union varray_data_tag): Corresponding changes.
7256         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
7257         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
7258         VARRAY_EDGE, VARRAY_TREE_PTR,
7259         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
7260         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
7261         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
7262
7263         * config/*/*: Various updates for changed macros, tree
7264         codes, etc.  Check ChangeLog.tree-ssa.
7265
7266         * doc/cfg.texi: New file.
7267         * doc/tree-ssa.texi: New file.
7268         * doc/c-tree.texi: Document new codes.
7269         * doc/gccint.texi: Include new files.
7270         * doc/install.texi: Document new features.
7271         * doc/invoke.texi: Document new switches.
7272         * doc/passes.texi: Document new passes.
7273         * doc/rtl.texi: Update changed RTL codes.
7274         * doc/sourcebuild.texi: Update build instructions.
7275         * doc/standards.texi: Document Fortran changes.
7276         * doc/tm.texi: Update.
7277
7278 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
7279
7280         Replace several arrays with a struct of arrays.
7281         * combine.c (struct reg_stat): New.
7282         (init_reg_last_arrays): Renamed to...
7283         (init_reg_last): ...this.  Callers adjusted.
7284         (reg_stat): New.
7285         (combine_instructions): Allocate it and use it.
7286         (reg_last_death, reg_last_set, reg_last_set_value,
7287         reg_last_set_label, reg_last_set_table_tick,
7288         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
7289         reg_last_set_mode, reg_last_set_nonzero_bits,
7290         reg_last_set_sign_bit_copies): Replace throughout
7291         with items of reg_stat.
7292
7293 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7294
7295         PR optimization/15100
7296         * combine.c (distribute_notes): Don't create a dangling
7297         REG_LIBCALL/REG_RETVAL note.
7298
7299 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7300
7301         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
7302
7303         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
7304         negv2si2.
7305
7306 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7307
7308         * doc/md.texi (Standard Names): Fix typo in vec_init description.
7309
7310 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
7311
7312         * doc/gty.texi (GTY Options): Clarify example.
7313
7314 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
7315
7316         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
7317         Add const qualifier to altivec vector type if one is needed.
7318
7319 2004-05-11  Paul Brook  <paul@codesourcery.com>
7320
7321         * flags.h (flag_short_enums): Update comment.
7322         * opts.c (decode_options): Set flag_short_enums to 2.
7323         * toplev.c (flag_short_enums): Update comment.
7324         (process_options): Call default_short_enums target hook.
7325
7326 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
7327
7328         PR target/14063
7329         * config/rs6000/altivec.md (altivec_dssall):
7330         Change to unspec_volatile.
7331         (altivec_dss): Likewise.
7332
7333 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
7334
7335         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
7336         vnor.
7337         ("one_cmplv8hi2"): Same.
7338         ("one_cmplv4si2"): Same.
7339
7340 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
7341
7342         PR target/15130
7343         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
7344         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
7345         into account.  Compute the correct number of general registers
7346         for the return value.  Generate a special push/pop sequence when
7347         failing to get a temporary register for non SHmedia epilogue.
7348         (sh_expand_epilogue): Add an argument to show whether it's for
7349         sibcall or not.  Set the 3rd argument of output_stack_adjust to
7350         -1 if needed.
7351         (sh_need_epilogue): Call sh_expand_epilogue with 0.
7352         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
7353         with 1.
7354         (epilogue): Call sh_expand_epilogue with 0.
7355
7356 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
7357
7358         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
7359         goto a cleanup label.  After the cleanup, free the allocated memory.
7360
7361 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
7362
7363         * config/rs6000/altivec.h (vec_sld): Add overloads for
7364         argument/return types of 'vector bool int', 'vector bool short'
7365         and 'vector bool char'.
7366
7367 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
7368
7369         * c-decl.c (store_parm_decls_newstyle): Correct test for a
7370         nested function.
7371
7372 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
7373
7374         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
7375         treating missing ones as "".
7376         * config/mips/mips.md: Remove constraints from match_operands and
7377         match_scratches if they appear in define_expands (except reload*),
7378         define_peephole2s, define_splits or attribute specifications.
7379         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
7380         constraint strings.
7381
7382 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7383
7384         * config/rs6000/rs6000.c (function_arg_boundary): Always align
7385         AltiVec vectors.
7386         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
7387         vectors by refererence.  Align the same for TARGET_64BIT to a 16
7388         byte boundary.  Remove useless code.  Add function comment.
7389         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
7390         call to where it belongs.
7391         (function_arg_partial_nregs): Return true for all TARGET_32BIT
7392         -mabi=no-altivec AltiVec vectors.  Fix debug output.
7393         (rs6000_va_arg): Adjust for AltiVec change.
7394
7395 2004-05-10  Paul Brook  <paul@codesourcery.com>
7396
7397         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7398         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7399         (TARGET_DOUBLEWORD_ALIGN): Use it.
7400         (WCHAR_TYPE): Define.
7401         (WCHAR_SIZE_TYPE): Define.
7402         (SIZE_TYPE): Define.
7403
7404 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7405
7406         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
7407         when size is 8 bytes.
7408         (function_arg_advance): Account for stack space used by AltiVec
7409         args when -mabi=altivec.  Simplify alignment calculations.  For
7410         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
7411         (function_arg): Similarly.
7412         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
7413         not AltiVec ABI.
7414         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
7415         Correct alignment, and align before testing reg count.  Remove
7416         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
7417         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
7418         TARGET_FPRS here..
7419         (rs6000_function_value): .. not here before call.
7420
7421 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7422
7423         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
7424
7425 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
7426
7427         PR 15007
7428         * c-decl.c (current_file_decl): Rename to all_translation_units,
7429         adjust comment.
7430         (pop_scope): If popping file_scope, construct a
7431         TRANSLATION_UNIT_DECL and make it the context of all the
7432         symbols in the scope.
7433         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
7434         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
7435         anything to current_file_decl.
7436         (pushdecl_top_level): Likewise.
7437         (store_parm_decls_newstyle): Adjust check for nested function.
7438         (c_write_global_declarations): Update for renamed variable.
7439
7440 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7441
7442         * config/rs6000/rs6000-protos.h
7443         (rs6000_conditional_register_usage): Protoize.
7444
7445         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
7446
7447         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
7448         function.
7449
7450 2004-05-08  Roger Sayle  <roger@eyesopen.com>
7451
7452         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
7453         where op is a comparison operator and C1 and C2 are integer constants
7454         into a range check.
7455         (fold): Call fold_div_compare.
7456
7457 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7458
7459         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
7460         problems with earlier versions of the GNU compiler.
7461
7462 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
7463
7464         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
7465         Declare.
7466
7467         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
7468         (rs6000_hard_regno_mode_ok): New.
7469         (rs6000_init_hard_regno_mode_ok): New.
7470         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
7471
7472         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
7473         result.
7474
7475 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
7476
7477         * config/rs6000/altivec.h (vector, pixel, bool): Do not
7478         define as macros #ifdef __APPLE_ALTIVEC__.
7479
7480 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
7481
7482         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
7483         Generate appropriate parallels for vector arguments
7484         passed to vararg functions. (function_arg): make the call
7485         to rs6000_mixed_function_arg for vector args as needed.
7486
7487 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7488
7489         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
7490         EABI_FLOAT_VARARGS_P.
7491
7492 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7493
7494         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
7495         * config/mips/mips.c (override_options): Disable branch likely
7496         instructions if TUNE_MIPS5500.
7497
7498 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7499
7500         * config/mips/mips.c (override_options): Allow the hi and lo registers
7501         to store any integral mode, not just MODE_INTs.
7502
7503 2004-05-07  Paul Brook  <paul@codesourcery.com>
7504
7505         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7506         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7507         (TARGET_DOUBLEWORD_ALIGN): Use it.
7508         (WCHAR_TYPE): Define.
7509         (WCHAR_SIZE_TYPE): Define.
7510         (SIZE_TYPE): Define.
7511
7512 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7513
7514         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
7515         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
7516
7517 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
7518
7519         * loop-doloop.c (doloop_valid_p): Make sure that body
7520         gets freed.
7521
7522 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
7523
7524         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
7525         declaration.
7526         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
7527         (sparc_skip_caller_unimp): New global variable.
7528         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
7529         Use it instead of SKIP_CALLERS_UNIMP_P.
7530         * config/sparc/sparc.md (call expander): Add sanity check.
7531         (call_address_struct_value_sp32): Re-sync with expander.
7532         (call_symbolic_struct_value_sp32): Likewise.
7533         (return peepholes): Use 'sparc_skip_caller_unimp' instead
7534         of custom predicate.
7535
7536 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7537
7538         PR c++/14962
7539         * c-pragma.c (handle_pragma_redefine_extname): Only change
7540         the assembler name of FUNCTION_DECLs and VAR_DECLs.
7541
7542 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7543
7544         * optabs.h (enum optab_index): Add new OTI_log1p.
7545         (log1p_optab): Define corresponding macro.
7546         * optabs.c (init_optabs): Initialize log1p_optab.
7547         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
7548         patterns.
7549         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
7550         using log1p_optab.
7551         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
7552         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7553
7554         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
7555
7556         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
7557         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
7558         Prototype here.
7559         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
7560         x87's fyl2xp1 instruction.
7561         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
7562         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
7563         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
7564         log1p  and log1pl built-ins as inline x87 intrinsics.
7565
7566 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
7567
7568         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
7569         * config/arm/freebsd.h: Likewise.
7570         * config/ia64/freebsd.h: Likewise.
7571         * config/sparc/freebsd.h: Likewise.
7572
7573 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
7574
7575         PR optimization/15296
7576         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
7577         getting last consecutive label at a branch.
7578         (relax_delay_slots): Similar, near top of loop.
7579
7580 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7581
7582         PR target/15202
7583         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
7584         register to general register.
7585
7586 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
7587
7588         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
7589         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
7590         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
7591         (STACK_BOUNDARY): Delete.
7592
7593 2004-05-06  Stuart Hastings  <stuart@apple.com>
7594
7595         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
7596         mistakenly clobbered by 1.423.
7597
7598 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7599
7600         * doc/invoke.texi: Document -mvr4130-align.
7601         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
7602         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
7603         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
7604         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
7605         * config/mips/mips.md: Include sched-int.h.
7606         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
7607         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
7608         (override_options): Enable -mvr4130-align at -O3 and above.
7609         (mips_sim_insn): New variable.
7610         (mips_sim): New structure.
7611         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
7612         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
7613         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
7614         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
7615         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
7616         (mips_reorg): Call vr4130_align_insns.
7617         (vr4130_last_insn): New variable.
7618         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
7619         (vr4130_swap_insns_p, vr4130_reorder): New functions.
7620         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
7621         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
7622         (mips_use_dfa_pipeline_interface): Return true for the same.
7623         * config/mips/4130.md: New file.
7624         * config/mips/mips.md: Include it.  Add a peephole2 to convert
7625         "mult;mflo" into "mtlo;macc".
7626         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
7627         target of maccs.
7628         (*msac_using_macc): New pattern.
7629
7630 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7631
7632         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
7633         (ir_vr55_hilo): Split into...
7634         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
7635         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
7636         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
7637         Add various multiplication bypasses.
7638         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
7639         multiplication.
7640
7641 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
7642
7643         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
7644         attribute to "XF".
7645
7646 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
7647
7648         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
7649         (fmod_optab, drem_optab): Define corresponding macros.
7650         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
7651         * genopinit.c (optabs): Implement fmod_optab and drem_optab
7652         using fmod?f3 and drem?f3 patterns.
7653         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
7654         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
7655         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
7656         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
7657         flag_unsafe_math_optimizations is set.
7658
7659         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
7660         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
7661
7662         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
7663         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
7664         Prototype here.
7665         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
7666         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
7667         fprem and fprem1 instructions.
7668         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
7669         Rename insn definition to x86_fnstsw_1.
7670         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
7671         x87 instructions.
7672         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
7673         and fmodl built-ins as inline x87 intrinsics.
7674         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
7675         and dreml built-ins as inline x87 intrinsics.
7676
7677 2004-05-05  Roger Sayle  <roger@eyesopen.com>
7678
7679         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
7680
7681 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
7682
7683         PR driver/9822
7684         * doc/invoke.texi (Spec Files): Remove documentation of %c.
7685
7686 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
7687
7688         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
7689         representation.
7690
7691 2004-05-06  Paul Brook  <paul@codesourcery.com>
7692
7693         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
7694         (arm_coproc_mem_operand): ... To this.
7695         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
7696         (arm_legitimate_index_p): Ditto.
7697         (vfp_mem_operand): Rename ...
7698         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
7699         (vfp_secondary_reload_class): Use it.
7700         (output_move_double): Use doubleword load/store instructions.
7701         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
7702         * config/arm/arm.h (TARGET_LDRD): Define.
7703         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
7704         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
7705         New splitter for invalid doubleword loads.
7706         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
7707         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
7708         * doc/md.texi: Document Uy constraint.
7709
7710 2004-05-05  Jan Hubicka  <jh@suse.cz>
7711
7712         PR opt/14980
7713         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
7714         inline clones.
7715
7716 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7717
7718         PR target/15290
7719         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
7720         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
7721
7722 2004-05-05  Mike Stump  <mrs@apple.com>
7723
7724         * config/darwin-c.c (add_framework): Copy the directory name as it
7725         can be freed later.  Also, ensure we always allocate enough room
7726         for the cached framework information.
7727         (find_subframework_header): Keep track of the directory where the
7728         subframework header was found.
7729         (framework_construct_pathname): Speed up by not trying to re-add a
7730         framework.
7731         * cppfiles.c (search_path_exhausted): Arrange for the missing
7732         header callback to be able to set the directory where the header
7733         was found.
7734         (cpp_get_dir): Add.
7735         * cpplib.h (missing_header_cb): Add a parameter.
7736         (cpp_get_dir): Add.
7737
7738 2004-05-03  Mike Stump  <mrs@apple.com>
7739
7740         * doc/invoke.texi (Directory Options): Document -iquote.
7741         * doc/cpp.texi: Likewise.
7742         * doc/cppopts.texi: Likewise.
7743         * c-opts.c (c_common_missing_argument): Add -iquote processing.
7744         (c_common_handle_option): Likewise.
7745         * c.opt (iquote): Add.
7746         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
7747         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
7748
7749         * c-opts.c (case OPT_I): Deprecate -I- support.
7750         * doc/invoke.texi: Likewise.
7751         * doc/cpp.texi: Likewise.
7752         * doc/cppopts.texi: Likewise.
7753
7754 2004-05-05  Steven Bosscher  <stevenb@suse.de>
7755
7756         * basic-block.h (free_basic_block_vars): Update prototype.
7757         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
7758         argument.
7759         (life_analysis): Update call.
7760         * ifcvt.c (if_convert): Likewise.
7761         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
7762         * passes.c (rest_of_handle_final): Likewise.
7763         (rest_of_compilation): Likewise.
7764         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7765
7766         * emit-rtl.c (next_real_insn): Use INSN_P.
7767         (prev_real_insn): Likewise.
7768
7769 2004-05-05  Eric Christopher  <echristo@redhat.com>
7770
7771         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
7772         representation.
7773
7774 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
7775
7776         * config/rs6000/rs6000.c (build_opaque_vector_type):
7777         New function.
7778         (rs6000_init_builtins): Use it.
7779
7780 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
7781
7782         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
7783         (func_table): Change type from char ** to vms_func_ref.
7784         (write_rtnbeg):  Update to reflect func_table change.  Use
7785         fde->funcdef_number instead of rtnnum in output.
7786         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
7787
7788 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7789             Richard Henderson  <rth@redhat.com>
7790
7791         PR target/14899
7792
7793         * c-common.c (vector_types_convertible_p): New function.
7794         * c-typeck.c (comptypes): Recurse on vector types.
7795         (convert_for_assignment): Use vector_types_convertible_p.
7796         (digest_init): Use vector_types_convertible_p to check
7797         validness of constant vector initializers; otherwise treat
7798         them as scalars.
7799         * tree.c (make_or_reuse_type): New.
7800         (build_common_tree_nodes): Use it.
7801         * cp/call.c (standard_conversion): Likewise.
7802         * cp/typeck.c (comptypes): Recurse on vector types.
7803         (convert_for_assignment): Use vector_types_convertible_p.
7804
7805 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
7806
7807         * config/mips/mips.c (override_options): Default to no
7808         generation of branch-likely operations when tuning for
7809         CPUs where they tend to have a negative performance impact
7810         (e.g., SB-1).
7811
7812 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7813
7814         * expr.c (store_constructor_field): Don't call store_constructor
7815         if bitsize is not a multiple of a byte.
7816
7817 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
7818
7819         * reload1.c (inherit_piecemeal_p): New function.
7820         (emit_reload_insns): When reloading a group of hard registers, use
7821         inherit_piecemeal_p to decide whether the values of individual hard
7822         registers can be inherited.
7823
7824 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7825
7826         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
7827         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
7828         * config/t-linux (LIB2ADDEHDEP): Likewise.
7829
7830 2004-05-04  Paul Brook  <paul@codesourcery.com>
7831
7832         * config/arm/crti.asm: Push an even number of registers.
7833         * config/arm/crtn.asm: And restore them.  Load via sp.
7834
7835 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7836
7837         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
7838         Collect overhead information.
7839         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
7840         parameter and pass it through.
7841         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
7842         MEM_STAT_DECL parameter and pass it through.
7843         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
7844         MEM_STAT_DECL parameter and pass it through.
7845
7846 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7847
7848         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
7849
7850         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
7851
7852         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
7853         rs6000_hard_regno_nregs.
7854
7855 2004-05-03  Eric Christopher  <echristo@redhat.com>
7856
7857         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
7858         prologue insn instead of setting up call.
7859         (s390_emit_epilogue): Ditto.
7860         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
7861         (define_constants): Add numbers for above patterns.
7862
7863 2004-05-03  Eric Christopher  <echristo@redhat.com>
7864
7865         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
7866         * config/s390/s390.c (s390_conditional_register_usage): ...here.
7867         * config/s390/s390-protos.h: Prototype.
7868
7869 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
7870
7871         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
7872         assignment.
7873
7874 2004-05-03  Eric Christopher  <echristo@redhat.com>
7875
7876         * config/mips/mips.md: Fix branch length attribute definition.
7877
7878 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7879
7880         * config.gcc: Remove --enable-altivec support.
7881
7882         * config/rs6000/altivec-defs.h: Remove.
7883
7884 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7885
7886         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
7887         * fixinc/fixincl.x: Regenerate.
7888
7889 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7890
7891         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
7892         definition.
7893         (log?f2, log10?f2, log2?f2): Reimplement expanders with
7894         float_truncate insn.
7895         (*fxtractsf3, *fxtractdf3): Remove insn definition.
7896         (logb?f2): Reimplement expanders with float_truncate insn.
7897
7898 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
7899
7900         PR 14718
7901         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
7902         force_type_die for CONST_DECL.
7903
7904 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7905             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7906
7907         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
7908         tm-dwarf2.h to tm_file.
7909         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
7910         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
7911         (ASM_DEBUG_SPEC): Delete.
7912
7913 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7914
7915         * optabs.h (enum optab_index): Add new OTI_expm1.
7916         (expm1_optab): Define corresponding macro.
7917         * optabs.c (init_optabs): Initialize expm1_optab.
7918         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
7919         patterns.
7920         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
7921         using expm1_optab.
7922         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
7923         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7924
7925         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
7926         to implement expm1, expm1f and expm1l built-ins as inline x87
7927         intrinsics.
7928
7929 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7930
7931         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7932         * config/frv/frv.md (*return_true, *return_false): New patterns.
7933
7934 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7935
7936         * rtl.h (PHI_NODE_P): Remove.
7937
7938 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
7939
7940         PR middle-end/14988
7941         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
7942         when passed -2 as 'align'.
7943         (put_var_into_stack): Use 'bool' as the type for the three local
7944         predicates.  Adjust calls to put_reg_into_stack.
7945         When passed a CONCAT, instruct put_reg_into_stack to use
7946         a consecutive stack slot for the second part.
7947         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
7948         'consecutive_p' parameter.  Turn the three predicates into 'bool'
7949         parameters.  Retrieve the register mode from 'reg'.
7950         When consecutive_p is true, instruct assign_stack_local_1 to use
7951         BITS_PER_UNIT alignment.
7952         (put_addressof_into_stack): Use 'bool' as the type for the two
7953         local predicates. Adjust call to put_reg_into_stack.
7954
7955 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7956
7957         * fold-const.c (fold_convert_const, fold): Add missing
7958         FIX_ROUND_EXPR case.
7959
7960 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7961
7962         * configure.ac (FLEX, BISON): Only use tools from the build tree
7963         if build equals host.
7964         * configure: Rebuilt.
7965
7966         * config/frv/frv-protos.h (frv_expand_epilogue,
7967         frv_expand_fdpic_call): Add bool argument.
7968         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
7969         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
7970         (frv_expand_epilogue): Use new argument to decide whether to emit
7971         return instruction or copy the return address to LR.
7972         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
7973         sibcalls.
7974         (sibcall_operand): New.
7975         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
7976         PLUS nor LABEL_REF.  Add sibcall_operand.
7977         * config/frv/frv.md (call, call_value): Pass false to
7978         frv_expand_fdpic_call.
7979         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
7980         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
7981         sibcall_value_internal, sibcall_value_fdpicdi): New.
7982         (return_unsigned_true, return_unsigned_false): New.
7983         (epilogue): Adjust call to frv_expand_epilogue.
7984         (sibcall_epilogue): New.
7985
7986         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
7987         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
7988         before redefining them.
7989
7990 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7991
7992         * builtins.c (fold_fixed_mathfn): New function.
7993         (fold_builtin_lround, fold_builtin): Use it.
7994
7995 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
7996
7997         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
7998         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
7999
8000 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
8001
8002         * config/cris/cris.h: Revert my "fix comment typos" patch.
8003
8004 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
8005
8006         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
8007
8008 2004-05-01  Falk Hueffner  <falk@debian.org>
8009
8010         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
8011         builtin_insll): Disallow 0 as first input operand.
8012
8013 2004-05-01  Falk Hueffner  <falk@debian.org>
8014
8015         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
8016
8017 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
8018
8019         PR middle-end/15054
8020         * expr.c (expand_expr_real): Do not call preserve_temp_slots
8021         on a TARGET_EXPR temp.
8022         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
8023         TARGET_EXPR temp slots.
8024
8025 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
8026
8027         * simplify-rtx.c (simplify_ternary_operation): When
8028         converting an IF_THEN_ELSE to a relational op, return
8029         correct mode.
8030
8031 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8032
8033         * builtins.c (fold_builtin_round): Fix comment typo.
8034         (fold_builtin_lround): New function.
8035         (fold_builtin): Use it.
8036
8037 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
8038
8039         PR target/11608
8040         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
8041         more like the one in config/dbxelf.h.
8042
8043 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
8044
8045         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
8046         and adjust definition accordingly.
8047         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
8048         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
8049         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
8050         VECTOR_TYPE.
8051
8052 2004-04-30  Jason Merrill  <jason@redhat.com>
8053
8054         PR c++/14587
8055         * config/i386/winnt.c (associated_type): Look for attributes on
8056         the TYPE_MAIN_VARIANT of *this.
8057         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
8058         apply the attributes to the variants.
8059
8060 2004-04-30  Paul Brook  <paul@codesourcery.com>
8061
8062         * config.gcc: Simplify arm --with-{cpu,tune} test.
8063         * config/arm/arm-cores.def: Document whitespace restrictions.
8064
8065 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8066
8067         PR other/1963
8068         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
8069
8070 2004-04-30  Brian Ford  <ford@vss.fsi.com>
8071             DJ Delorie  <dj@redhat.com>
8072
8073         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
8074         (DWARF2_DEBUGGING_INFO): Define to enable.
8075         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
8076         DWARF2.
8077         * configure.ac (Target-specific assembler checks)
8078         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
8079         relocs.
8080         * configure: Regenerate.
8081         * config.in: Likewise.
8082
8083         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
8084         (ASM_OUPUT_DWARF_OFFSET): Define.
8085
8086 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
8087
8088         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
8089         (s390_emit_call): New function prototype added.
8090         (s390_tls_get_offset): Function removed.
8091         * config/s390/s390.c (s390_function_ok_for_sibcall,
8092         s390_call_saved_register_used_p): New functions.
8093         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
8094         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
8095         (s390_emit_tls_call_insn): New function.
8096         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
8097         emit_call_insn.
8098         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
8099         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
8100         added.
8101         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
8102         register number used to hold the target address for sibcalls.
8103         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
8104         New expanders.
8105         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
8106         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
8107         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
8108         Expanders removed.
8109         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
8110         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
8111         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
8112         ("epilogue"): Changed the call to s390_emit_epilogue to use the
8113         new parameter.
8114
8115 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
8116
8117         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
8118         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
8119         reg-stack.c, varasm.c, config/alpha/ev4.md,
8120         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
8121         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
8122         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8123         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
8124         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
8125         config/ia64/itanium2.md, config/ip2k/ip2k.c,
8126         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
8127         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
8128         comment typos.
8129
8130 2004-04-30  Paul Brook  <paul@codesourcery.com>
8131
8132         * config.gcc: Default ep9312 to hard-float.
8133         * config/arm/arm-cores.def: Add ARCH field.
8134         * config/arm/arm.c (FL_FOR_ARCH*): Define.
8135         (arm_arch_cirrus): New variable.
8136         (all_cores): Set and use arch.
8137         (all_architectures): Ditto.
8138         (arm_arch_name): New variable.
8139         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
8140         Set and use arm_arch_cirrus.
8141         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
8142         (enum processor_type): Update ARM_CORE define.
8143         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
8144         (CPP_SPEC): Remove %(cpp_cpu_arch).
8145         (CPP_ARCH_DEFAULT_SPEC): Remove.
8146         (CPP_CPU_ARCH_SPEC): Remove.
8147         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
8148         (FPUTYPE_DEFAULT): Don't define here.
8149
8150 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
8151
8152         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
8153         updates too.
8154
8155 2004-04-30  Paul Brook  <paul@codesourcery.com>
8156
8157         * arm.c (arm_needs_doubleword_align): Use mode alignment.
8158
8159 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
8160
8161         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
8162         vec_sububs.
8163         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
8164         duplicates.
8165
8166 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
8167
8168         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
8169         atan2?f3 expanders.
8170
8171 2004-04-29  Nick Clifton  <nickc@redhat.com>
8172
8173         Bug 14093
8174         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
8175         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
8176         Delete static from definition.
8177         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
8178
8179 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
8180
8181         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
8182         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
8183         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
8184         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
8185
8186 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
8187
8188         * commom.opt (Wfatal-errors): Add it.
8189         * diagnostic.c (flag_fatal_errors): Define it.
8190         (diagnostic_action_after_output): Check for flag_fatal_errors.
8191         * flags.h (flag_fatal_errors): Declare it.
8192         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
8193         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
8194
8195 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
8196
8197         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
8198         blocks which have kill flag set.
8199
8200 2004-04-29  Ben Elliston  <bje@au.ibm.com>
8201
8202         * configure.ac (--with-as): Abort if user-supplied assembler
8203         cannot be executed.
8204         (--with-ld): Likewise for the linker.
8205         * configure: Regenerate.
8206
8207 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8208
8209         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
8210         isn't NULL before using it.
8211
8212 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
8213
8214         PR target/15189
8215         * config/mips/mips.md (load_df_low): Use default length.
8216         (load_df_high, store_df_high): Likewise.
8217
8218 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8219
8220         * config/mips/mips.md, config/mips/sb1.md,
8221         config/rs6000/rs6000.c: Fix comment typos.
8222
8223 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8224
8225         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
8226         Fix comment typos.
8227
8228 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
8229
8230         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
8231         (delete_if_ordinary): Use above macro.
8232         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
8233         Update copyright.
8234         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
8235
8236 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
8237
8238         * c-decl.c (get_parm_info): Use the correct tag keywords when
8239         warning about type declarations in prototypes.
8240
8241 2004-04-29  Paul Brook  <paul@codesourcery.com>
8242
8243         * config.gcc: Pull list of cores from arm-cores.def.
8244
8245 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8246
8247         * combine.c (combine_simplify_rtx): Adjust call to use
8248         simplify_relational_operation.  Do not use SELECT_CC_MODE
8249         when a comparison already has a MODE_CC mode.
8250
8251 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8252
8253         (simplify_set): simplify_relational_operation may now
8254         return another relational expression.
8255         * cse.c (fold_rtx): simplify_relational_operation now
8256         takes of computing the comparison mode.
8257         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
8258         remove dead code.
8259         (do_compare_rtx_and_jump): Likewise.
8260         * integrate.c (subst_constants): simplify_relational_operation
8261         may now return another relational expression.
8262         * simplify-rtx.c (simplify_gen_relational): Move most code to
8263         the new simplify_relational_operation and
8264         simplify_relational_operation_1 functions.
8265         (simplify_relational_operation): Rewritten.
8266         (simplify_relational_operation_1): New function.
8267         (simplify_ternary_operation): simplify_relational_operation
8268         may now return another relational expression.
8269         (simplify_rtx): Remove unnecessary temp variable.
8270
8271 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
8272
8273         * reg-stack.c (swap_to_top): New function.
8274         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
8275         swap_to_top().
8276         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
8277         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
8278         UNSPEC_FSCALE_EXP.
8279
8280         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
8281         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
8282         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
8283         x87's fscale insn.
8284         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
8285         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
8286         patterns.
8287
8288 2004-04-28  Serge Belyshev  <1319@bot.ru>
8289
8290         PR 14944
8291         * coverage.c (read_counts_file): Fix usage of warning () call.
8292         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
8293
8294 2004-04-28  Ben Elliston  <bje@au.ibm.com>
8295
8296         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
8297         options with "-" in the option index.
8298         (SPARC Options): Likewise.
8299         (M32R/D Options): Likewise.
8300
8301 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8302
8303         * convert.c (convert_to_integer): Convert (long)round -> lround,
8304         etc.
8305
8306 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
8307
8308         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
8309         Return false if we do not have fp register.
8310         (addrs_ok_for_quad_peep): Rename to ...
8311         (mems_ok_for_quad_peep): this.
8312         Add check for volatile memory.
8313         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
8314         Rename to ...
8315         (mems_ok_for_quad_peep): this.
8316         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
8317         to peephole2's.
8318         (lfq_power2): New instruction.
8319         (stfq_power2): Likewise.
8320
8321 2004-04-28  Jan Hubicka  <jh@suse.cz>
8322
8323         PR c/15004
8324         * function.c (do_warn_unused_parameter): Break out form ...
8325         (expand_function_end): ... here; warn only when not using cgraphunit.
8326         * function.h (do_warn_unused_parameter): Declare.
8327         * cgraphunit.c: Include function.h.
8328         (cgraph_finalize_function): Do unused parameter warning.
8329         * Makefile.in (cgraphunit.o): Depend on function.h
8330
8331 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8332
8333         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
8334         calling install-info on $(DESTDIR)$(infodir)/dir already being
8335         present.
8336
8337 2004-04-28  Paul Brook  <paul@codesourcery.com>
8338
8339         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
8340
8341 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8342
8343         * gcse.c (find_moveable_store): Do not accept store insns with
8344         REG_EH_REGION note.
8345
8346 2004-04-28  Paul Brook  <paul@codesourcery.com>
8347
8348         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
8349         * function.c (assign_temp): Ditto.
8350         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
8351
8352 2004-04-28  Paul Brook  <paul@codesourcery.com>
8353
8354         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
8355
8356 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
8357
8358         * var-tracking.c (variable_different_p): Add a parameter
8359         compare_current_location, compare current location of variable parts
8360         if it is true.
8361         (dataflow_set_different_1): Pass compare_current_location == false.
8362         (dataflow_set_different_2): Pass compare_current_location == false.
8363         (emit_notes_for_differences_1): Pass compare_current_location == true.
8364
8365 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8366
8367         * config/s390/s390.md ("casesi"): Mark jump table access as
8368         non-trapping and unchanging.
8369
8370 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8371
8372         PR debug/14829
8373         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
8374         callers.
8375         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
8376         number for indexing hard_regno_nregs array.
8377
8378 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
8379
8380         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
8381         * config/darwin-crt2.c: Only have contents on __ppc__.
8382
8383 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
8384
8385         * config/xtensa/xtensa.c (call_insn_operand): Check
8386         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
8387         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
8388         * config/xtensa/xtensa.md (call, call_value): Likewise.
8389
8390 2004-04-27  Wu Yongwei  <adah@sh163.net>
8391
8392         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
8393         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
8394         (__gthread_mutex_init_function): Replace CreateMutex with
8395         initialization of custom mutex using CreateSemaphore.
8396         (__gthread_mutex_lock): Use InterlockedIncrement.
8397         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
8398         (__gthread_mutex_unlock): Use InterlockedDecrement and
8399         ReleaseSemaphore to unlock
8400         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
8401         __gthread_mutex_lock, __gthread_mutex_trylock,
8402         __gthread_mutex_unlock): Adjust to match inline versions in
8403         gthr-win32.h.
8404
8405 2004-04-27  Paul Brook  <paul@codesourcery.com>
8406
8407         * config/arm/arm.c (arm_promote_prototypes): New function.
8408         (TARGET_PROMOTE_PROTOTYPES): Use it.
8409
8410 2004-04-27  Paul Brook  <paul@codesourcery.com>
8411
8412         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
8413
8414 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
8415
8416         * config/alpha.c (alpha_end_function): For OpenVMS gas,
8417         correctly output .pdesc directive before .end.
8418
8419 2004-04-26  James E Wilson  <wilson@specifixinc.com>
8420
8421         Bug 14927
8422         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
8423         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
8424
8425 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
8426
8427         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
8428         * config/pa/pa-hpux10.h: Likewise.
8429         * config/pa/pa-hpux11.h: Likewise.
8430
8431 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
8432
8433         * doc/invoke.texi (Overall Options): Document default for -o
8434         for PCH files.
8435
8436 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8437
8438         * builtins.c (expand_builtin_update_setjmp_buf): New function.
8439         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
8440         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
8441
8442 2004-04-26  Paul Brook  <paul@codesourcery.com>
8443
8444         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
8445
8446 2004-04-26  Paul Brook  <paul@codesourcery.com>
8447
8448         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
8449
8450 2004-04-25  Roger Sayle  <roger@eyesopen.com>
8451
8452         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
8453         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
8454         X % -1 as 0.
8455
8456 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
8457
8458         PR bootstrap/15141
8459         * except.c (connect_post_landing_pads): Delete insns after the
8460         barrier when generating a unwind_resume_libfunc call.
8461
8462 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8463
8464         PR/c++ 15119
8465         * tree.c (substitute_placeholder_in_expr, case 4): New case,
8466         for TARGET_EXPR.
8467
8468 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8469
8470         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8471         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
8472         inhibit_libc is defined.
8473
8474 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
8475
8476         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
8477         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
8478         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
8479         (TARGET_SCHED_VARIABLE_ISSUE): Define.
8480         (mips_adjust_cost): Move later in file, next to other sched hooks.
8481         (mips_macc_chains_last_hilo): New variable.
8482         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
8483         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
8484         * config/mips/mips.md (may_clobber_hilo): New attribute.
8485
8486 2004-04-24  Roger Sayle  <roger@eyesopen.com>
8487             Bruce Korb  <bkorb@gnu.org>
8488
8489         * fixinc/inclhack.def (aix_syswait_2): New fix.
8490         * fixinc/fixincl.x: Regenerate.
8491         * fixinc/tests/base/sys/wait.h: Update for new test.
8492
8493 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
8494
8495         PR target/14960
8496         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
8497         to non_fixed_size, and leave out fixed_size from the sum.
8498         (generate_set_vrsave): Correct clobbers.
8499         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
8500         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
8501         (rs6000_libcall_value): Likewise.
8502         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
8503         (FUNCTION_ARG_REGNO_P): Likewise.
8504
8505 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8506
8507         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
8508         is a CONST_INT.
8509         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
8510         with NARROW_OP1 instead of OP1.
8511
8512 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8513
8514         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
8515         and __s390x__ hosts.
8516
8517 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8518
8519         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
8520         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
8521         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
8522         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
8523         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
8524         * builtins.c (expand_builtin_fork_or_exec): New.
8525         (expand_builtin): Call it.
8526         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
8527         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
8528         * c-common.c (PID_TYPE): New macro.
8529         (c_common_nodes_and_builtins): Initialize pid_type_node.
8530         * calls.c (special_function_p): Do not handle fork and exec.
8531         (expand_call): Do not handle ECF_FORK_OR_EXEC.
8532         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8533         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
8534         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8535         __gcov_execv, __gcov_execvp, __gcov_execve): New.
8536         * tree.h (enum tree_index): Add TI_PID_TYPE.
8537         (pid_type_node): New macro.
8538         (ECF_FORK_OR_EXEC): Removed.
8539
8540 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8541
8542         PR optimization/13985
8543         * cfgloopmanip.c (fix_loop_placements): New prototype.
8544         Call fix_bb_placements on the preheader of loops that have
8545         been reparented.
8546         (remove_path): Adjust call to fix_loop_placements.
8547
8548 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
8549
8550         * config/darwin7.h: New file.
8551         * config.gcc (*-*-darwin*): Add darwin7.h if the
8552         version is greater than 6.
8553         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
8554         (MATH_LIBRARY): Wrap in ifdefs.
8555
8556 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
8557
8558         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
8559         loading iWMMXt registers with a frame pointer.  Use post-increment
8560         without a frame pointer.
8561         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
8562
8563 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
8564
8565         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
8566         mode" rather than "-funit-at-a-time" since -O2 enables it
8567         without requiring -f* options.  Refer to -fprofile-generate and
8568         -fprofile-use correctly.  Move -funit-at-a-time among options
8569         enabled by -O.  Add information about unit-at-a-time caveats.
8570
8571 2004-04-22  Per Bothner  <per@bothner.com>
8572
8573         * line-map.h (struct line_maps):  New field highest_line.
8574         (linemap_position_for_column):  Make non-inline function.
8575         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
8576         * line-map.c (linemap_init):  Clear highest_line field.
8577         (linemap_add):  Set highest_line field.
8578         (linemap_line_start):  Minor optimization - use highest_line field.
8579         Reduce maximum column hint to 10000.  Update highest_line field.
8580         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
8581         * cpphash.h (struct cpp_reader):  Remove line field - instead use
8582         line_table->highest_line.
8583         (saved_line):  Remove unused field.
8584         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
8585         Use  line_table's highest_line field instead of cpp_reader's line.
8586         * cpplib.c (start_directive):  Likewise use highest_line field.
8587         (do_line, do_linemarker):  Likewise just use newest map.
8588         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
8589         * cpperror.c (cpp_error):  Likewise use highest_line field.
8590         * cppfiles.c (open_file_failed:  Likewise.
8591         (cpp_make_system_header):  Likewise use newest map and highest_line.
8592         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
8593         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
8594         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
8595         _cpp_lex_direct):  Likewise use highest_line.
8596         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
8597         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
8598         and use newest map.
8599         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
8600         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
8601         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
8602
8603 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
8604
8605         PR bootstrap/14992
8606         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
8607         * config/linux.h (USE_LD_AS_NEEDED): Define.
8608         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
8609         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
8610         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
8611         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
8612         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
8613         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
8614         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
8615
8616 2004-04-22  Per Bothner  <per@bothner.com>
8617
8618         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
8619         Fixes PR preprocessor/15067.
8620
8621 2004-04-23  Andreas Schwab  <schwab@suse.de>
8622
8623         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
8624         avoid aliasing warning.
8625
8626 2004-04-22  Jan Hubicka  <jh@suse.cz>
8627             Mostafa Hagog <mustafa@il.ibm.com>
8628
8629       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
8630       * cfgloopanal.c (expected_loop_iterations): Change the return value
8631
8632 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
8633
8634         * cselib.h (struct elt_loc_list): Remove canon_loc field.
8635         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
8636         (cselib_invalidate_mem): Remove all canon_loc and canon_x
8637         traces.
8638
8639 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
8640
8641         Revert
8642         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8643
8644                 * var-tracking.c (variable_part_different_p): Variable parts
8645                 differ when the most recent locations differ.
8646
8647 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
8648
8649         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
8650         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
8651         (embedded_pic_offset): Delete.
8652         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
8653         MASK_* constants.
8654         (TARGET_EMBEDDED_PIC): Delete.
8655         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
8656         (ASM_SPEC): Remove -membedded-pic.
8657         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
8658         (ASM_OUTPUT_CASE_LABEL): Likewise.
8659         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
8660         * config/mips/windiss.h (ASM_SPEC): Likewise.
8661         * config/mips/mips.c (struct machine_function): Remove
8662         embedded_pic_fnaddr_rtx.
8663         (TARGET_ENCODE_SECTION_INFO): Remove override.
8664         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
8665         (override_options): Remove -membedded-pic handling.
8666         (print_operand): Remove handling of '%S'.
8667         (mips_select_section: Remove -membedded-pic handling.
8668         (mips_encode_section_info): Delete.
8669         (mips_output_conditional_branch): Remove mention of -membedded-pic.
8670         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
8671         -membedded-pic handling.
8672         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
8673
8674 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
8675
8676         * var-tracking.c (frame_base_decl): Remove useless GTY.
8677
8678 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
8679
8680         * config/rs6000/rs6000.c (rs6000_override_options): Error when
8681         user wants altivec and e500 instructions.
8682
8683 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8684
8685         PR target/14813
8686         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
8687         in .init_array section to ...
8688         * config/ia64/crtbegin.asm: Here.
8689
8690         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
8691         and hidden if HAVE_INITFINI_ARRAY is defined.
8692
8693 2004-04-21  James E Wilson  <wilson@specifixinc.com>
8694
8695         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
8696         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
8697         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
8698         (fp_register_operand, lo_operand): New.
8699         (mips_rtx_costs): Add TUNE_SB1 support.
8700         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
8701         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
8702         (mips_multipass_dfa_lookahead): New.
8703         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
8704         TUNE_SB1): New.
8705         (TARGET_SWITCHES): Add -mfp-exceptions support.
8706         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
8707         (BRANCH_COST): Fix whitespace.
8708         * config/mips/mips.md: Include sb1.md.
8709         * config/mips/sb1.md: New file.
8710         * doc/invoke.texi: Document -mfp-exceptions.
8711
8712         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
8713         comment.
8714         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
8715         (fixincl.o-warn): Delete.
8716
8717 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8718
8719         * config/rs6000/rs6000 (print_operand) ['z']:
8720         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
8721
8722 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
8723
8724         * config.gcc: Support --with-arch=iwmmxt for ARM.
8725
8726 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8727
8728         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
8729         in two more places; remove unneeded force_reg
8730
8731 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8732
8733         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
8734         for TARGET_MACHO.
8735         (print_operand): For TARGET_MACHO check to see if we need a stub
8736         and output one if we need it.
8737
8738         PR debug/15033
8739         * dwarf2out.c (rtl_for_decl_location): Check for NULL
8740         rtl.
8741
8742 2004-04-20  James E Wilson  <wilson@specifixinc.com>
8743
8744         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
8745         (vall_value_gp): Likewise.
8746
8747 2004-04-20  DJ Delorie  <dj@redhat.com>
8748
8749         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
8750         variables stored in word registers, then in memory.
8751
8752 2004-04-20  Eric Christopher  <echristo@redhat.com>
8753
8754         * cp/parser.c (cp_parser_declaration): Move translate
8755         up before tokens are lexed.
8756
8757 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
8758
8759         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
8760         (asin_optab, acos_optab): Define corresponding macros.
8761         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
8762         * genopinit.c (optabs): Implement asin_optab and acos_optab
8763         using asin?f2 and acos?f2 patterns.
8764         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
8765         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
8766         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
8767         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8768
8769         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
8770         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
8771         acos, acosf and acosl built-ins as inline x87 intrinsics.
8772
8773 2004-04-20  Paul Brook  <paul@codesourcery.com>
8774
8775         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
8776
8777 2004-04-20  Paul Brook  <paul@codesourcery.com>
8778
8779         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
8780
8781 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
8782
8783         Revert part of 2004-04-17 change that moved -frename-registers
8784         to -O1.  -frename-registers is buggy.
8785
8786         * toplev.c (flag_rename_registers): Initialize to 0.
8787         * doc/invoke.texi (Optimize options): Move -frename-registers
8788         to "Not triggered by any -O level" section.  Adjust commentary
8789         accordingly.
8790
8791 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
8792
8793         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
8794
8795 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
8796
8797         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
8798         for mflo and mfhi instructions.
8799         (mips_output_move): Remove mflo and mfhi handling.
8800         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
8801         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
8802         Likewise various define_peephole2s.
8803         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
8804         alternatives.
8805         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
8806         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
8807         (mfhilo_di, mfhilo_si): New patterns.
8808
8809 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8810
8811         * function.c (assign_parms): Force
8812         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
8813
8814 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8815
8816         * var-tracking.c (variable_part_different_p): Variable parts differ
8817         when the most recent locations differ.
8818
8819 2004-04-19  James E Wilson  <wilson@specifixinc.com>
8820
8821         * rtl.h (reg_set_last): Delete declaration.
8822         * rtlanal.c (reg_set_last): Delete.
8823
8824 2004-04-19  Roger Sayle  <roger@eyesopen.com>
8825
8826         * fold-const.c (fold_convert): Make function extern/public.
8827         * tree.h (fold_convert): Prototype here.
8828         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8829         expand_builtin_strrchr, expand_builtin_strpbrk,
8830         expand_builtin_mempcpy, expand_builtin_bcopy,
8831         expand_builtin_bzero, expand_builtin_memcmp,
8832         expand_builtin_strcmp, expand_builtin_strncmp,
8833         stabilize_va_list, expand_builtin_sprintf,
8834         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
8835         fold_builtin_exponent, fold_builtin_mempcpy,
8836         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
8837         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
8838         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
8839
8840 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
8841
8842         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
8843         (move_from_CR_gt_bit): New.
8844         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
8845         E500.
8846         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
8847         E500.
8848
8849         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
8850         (tstsfeq_gpr): Same.
8851         (cmpsfgt_gpr): Same.
8852         (tstsfgt_gpr): Same.
8853         (cmpsflt_gpr): Same.
8854         (tstsflt_gpr): Same.
8855         (e500_cceq_ior_compare): New.
8856         (e500_flip_gt_bit): New.
8857
8858         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
8859         (print_operand): Add 'c' and 'D'.
8860         (rs6000_generate_compare): Rewrite to generate correct rtl.
8861         (rs6000_emit_sCOND): Handle E500.
8862         (output_cbranch): Adjust for changes in rs6000_generate_compare.
8863         (output_e500_flip_gt_bit): New.
8864
8865         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
8866         Protoize.
8867
8868 2004-04-19  Eric Christopher  <echristo@redhat.com>
8869
8870         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
8871
8872 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
8873
8874         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
8875         fix information.
8876
8877 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8878
8879         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
8880         download URL.
8881
8882 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
8883
8884         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
8885         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
8886
8887 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
8888
8889         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
8890         (fold_builtin): Update caller to match.
8891
8892         PR bootstrap/15009
8893         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
8894
8895         PR bootstrap/14999
8896         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
8897
8898 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8899
8900         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
8901
8902         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
8903         (expand_mult_highpart_optab): Likewise.
8904         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
8905
8906 2004-04-19  Paul Brook  <paul@codesourcery.com>
8907
8908         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
8909         floatunssisf2, floatunssidf2): New patterns.
8910
8911 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
8912
8913         PR other/14918
8914         * doc/invoke.texi (-fprofile-generate): Document requirement to
8915         use -fprofile-generate when linking.
8916
8917         * doc/extend.texi (Strong Using): Warn users against using this
8918         feature.
8919
8920 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
8921
8922         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
8923         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
8924         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
8925         * config/mips/mips.c (struct mips16_constant): Renamed from struct
8926         constant.  Propogate change throughout file.
8927         (struct machine_function): Remove insns_len.
8928         (mips_string_length, mips16_strings, string_constants): Delete.
8929         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
8930         when generating mips16 code.  Remove special mips16 treatment of
8931         string constants.
8932         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
8933         to have the form LABEL+CONSTANT.
8934         (mips_symbolic_address_p): Fix comment.
8935         (m16_usym8_4, m16_usym5_4): Delete.
8936         (mips_output_function_epilogue): Remove mips16 string handling.
8937         (mips_output_mi_thunk): Call mips16_lay_out_constants.
8938         (mips_select_section, mips_encode_section_info): Remove mips16
8939         string handling.
8940         (struct mips16_constant_pool): New.
8941         (add_constant): Take a mips16_constant_pool structure.  Keep pool
8942         sorted into order of ascending mode size.  Keep track of the highest
8943         possible start address, taking padding and the masking of the base PC
8944         value into account.
8945         (dump_constants_1): New function, split out from dump_constants.
8946         Handle vector constants.  Use gen_consttable_{int,float} rather than
8947         separate functions for each mode.
8948         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
8949         rather than separate functions for each alignment.
8950         (mips_find_symbol): Delete.
8951         (mips16_insn_length): New function, split out from
8952         mips16_lay_out_constants.
8953         (mips16_rewrite_pool_refs): New function.
8954         (mips16_lay_out_constants): Rework. Remove string handling.
8955         Always create an inline constant pool.
8956         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
8957         (UNSPEC_ALIGN): New constants.
8958         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
8959         (UNSPEC_ALIGN_[248]): Delete.
8960         (consttable_int, consttable_float, align): New patterns.
8961         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
8962
8963 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
8964
8965         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
8966         __unn_args_eq.
8967
8968 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
8969
8970         PR target/14715
8971         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
8972         with STARTING_FRAME_OFFSET.
8973
8974 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8975
8976         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
8977         * config/mips/mips.c (macc_msac_operand): New function.
8978         * config/mips/mips.md (*msac): Move after *macc.
8979         (*msac2): New.  Generalize macc-related peepholes so that they apply
8980         to msac too.
8981
8982 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
8983
8984         * opts.c (decode_options): Do not enable flag_rename_registers
8985         and flag_web at -O3.
8986         * toplev.c (flag_rename_registers): Initialize
8987         flag_rename_registers and flag_web to
8988         AUTODETECT_FLAG_VAR_TRACKING.
8989         (default_debug_hooks): New global.
8990         (process_options): Initialize default_debug_hooks.  Warn if
8991         -fvar-tracking specified but not supported by the current
8992         debug format.  Do not run var tracking at -O0 or if not
8993         supported by the current debug format, even if
8994         -fvar-tracking was given.  If -fno-rename-registers
8995         is not specified, always run register renaming if var
8996         tracking is supported by the default debugging information
8997         format for the target, and we are at -O1 or higher; similarly
8998         for -fweb, but only at -O2 or higher.
8999         * doc/invoke.texi (Optimize Options): Document this.
9000
9001 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
9002
9003         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
9004         * configure: Regenerate.
9005
9006 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
9007
9008         * gcc.c (used_arg): Check whether an option has been removed.
9009
9010 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9011
9012         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
9013         debugging on Solaris 7 and up.
9014
9015 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9016
9017         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
9018         IRIX 5 port.
9019         Remove -save-temps workaround, handled automatically.
9020         Require GNU binutils 2.15 for debugging.
9021         Remove SGI make warnings since GNU make is now required.
9022         (Specific, mips-sgi-irix6): Some markup fixes.
9023         Describe MIPSpro C problems and workarounds.
9024         Mention working O32 ABI support.
9025         Recommend GNU as 2.15 for O32 with debugging.
9026         Remove description of fixed structure pass/return bug.
9027
9028 2004-04-16  DJ Delorie  <dj@redhat.com>
9029
9030         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
9031         TYPE_FIELDS.
9032         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
9033
9034 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9035
9036         * pa.md: Remove unnecessary declarations for asm_out_file.
9037
9038         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
9039         SAR register.  Fix comment.
9040         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
9041         (%cr11).
9042
9043         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
9044
9045 2004-04-16  Nick Clifton  <nickc@redhat.com>
9046
9047         * config/arm/arm.c (arm_override_options): Revert previous patch.
9048         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
9049         be safely built.
9050
9051 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
9052
9053         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
9054         bug.
9055         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
9056         TARGET_DEFAULT): Changed. Ditto.
9057         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
9058         TARGET_ENDIAN_DEFAULT): Added. Ditto.
9059         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
9060         (TARGET_ENDIAN_DEFAULT): Added.
9061
9062 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9063
9064         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
9065         ATTR_CONST_NOTHROW_LIST.
9066
9067 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9068
9069         PR/middle-end 14915
9070         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
9071         BITS_BIG_ENDIAN.
9072
9073 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
9074
9075         * ra-debug.c (ra_print_rtx): Add break's to case legs.
9076
9077 2004-04-14  James E Wilson  <wilson@specifixinc.com>
9078
9079         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
9080
9081 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
9082
9083         * libada-mk.in: New file.
9084         * configure.ac: Create libada-mk from libada-mk.in.
9085         * configure: Regenerate.
9086
9087 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
9088
9089         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
9090         (logb_optab, ilogb_optab): Define corresponding macros.
9091         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
9092         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
9093         using logb?f2 and ilogb?i2 patterns.
9094         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
9095         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
9096         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
9097         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9098
9099         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
9100         and UNSPEC_XTRACT_EXP.
9101
9102         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
9103         patterns to implement fxtract x87 instruction.
9104         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
9105         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
9106         intrinsics.
9107         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
9108         x87's fxtract insn.
9109
9110 2004-04-14  Eric Christopher  <echristo@redhat.com>
9111
9112         * config/mips/t-elf: Enable multilibs by default.
9113
9114 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
9115
9116         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
9117         previous fix to check HAVE_return at runtime too.
9118
9119 2004-04-14  Nick Clifton  <nickc@redhat.com>
9120
9121         * config/arm/arm.c (arm_override_options): If the user has not
9122         specified an ABI, then default to AAPCS for the iWMMXt processor.
9123         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
9124         * config/arm/t-xscale-coff: Likewise.
9125
9126 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9127
9128         * builtins.c (fold_builtin_isdigit): New.
9129         (fold_builtin): Handle BUILT_IN_ISDIGIT.
9130         * defaults.h: Add TARGET_DIGIT0 and sort.
9131         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
9132
9133 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9134
9135         * builtins.c (fold_builtin_cabs, fold_builtin): Use
9136         `mathfn_built_in' to determine the new builtin.
9137         * fold-const.c (fold): Likewise.
9138
9139 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
9140
9141         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
9142         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
9143         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
9144         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
9145         (ASM_SPEC): Update accordingly.
9146         * config/mips/mips.c: Update after above renaming.
9147         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
9148         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
9149
9150 2004-04-13  James E Wilson  <wilson@specifixinc.com>
9151
9152         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
9153         increment errorcount and return false instead of true.
9154
9155 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
9156
9157         * optabs.c (expand_twoval_unop): Reorder function arguments.
9158         * builtins.c (expand_builtin_mathfn_3): Update calls to
9159         expand_twoval_unop.
9160
9161         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
9162         and UNSPEC_TAN_TAN. Add missing comment.
9163
9164         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
9165         patterns to implement fptan x87 instruction.
9166         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
9167         and tanl built-ins as inline x87 intrinsics. Define corresponding
9168         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
9169         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
9170         x87's fptan insn.
9171
9172 2004-03-13  Richard Henderson  <rth@redhat.com>
9173
9174         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
9175         for LABEL_REFs.
9176
9177         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
9178         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
9179         * doc/invoke.texi: Update to match.
9180
9181         * varasm.c (unlikely_text_section): Use assemble_align instead of
9182         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
9183         correct alignment argument.
9184
9185 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
9186
9187         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
9188         after setting reg_last_reload_reg for optional output reloads.
9189
9190 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
9191
9192         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
9193         Definition of these two macros are corrected by adding
9194         matchine right paren.
9195
9196 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
9197
9198         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
9199
9200 2004-04-12  Roger Sayle  <roger@eyesopen.com>
9201
9202         * config/i386/i386.c (output_387_reg_move): New function.
9203         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
9204         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
9205         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
9206         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
9207         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
9208
9209 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9210
9211         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
9212         TYPE_DECL.
9213         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
9214         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
9215         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
9216         Use skip_simple_arithmetic to find SAVE_EXPR.
9217         (force_type_save_exprs, force_type_save_exprs_1): New functions.
9218         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
9219         Properly chain multiple pointers.
9220         (copy_tree_r): Copy a TYPE_DECL.
9221         * tree.c (variably_modified_type_p): Add some missing tests and
9222         make some other minor changes.
9223         * tree.h (force_type_save_exprs): New declaration.
9224
9225 2004-04-12  Roger Sayle  <roger@eyesopen.com>
9226
9227         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
9228         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
9229         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
9230         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
9231         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
9232         x%-1 into 0 (or x&0 if x has side-effects).
9233
9234 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9235
9236         * config/rs6000/rs6000.md: Document why a pattern is not
9237         available.
9238
9239         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
9240         of floats on the E500.
9241         (branch_positive_comparison_operator): Do not allow NE even on the
9242         E500.
9243
9244 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9245
9246         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
9247         in_text_unlikely_section to in_unlikely_text_section.
9248
9249 2004-04-11  Roger Sayle  <roger@eyesopen.com>
9250
9251         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
9252         calling convention to allow a NULL_TREE to be returned.  Factor
9253         sanity checks from callers, return NULL_TREE when appropriate.
9254         (fold): Handle COMPOUND_EXPR operands of binary expressions
9255         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
9256         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
9257         calls to fold_binary_op_with_conditional_arg.
9258
9259 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9260
9261         * config/mips/iris5.h (current_section_flags):  Add
9262         in_unlikely_executed_text and default case.
9263
9264 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
9265
9266         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
9267         failure on solaris. Place ifdef HAVE_return around gen_ret call.
9268         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
9269         HAVE_return and place it around the place where it is needed.
9270
9271 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
9272
9273         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
9274         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
9275         and NORMAL_TEXT_SECTION_NAME.
9276         (unlikely_text_section): Check targetm.have_named_sections
9277         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
9278         instead of SECTION_FORMAT_STRING.
9279         * config/mips/iris5.h (current_section_name): Add
9280         in_unlikely_executed_text case and move the abort into the switch.
9281         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
9282         (NORMAL_TEXT_SECTION_NAME): Remove.
9283         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
9284         (SECTION_FORMAT_STRING): Remove.
9285         * defaults.h (SECTION_FORMAT_STRING): Remove.
9286         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
9287         (SECTION_FORMAT_STRING): Remove.
9288
9289 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
9290
9291         * c-typeck.c (common_type): Prefer long long to long when same
9292         precision.
9293
9294 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
9295
9296         PR 14887
9297         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
9298         mode argument.
9299         * config/ia64/ia64.c (ia64_hpux_file_end): Check
9300         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
9301
9302 2004-04-09  Roger Sayle  <roger@eyesopen.com>
9303
9304         * simplify-rtx.c (mode_signbit_p): New function to check whether
9305         an RTX is an immediate constant that represents the most significant
9306         bit of a given machine mode.
9307         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
9308         C is the sign bit.
9309         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
9310         when C2 is the sign bit.
9311         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
9312         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
9313         sign bit.
9314
9315 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9316
9317         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
9318         TYPE_MODE.
9319
9320 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
9321
9322         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
9323         of TREE_READONLY for types.
9324
9325 2004-04-09  Caroline Tice  <ctice@apple.com>
9326
9327         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
9328         (struct basic_block_def):  Add new field, partition.
9329         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
9330         definitions.
9331         (partition_hot_cold_basic_blocks): Add extern function
9332         declaration.
9333         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
9334         include statements.
9335         (N_ROUNDS): Increase the maximum number of rounds by 1.
9336         (branch_threshold): Add array value for new round.
9337         (exec_threshold): Add array value for new round.
9338         (push_to_next_round_p): New function.
9339         (add_unlikely_executed_notes): New function.
9340         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
9341         (mark_bb_for_unlikely_executed_section): New function.
9342         (add_labels_and_missing_jumps): New function.
9343         (add_reg_crossing_jump_notes): New function.
9344         (fix_up_fall_thru_edges): New function.
9345         (find_jump_block): New function.
9346         (fix_crossing_conditional_branches): New function.
9347         (fix_crossing_unconditional_branches): New function.
9348         (fix_edges_for_rarely_executed_code): New function.
9349         (partition_hot_cold_basic_blocks): New function.
9350         (find_traces):  Add an extra round for partitioning hot/cold
9351         basic blocks.
9352         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
9353         and only cold blocks, into the last (extra) round of collecting traces.
9354         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
9355         over crossing edges.
9356         (bb_to_key):  Add code to correctly identify cold blocks when
9357         doing partitioning.
9358         (connect_traces): Modify to connect all the non-cold traces first, then
9359         go back and connect up all the cold traces.
9360         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
9361         * cfg.c (entry_exit_blocks): Add initialization for partition field in
9362         entry and exit blocks.
9363         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
9364         if we are doing hot/cold partitioning.
9365         * cfgcleanup.c (cfglayout.h): Add new include statement.
9366         (try_simplify_condjump): Modify to not attempt on blocks with jumps
9367         that cross section boundaries.
9368         (try_forward_edges): Likewise.
9369         (merge_blocks_move_predecessor_nojumps): Likewise.
9370         (merge_blocks_move_successor_nojumps): Likewise.
9371         (merge_blocks_move): Likewise.
9372         (try_crossjump_to_edge): Modify to not attempt after we have done
9373         the block partitioning.
9374         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
9375         cross section boundaries.
9376         (try_optimize_cfg): Likewise.
9377         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
9378         jumps that cross section boundaries.
9379         * cfglayout.c (flags.h): Add new include statement.
9380         (update_unlikely_executed_notes):  New function.
9381         (fixup_reorder_chain):  Add code so when a new jumping basic block is
9382         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
9383         updated appropriately.
9384         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
9385         introduced by this optimization.
9386         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
9387         extern function declaration.
9388         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
9389         list of notes that can be deleted.
9390         (create_basic_block_structure):  Add initialization for partition field.
9391         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
9392         section boundaries.
9393         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
9394         cross section boundaries.
9395         (commit_one_edge_insertion): Add code so newly created basic block
9396         ends up in correct (hot or cold) section.  Modify to disallow
9397         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
9398         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
9399         crosses section boundaries.
9400         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
9401         cross section boundaries.
9402         (force_nonfallthru_and_redirect): Modify to make sure new basic block
9403         ends up in correct section, with correct notes attached.
9404         * common.opt (freorder-blocks-and-partition):  Add new flag for this
9405         optimization.
9406         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
9407         the end of functions are written into the correct (hot or cold)
9408         section.
9409         (dbx_source_file): Add code so writing debug file information
9410         doesn't incorrectly change sections.
9411         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
9412         in partitioning hot/cold basic blocks into separate sections.
9413         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
9414         section partitioning.
9415         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
9416         conditional branches can span all of memory.
9417         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
9418         unconditional branches can span all of memory.
9419         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
9420         (final_scan_insn):  Add code to check for NOTE instruction indicating
9421         whether basic block belongs in hot or cold section, and to make sure
9422         the current basic block is being written to the appropriate section.
9423         Also added code to ensure that jump table basic blocks end up in the
9424         correct section.
9425         * flags.h (flag_reorder_blocks_and_partition):  New flag.
9426         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
9427         one of the branches has a jump that crosses between sections.
9428         (find_if_case_2): Likewise.
9429         (ifcvt): Modify to not attempt to mark loop exit edges after
9430         hot/cold partitioning has occurred.
9431         * opts.c (decode_options): Code to handle new flag,
9432         flag_reorder_blocks_and_partition; also to turn it off if
9433         flag_exceptions is on.
9434         (common_handle_option): Code to handle new flag,
9435         flag_reorder_blocks_and_partition.
9436         * output.h (unlikely_text_section): New extern function declaration.
9437         (in_unlikely_text_section): New extern function declaration.
9438         * passes.c (rest_of_handle_stack_regs):  Add
9439         flag_reorder_blocks_and_partition as an 'or' condition for calling
9440         reorder_basic_blocks.
9441         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
9442         as an 'or' condition for calling reorder_basic_blocks.
9443         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
9444         * print-rtl.c (print_rtx): Add code for handling new note,
9445         NOTE_INSN_UNLIKELY_EXECUTED_CODE
9446         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
9447         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
9448         cross between section boundaries.
9449         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
9450         indicating the basic block containing it belongs in the cold section.
9451         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
9452         between hot and cold sections.
9453         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
9454         initialize this flag, and to tie it to the command-line option
9455         freorder-blocks-and-partition.
9456         * varasm.c (cfglayout.h):  Add new include statement.
9457         (unlikely_section_label_printed):  New global variable, used for
9458         determining when to output section name labels for cold sections.
9459         (in_section):  Add in_unlikely_executed_text to enum data structure.
9460         (text_section):  Modify code to use SECTION_FORMAT_STRING and
9461         NORMAL_TEXT_SECTION_NAME macros.
9462         (unlikely_text_section):  New function.
9463         (in_unlikely_text_section):  New function.
9464         (function_section):  Add code to make sure beginning of function is
9465         written into correct section (hot or cold).
9466         (assemble_start_function):  Add code to make sure stuff is written to
9467         the correct section.
9468         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
9469         to an if statement that was checking 'in_text_section'.
9470         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
9471         condition to an if statement that was checking 'in_text_section'.
9472         (default_section_type_flags_1):  Add check: if in cold section
9473         flags = SECTION_CODE.
9474         * config/darwin.c (darwin_asm_named_section):  Modify to use
9475         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
9476         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
9477         specifically for the i386.
9478         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
9479         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
9480         text string to something more informative.
9481         (NORMAL_TEXT_SECTION_NAME): Add new definition.
9482         (SECTION_FORMAT_STRING):  Add new definition.
9483         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
9484         '!in_unlikely_text_section' as an 'and' condition to an if statement
9485         that was already checking '!in_text_section'.
9486         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
9487         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
9488         sure these are properly defined for linux on ppc.
9489         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
9490         for this new flag.
9491         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
9492         reg_note.
9493         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
9494         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
9495         these new macros.
9496
9497 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9498
9499         * function.c (gen_mem_addressof): When changing the RTX from a REG
9500         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
9501
9502 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9503
9504         PR target/14888
9505         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
9506         truncxfdf2_noop): Provide dummy "fmov" implementations.
9507
9508 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
9509
9510         * gcc.c (default_compilers): Add missing initializers.
9511
9512         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9513         Return 1 if file was successfully mapped.
9514
9515 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
9516
9517         PR pch/13419
9518         PR pch/14137
9519         Radar #: 3315288
9520         * doc/invoke.texi (Precompiled Headers): Suggest -o
9521         to put an output file in a particular place.  Be more detailed
9522         about which options affect PCH validity and which options
9523         might not work.
9524         * c-pch.c (pch_matching): New.
9525         (MATCH_SIZE): New.
9526         (struct c_pch_validity): New field 'match'.
9527         (pch_init): Handle pch_matching.
9528         (c_common_valid_pch): Check pch_matching.
9529
9530         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
9531
9532 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
9533
9534         * doc/invoke.texi (Precompiled Headers): Warn about known
9535         problems.
9536
9537 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
9538
9539         PR c++/14808
9540         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
9541         to 1 if ASM_OUTPUT_DEF is defined.
9542         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
9543         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
9544         Set to non-zero iff not a one_only decl.
9545
9546 2004-04-08  Paul Brook  <paul@codesourcery.com>
9547
9548         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
9549
9550 2004-04-08  Paul Brook  <paul@codesourcery.com>
9551
9552         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
9553         PROMOTE_FOR_CALL_ONLY.
9554         * config/arm/arm-protos.h (arm_function_value): Declare.
9555         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9556         (TARGET_PROMOTE_PROTOTYPES): Return false.
9557         (arm_function_value): New function.
9558         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
9559         (FUNCTION_VALUE): Call arm_function_value.
9560         * config/cris/cris.h (PROMOTE_MODE): Rename ...
9561         (PROMOTE_FUNCTION_MODE): ... to this.
9562         (PROMOTE_FOR_CALL_ONLY): Remove.
9563         * config/mmix/mmix.h: Likewise.
9564         * config/s390/s390.h: Likewise.
9565         * config/sparc/sparc.h: Likewise.
9566         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
9567         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
9568         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
9569         (PROMOTE_FOR_CALL_ONLY): Remove.
9570
9571 2004-04-08  Joel Sherrill <joel@oarcorp.com>
9572
9573         PR ada/14538
9574         * ada/5rosinte.adb: Remove fake mprotect() body.
9575         * ada/5rosinte.ads: Add SA_SIGINFO.
9576         * ada/5rtpopsp.adb: Rewrite to use new interface.
9577         * ada/init.c: Reorder so the simple single OS conditional __rtems__
9578         is tested before more complex ones which mix UNIX and embedded
9579         systems in the conditional.
9580
9581 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
9582
9583         PR ada/14665
9584         * ada/osint.adb (Find_Program_Name): Rework to properly handle
9585         filenames which end in .exe or have versioning suffixes like VMS.
9586
9587 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
9588
9589         PR target/10129
9590         * config/darwin.c (darwin_encode_section_info): When the decl has
9591         a DECL_INITIAL, it is only defined also when it is not a common.
9592
9593 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9594
9595         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
9596         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
9597
9598 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
9599
9600         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
9601         global register variables.
9602
9603 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
9604
9605         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
9606         rpc_xdr_lvalue_cast_b): New fixes.
9607         * fixinc/fixincl.x: Regenerate.
9608         * fixinc/tests/base/rpc/xdr.h: Add new tests.
9609
9610 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
9611
9612         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
9613         to power4 and power5 entries.
9614
9615 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
9616
9617         * c-common.h (pending_lang_change): Mark for PCH.
9618
9619 2004-04-07  Caroline Tice  <ctice@apple.com>
9620
9621         * gcc.c (main): Move 'break' in main loops (on an error)
9622         to wait until error processing has occurred.
9623
9624 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
9625
9626         * config.gcc: Stop changing enable_threads midstream.
9627         Replace uses of enable_threads_flag with enable_threads.
9628         * configure.ac: Replace uses of enable_threads_flag with
9629         enable_threads.  Improve autoconf quotation in one place.
9630         * configure: Regenerate.
9631
9632 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
9633
9634         * builtins.c: Implement support for sincos function.
9635         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
9636         BUILT_IN_COS{,F,L}.
9637         (expand_builtin_mathfn_3): New function.
9638         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
9639         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
9640         flag_unsafe_math_optimization is set.
9641
9642         * optabs.h (enum optab_index): Add new OTI_sincos.
9643         (sincos_optab): Define corresponding macro.
9644
9645         * optabs.c (init_optabs): Initialize sincos_optab.
9646         (expand_twoval_unop): New function.
9647
9648         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
9649         patterns.
9650
9651         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
9652         and UNSPEC_SINCOS_SIN.
9653
9654         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
9655         sincosxf3): New patterns to implement sincos, sincosf and sincosl
9656         built-ins as inline x87 intrinsics. Define splits for
9657         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
9658         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
9659         sincos patterns.
9660         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
9661         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
9662
9663         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
9664         x87's fsincos insn.
9665
9666 2004-04-06  Devang Patel  <dpatel@apple.com>
9667
9668         PR 14467
9669         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
9670
9671 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9672
9673         * doc/install.texi: Update HP-UX 11 installation procedure.
9674
9675 2004-04-06  Paul Brook  <paul@codesourcery.com>
9676
9677         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
9678
9679 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9680
9681         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
9682         when the TLS address is generated by a function call.
9683         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
9684         (tls_local_dynamic): Likewise.
9685
9686 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
9687
9688         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
9689         and TYPE_VOLATILE.
9690
9691 2004-04-05  Caroline Tice  <ctice@apple.com>
9692
9693         * gcc.c (combine_flag): New global variable, for new driver option.
9694         (struct compiler): Add two new fields, to be used when
9695         combining multiple input files in a single pass (IMA).
9696         (default_compilers):  Add values for the new fields to all
9697         compiler entries. Modify the "@c" compiler entry for doing IMA
9698         properly with "-save-temps" and the "combine" flag.
9699         (option_map):  Add new driver option, "--combine", to tell driver
9700         to pass multiple input files to compiler at one time.
9701         (have_o_argbuf_index): New global variable.
9702         (store_arg): Modify to assign value to have_o_argbuf_index.
9703         (struct infile):  Add three new fields, to help with IMA.
9704         (display_help): Add help for new "combine" option.
9705         (process_command): Remove local variable have_o; add code to check
9706         for new "combine" option; remove assignment to combine_inputs.
9707         (do_spec_1):  Modify to deal with IMA better.
9708         (main): Make variable 'lang_n_infiles' local to entire function
9709         rather than to a single block.  Use flag combine_flag to
9710         determine whether to do IMA or not; Modify loop initializing
9711         infiles to deal properly with linker files.
9712         Add code for doing preprocessing in presence of
9713         IMA with "-save-temps" flag.  Modify "main" loop to handle
9714         multiple input files, in multiple languages, with or without
9715         preprocessing,  gracefully.
9716         * toplev.c (set_src_pwd): Modify to not complain if attempting to
9717         re-set it to same directory it's previously been set to (avoid
9718         irritating, meaningless warning messages when doing IMA with
9719         save-temps).
9720         * doc/invoke.texi: Add "-combine" to list of Overall Options;
9721         remove documentation about IMA that is no longer accurate; Add
9722         documentation explaining what "-combine" does.
9723         * ada/lang-specs.h: Add initialization values for new fields in
9724         "struct compiler".
9725         * cp/lang-specs.h: Likewise.
9726         * f/lang-specs.h: Likewise.
9727         * java/lang-specs.h: Likewise.
9728         * objc/lang-specs.h: Likewise.
9729         * treelang/lang-specs.h: Likewise.
9730
9731 2004-04-05  David Edelsohn
9732
9733         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
9734         symbol handling.
9735
9736 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
9737             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9738
9739         PR optimization/13424 (hppa), bootstrap/14462, c/14828
9740         * pa.md: Use replace_equiv_address to retain the attributes of the
9741         memory operands used in the split and peephole2 patterns for optimizing
9742         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
9743
9744 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9745
9746         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
9747         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9748         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
9749         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
9750         PARM_DECL.
9751         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
9752         for a type.
9753         * print-tree.c (print_node): Properly handle side-effects, readonly,
9754         and constant flags.
9755         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
9756         and TREE_CONSTANT if not a type.
9757         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
9758         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
9759         (NON_TYPE_CHECK): New macro.
9760         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
9761
9762 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
9763
9764         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
9765         to DWARF2_DEBUG unconditionally.
9766         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
9767
9768 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
9769             Nathanael Nerode  <neroden@gcc.gnu.org>
9770
9771         PR target/14548
9772         * config.host: Set the shell variable host_can_use_collect2.
9773         Set it to yes by default, and to no for alpha*-dec-*vms*,
9774         i[34567]86-*-mingw32*, and powerpc-*-beos*.
9775         * configure.ac: Set and substitute the shell variable collect2.
9776         Give an error if use_collect2 is yes and host_can_use_collect2 is
9777         no.
9778         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
9779         uses.  Initialize to @collect2@.
9780         (STAGESTUFF): Remove $(USE_COLLECT2).
9781         * config/alpha/x-vms (USE_COLLECT2): Don't set.
9782         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
9783         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
9784         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
9785         * configure: Regenerate.
9786
9787 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9788
9789         * simplify-rtx.c (simplify_binary_operation): Constant fold
9790         DIV, MOD, UDIV and UMOD using div_and_round_double.
9791
9792 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9793
9794         PR c++/14804
9795         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
9796         RECORD_TYPEs.
9797
9798 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9799
9800         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
9801         documentation.
9802
9803 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9804
9805         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
9806         updating the REG_EQUAL note on an insn's libcall_insn.
9807
9808 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9809
9810         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
9811
9812 2004-04-03  Roger Sayle  <roger@eyesopen.com>
9813
9814         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
9815         with reorder_operands_p.
9816
9817 2004-04-03  Jan Hubicka  <jh@suse.cz>
9818
9819         * md.texi (vec_set, vec_extract, vec_init): Document.
9820
9821 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
9822
9823        * opts.c (decode_options): Do function inlining with very small
9824        max-inline-insns-* parameters when optimizing for size.
9825
9826 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
9827
9828         * config/i386/i386.h (TARGET_NOCONA): New macro.
9829         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
9830         (processor_type): Add PROCESSOR_NOCONA.
9831
9832         * config/i386/i386.md (cpu): Add nocona to the attribute values.
9833
9834         * config/i386/i386.c (nocona_cost): New variable.
9835         (m_NOCONA): New macro.
9836         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9837         x86_branch_hints, x86_use_sahf, x86_single_stringop,
9838         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
9839         x86_integer_DFmode_moves, x86_partial_reg_dependency,
9840         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
9841         x86_decompose_lea, x86_arch_always_fancy_math_387,
9842         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
9843         x86_ext_80387_constants, x86_four_jump_limit):
9844         (override_options): Add nocona_cost to processor_target_table.
9845         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
9846         (incdec_operand): Prevent inc/dec generation for Nocona too.
9847         (ix86_issue_rate): Add PROCESSOR_NOCONA.
9848
9849 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
9850
9851         * rtlanal.c (find_reg_note): Manually
9852         unswitch the loop.
9853
9854 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
9855
9856         * genemit.c (gen_split): Change prototype of generated code.
9857         * genrecog.c (write_action): Adjust prototype for and calls to
9858         gen_split_*.
9859         * gensupport.c (struct queue_elem): Add split field.
9860         (queue_pattern): Return a value.  Clear the split field.
9861         (process_rtx): Maintain an association between an insn and the
9862         split generated from it for a define_insn_and_split.
9863         (process_one_cond_exec): Generate a new split for a
9864         define_insn_and_split.
9865         * config/arm/arm-protos.h (arm_split_constant): Add insn
9866         parameter.
9867         (emit_constant_insn): New function.
9868         (arm_gen_constant): Use it.
9869         * config/arm/arm.md: Adjust calls to arm_split_constant.
9870
9871 2004-04-02  Jan Hubicka  <jh@suse.cz>
9872
9873         * cgraph.c: Add overall comment.
9874         (cgraph_inline_hash): New global variable.
9875         (cgraph_create_node): Break out from ...
9876         (cgraph_node): ... here.
9877         (cgraph_edge): New function.
9878         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
9879         (cgraph_remove_edge): Accept edge, intead of source and destination.
9880         (cgraph_redirect_edge_callee): New.
9881         (cgraph_remove_node): Update all new datastructures.
9882         (cgraph_record_call, cgraph_remove_call): Kill.
9883         (dump_cgraph_node): Break out from ... ; dump new datastructures.
9884         (dump_cgraph): ... here.
9885         (cgraph_function_possibly_inlined_p): Use new hashtable.
9886         (cgraph_clone_edge, cgraph_clone_node): New.
9887         * cgraph.h: Include hashtab.h
9888         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
9889         fields, add inlined_to pointer.
9890         (cgraph_node): Add pointer to next_clone.
9891         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
9892         (cgraph_remove_call, cgraph_record_call): Kill.
9893         (cgraph_inline_hash): Declare.
9894         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
9895         cgraph_redirect_edge_callee): Declare.
9896         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
9897         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
9898         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
9899         * cgraphunit.c: Add overall comment.
9900         (cgraph_optimize_function): Kill.
9901         (cgraph_assemble_pending_functions): Do not assemble inline clones.
9902         (cgraph_finalize_function): Update call of cgraph_remove_node
9903         (record_call_1): Record call sites.
9904         (cgraph_create_edges): Accept node instead of decl argument.
9905         (error_found): New static variable.
9906         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
9907         (cgraph_analyze_function): Update for new datastructures.
9908         (cgraph_finalize_compilation_unit): Plug memory leak.
9909         (cgraph_optimize_function): Kill.
9910         (cgraph_expand_function): Do not use cgraph_optimize_function.
9911         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
9912         cgraph_inlined_callees): Kill.
9913         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
9914         clones.
9915         (estimate_growth): Simplify.
9916         (cgraph_clone_inlined_nodes): New function.
9917         (cgraph_mark_inline_edge): Re-implement.
9918         (cgraph_mark_inline): Likewise.
9919         (cgraph_check_inline_limits): Simplify.
9920         (cgraph_recursive_inlining_p): New.
9921         (update_callee_keys): Break out from ...
9922         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
9923         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
9924         Likewise.
9925         (cgraph_expand_all_functions):  Remove inline clones from the ordered
9926         list.
9927         (cgraph_preserve_function_body_p): New predicate.
9928         (cgraph_optimize): Verify cgraph.
9929         * function.h (struct function): Add fields saved_tree/saved_args.
9930         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
9931         * toplev.c (rest_of_compilation): Do not free cfun.
9932         * tree-inline.c: Include function.h
9933         (struct inline_data): Add saving_p field; replace decl/current_decl by
9934         node/current_node.
9935         (insert_decl_map): New function.
9936         (copy_body_r): Handle saving; update cgraph datastructure.
9937         (copy_body): Handle recursive inlining.
9938         (initialize_inlined_parameters): Likewise.
9939         (expand_call_inline): Propagate node attributes; update cgraph.
9940         (optimize_inline_calls): Verify that datastructure still match.
9941         (save_body): New function.
9942         * tree-inline.h (save_body): New.
9943         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
9944         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
9945         * langhooks.c (lang_hooks): Add update_decl_after_saving.
9946
9947 2004-04-01  Serge Belyshev  <1319@bot.ru>
9948
9949         PR target/14702
9950         * config/i386/i386.md: fix source operand constraints in
9951         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
9952
9953 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9954
9955         * fold-const.c (folda): Preserve types of comparisons.
9956
9957 2004-04-01  Richard Henderson  <rth@redhat.com>
9958
9959         * toplev.c (backend_init): Move init_optimization_passes call ...
9960         (lang_dependent_init): ... here.
9961
9962 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
9963             Jakub Jelinek  <jakub@redhat.com>
9964
9965         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
9966         -lgcc --as-needed -lgcc_s --no-as-needed by default.
9967         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
9968         * configure: Rebuilt.
9969         * config.in: Rebuilt.
9970         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
9971         (stage2-start, stage3-start, stage4-start): Likewise.
9972         (stageprofile-start, stagefeedback-start): Likewise.
9973
9974 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9975
9976         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
9977         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9978         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9979         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9980         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
9981         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
9982         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
9983         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
9984         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
9985         * config/sparc/t-linux: Removed.
9986
9987 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9988
9989         PR c++/14755
9990         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
9991         "bitfld++ == const" to "++bitfld == const + incr" transformations.
9992
9993 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9994
9995         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
9996         * stor-layout.c (layout_decl): Likewise.
9997         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
9998         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
9999         * print-tree.c (print_node): Handle various used of unsigned_flag.
10000         * tree.def (BIT_FIELD_REF): Update comment.
10001         * tree.h (TREE_UNSIGNED): Deleted.
10002         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
10003
10004 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10005
10006         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
10007         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
10008         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
10009         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
10010         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
10011         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
10012         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
10013         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
10014         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
10015         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
10016         REAL_TYPE, not INTEGER_TYPE.
10017         (layout_type, case VECTOR_TYPE): Simplify code.
10018         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
10019         * tree.h: Update comments.
10020         (STRIP_NOPS): Use TYPE_UNSIGNED.
10021         (TYPE_UNSIGNED): New macro.
10022         (TYPE_TRAP_SIGNED): Remove now redundant check.
10023         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
10024
10025 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10026
10027         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
10028
10029 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
10030
10031         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
10032         Add darwin-fpsave.asm, darwin-vecsave.asm,
10033         and darwin-world.asm.
10034         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
10035         as the asm files contain altivec instructions.
10036         * config/rs6000/darwin-fpsave.asm: New file.
10037         * config/rs6000/darwin-vecsave.asm: New file.
10038         * config/rs6000/darwin-world.asm: New file.
10039
10040 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
10041
10042         * gengtype-yacc.y (option, stringseq): Add missing
10043         terminating semicolon.
10044
10045 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
10046
10047         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
10048         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
10049         tls_dtprel_ha_32, tls_dtprel_ha_64,
10050         tls_dtprel_lo_32, tls_dtprel_lo_64,
10051         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
10052         tls_tprel_ha_32, tls_tprel_ha_64,
10053         tls_tprel_lo_32, tls_tprel_lo_64,
10054         tls_got_tprel_32, tls_got_tprel_64,
10055         tls_tls_32, tls_tls_64): Replace register_operand with
10056         gpc_reg_operand.
10057
10058 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
10059
10060         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
10061         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
10062         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
10063         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
10064         *ctrdi_internal6): Replace register_operand with
10065         nonimmediate_operand.
10066
10067 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
10068
10069         * fold-const.c (fold): Reassociate multiply expression
10070         with an adjacent non-multiply expression to use
10071         architecture's multiply-add instruction.
10072
10073 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
10074
10075         * gengtype.c (create_option): New function.
10076         * gengtype.h: Prototype it.
10077         * gengtype-yacc.y (stringseq): New rule.
10078         (option): Use create_option.  Add new bare ID production.  Use
10079         stringseq, not STRING directly.
10080
10081         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
10082         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
10083         * varray.h, config/alpha/alpha.c:
10084         Use new shorter form of GTY markers.
10085
10086         * doc/gty.texi: Rewrite.
10087
10088 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
10089
10090         * config/darwin.c (machopic_function_base_name):
10091         Remove current_name and getting the name of the
10092         current function.
10093
10094 2004-03-30  Nick Clifton  <nickc@redhat.com>
10095
10096         * config/arm/arm.md (thumb_jump): Reduce the backward branch
10097         range, and increase the forward branch range, to allow for
10098         the fact that the PC will be off by 4.
10099
10100 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
10101
10102         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
10103
10104 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
10105
10106         * config/rs6000/rs6000.c (output_vec_const_move):
10107         Find all cases of EASY_VECTOR_15_ADD_SELF.
10108         (easy_vector_constant_add_self): Accept
10109         all vector constant loadable by vsplt* and vadd*.
10110         (easy_vector_same): Use easy_vector_splat_const.
10111         (easy_vector_const): Use easy_vector_splat_const.
10112         (easy_vector_splat_const): New function.
10113         (gen_easy_vector_constant_add_self): New function.
10114
10115         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
10116         New prototype.
10117
10118         * config/rs6000/altivec.md (movv4si splitter): Change to
10119         emit move insn with halfed vector constant.
10120         (*movv8hi splitter): Likewise.
10121         (*movv16qi splitter): Likewise.
10122
10123 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
10124
10125         PR 11591
10126         * config/rs6000/rs6000.c (rs6000_legitimate_address):
10127         Allow any offset to argument pointer in no-strict case.
10128
10129 2004-03-30  Jan Hubicka  <jh@suse.cz>
10130
10131         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
10132         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
10133         dump file in non-unit-at-a-time mode.
10134
10135 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
10136
10137         * config/cris/cris.h: Correct #ifdef to test for
10138         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
10139         HAVE_AS_MUL_BUG_ABORT_OPTION.
10140
10141 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10142
10143         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
10144         the address inside the old RTL.
10145
10146 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
10147
10148         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
10149         (struct c_binding, struct c_scope): Add chain_next
10150         attributes to GTY markers.
10151         (struct lang_identifier, struct lang_tree_node): Define
10152         here...
10153         * c-tree.h: ... not here.  No longer need to declare struct
10154         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
10155         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
10156         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
10157
10158         PR 14734, 11944
10159         * c-decl.c (get_parm_info): If error_mark_node is encountered
10160         in the bindings chain, unbind and discard it; don't abort.
10161
10162 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
10163             Dorit Naishlos <dorit@il.ibm.com>
10164
10165         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
10166         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
10167
10168 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
10169
10170         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
10171
10172         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
10173         (m68hc11_attribute_table): New attribute "page0" to mark a global
10174         variable as being allocated from within page0 section.
10175         (m68hc11_encode_label): New function.
10176         (m68hc11_strip_name_encoding): New function.
10177         (m68hc11_page0_symbol_p): New function.
10178         (m68hc11_indirect_p): Accept global variables marked in page0.
10179         (m68hc11_encode_section_info): Lookup "page0" attribute.
10180
10181         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
10182         represents access to page0 variables.
10183
10184         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
10185         ("*logicalsi3_silshl16_zext"): Likewise.
10186         ("*ashldi3_const32"): Likewise.
10187         (peephole2 ashift): Likewise.
10188
10189 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
10190
10191         * c-tree.h (C_DECL_REGISTER): New.
10192         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
10193         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
10194         (build_array_ref, c_mark_addressable): Set and use it.
10195         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
10196         Allow structures with volatile fields to be declared register.
10197         Don't check TREE_ADDRESSABLE before warning about taking address
10198         of register.
10199         * c-decl.c (finish_decl): Don't allow structures with volatile
10200         fields to be placed in named register.
10201         * doc/trouble.texi: Remove reference to structures with volatile
10202         fields in registers.
10203
10204 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
10205
10206         * function.c (thread_prologue_and_epilogue): Move
10207         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
10208         before the epilogue.
10209
10210 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
10211
10212         * expr.c (store_constructor): Use gen_int_mode to correctly
10213         sign-extend CONST_INT value.
10214
10215 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10216
10217         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
10218         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
10219         * doc/extend.texi: Likewise.
10220
10221 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
10222
10223         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
10224           with TYPE_ORIG_SIZE_TYPE.
10225
10226 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
10227
10228         PR 14219
10229         * c-typeck.c (build_binary_op): Do not allow comparisons of
10230         vectors.
10231
10232 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
10233
10234         * config.gcc: Remove sparc-tti-*.
10235         * config/sparc/pbd.h: Delete.
10236
10237         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
10238         * config/sparc/aout.h: Likewise.
10239
10240         * config/sparc/sparc.h: Remove if 0'd code.
10241         * config/sparc/sparc.md (call): Remove if 0'd code.
10242         (call_value): Likewise.
10243         (nonlocal_goto): Likewise.
10244         (unimp_insn): Delete.
10245
10246 2004-03-25  Roger Sayle  <roger@eyesopen.com>
10247
10248         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
10249         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
10250
10251 2004-03-25  Richard Henderson  <rth@redhat.com>
10252
10253         PR 11527
10254         * c-typeck.c (pop_init_level): Emit pending init elements earlier
10255         rather than later.
10256
10257 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10258
10259         * builtins.c (fold_builtin): Fix error in last change.
10260
10261 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
10262
10263         * config/mips/mips.h: Formatting fix.
10264
10265 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10266
10267         * builtins.def: Add ctype builtins.
10268         * doc/extend.texi: Likewise.
10269
10270 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10271
10272         * builtins.c (fold_builtin): Add new builtin optimizations for
10273         sqrt and/or cbrt.
10274         * fold-const.c (fold): Likewise.
10275
10276 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
10277
10278         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
10279         (rs6000_sched_groups): New variable.
10280         (processor_target_table): Add power5.
10281         (rs6000_override_options): Set rs6000_sched_insert_nops,
10282         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
10283         from rs6000_sched_groups.
10284         (output_cbranch): Use rs6000_always_hint.
10285         (rs6000_variable_issue): Use rs6000_sched_groups.
10286         (rs6000_adjust_cost): Add CPU_POWER5.
10287         (is_microcoded_insn): Use rs6000_sched_groups.
10288         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
10289         Return 2 for POWER5 cracked instructions.
10290         (is_cracked_insn): Use rs6000_sched_groups.
10291         (is_branch_slot_insn): Use rs6000_sched_groups.
10292         (rs6000_issue_rate): Add CPU_POWER5.
10293         (rs6000_sched_finish): Use rs6000_sched_groups.
10294         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
10295         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
10296         (DEFAULT_SCHED_COSTLY_DEP): Delete.
10297         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
10298         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
10299         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
10300         * config/rs6000/power5.md: New file.
10301         * doc/invoke.texi: Add power5 option.
10302
10303 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10304
10305         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
10306         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
10307         * doc/invoke.texi: Fix a typo.
10308
10309 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10310
10311         PR optimization/9707.
10312         * stmt.c (emit_case_nodes): Emit equality comparisons instead
10313         of recursing if both children are single-valued cases with no
10314         children.
10315
10316 2004-03-25  Paul Brook  <paul@codesourcery.com>
10317
10318         * config/arm/arm.c (vfp_print_multi): Remove.
10319         (arm_output_fldmx): New function.
10320         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
10321         (arm_expand_prologue): Update to match.
10322         (arm_get_vfp_saved_size): New Function.
10323         (arm_get_frame_offsets): Use it.
10324         (arm_output_epilogue): Use new functions.
10325
10326 2004-03-24  Richard Henderson  <rth@redhat.com>
10327
10328         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
10329         (reg_known_value, reg_known_value_size): Likewise; make static.
10330         (reg_known_equiv_p): Make static.
10331         (clear_reg_alias_info): Update for new indexing.
10332         (get_reg_known_value, set_reg_known_value): New.
10333         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
10334         (canon_rtx): Use them.
10335         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
10336         Don't play queer offsetting games with reg_known_value and
10337         reg_known_equiv_p.
10338         (end_alias_analysis): Free reg_known_value with gc.
10339         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
10340         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
10341         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
10342         functions instead.
10343
10344 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
10345
10346         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
10347         config/i386/mmintrin.h: Update copyright.
10348
10349 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10350
10351         * configure.ac: Add --enable-werror-always (for top level bootstrap
10352         support).
10353         * configure: Regenerate.
10354
10355 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
10356
10357         * objc/objc-act.c (objc_comptypes): Treat comparisons
10358         between 'Class' and '<class> *' as explicitly invalid.
10359
10360 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
10361
10362         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
10363         (-fprofile-values): Add enabled with profile-{generate,use}.
10364         (-fvpt): Same.
10365         (-ftracer): Add enabled with profile-use.
10366         (-funit-at-a-time): Add enabled at -O2,-O3.
10367         (-funroll-loops): Add enabled with profile-use.
10368         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
10369         (max-gcse-passes): Mention default.
10370         (max-cse-path-length): Mention default.
10371
10372 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10373
10374         * Makefile.in (STRICT2_WARN): Reorder.
10375         * configure.ac: Check for -Wold-style-definition, and use it
10376         in strict1_warn if it's available.
10377         * configure: Regnerate.
10378
10379 2004-03-24  Paul Brook  <paul@nowt.org>
10380
10381         * config.gcc <arm>: Add --with-abi=
10382         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
10383         thumb_far_jump_used): Remove prototypes.
10384         (arm_needs_doubleword_align): Add prototype.
10385         (thumb_compute_initial_elimination_offset): Ditto.
10386         * config/arm/arm.c (arm_get_frame_offsets): New function.
10387         (use_return_insn, output_return_instruction, arm_output_epilogue,
10388         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
10389         arm_expand_prologue, thumb_expand_epilogue): Use it.
10390         (arm_abi, target_abi_name, all_arm_abis): New variables.
10391         (arm_override_options): Set them.  Set structure padding for AAPCS.
10392         (arm_return_in_memory): Update ABI check.
10393         (arm_init_cumulative_args): Initialize can_split.
10394         (arm_needs_doubleword_align): New function.
10395         (arm_function_arg): Don't split args after pushing to stack. Handle
10396         doubleword/even reg alignment.
10397         (arm_va_arg): Handle all doubleword aligned args.
10398         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
10399         on ABI, not CPU.
10400         (arm_compute_save_reg0_reg12_mask): Fix comment.
10401         (thumb_get_frame_size, thumb_get_frame_size): Remove.
10402         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
10403         value for alignment.
10404         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
10405         to match.
10406         (thumb_compute_initial_elimination_offset): New function.
10407         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
10408         unneccessary rounding.
10409         * config/arm/arm.h (target_abi_name): Declare.
10410         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
10411         arm_abi_type, ARM_DEFAULT_ABI): Define.
10412         (ARM_FLAG_ATPCS): Remove.
10413         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
10414         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
10415         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
10416         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
10417         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
10418         Contitionalize on ABI, not CPU.
10419         (struct arm_stack_offsets): Define.
10420         (struct machine_function): Add stack_offsets.  Remove frame_size.
10421         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
10422         pushed.
10423         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
10424         doubleword alignment.
10425         (THUMB_INITIAL_ELIMINATION_OFFSET,
10426         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
10427         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
10428         * config/arm/arm.md (align_8): Enable for all targets.
10429         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
10430         (ARM_DEFAULT_ABI): Define.
10431         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
10432         -mstructure-size-boundary.
10433
10434 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10435
10436         * configure.ac: Check for -Wno-variadic-macros; don't use
10437         -pedantic (in stage 1 or a simple 'make all') unless it's available,
10438         and if it's available, use it.  Also, clean up check for
10439         -Wno-long-long.
10440         * configure: Regenerate.
10441
10442 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10443
10444         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
10445         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
10446         (MULTILIB_DEFAULTS): Use it.
10447         (MIPS_CPU_STRING_DEFAULT): Remove.
10448         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
10449         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
10450         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
10451         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
10452         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
10453         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
10454         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
10455         accordingly.
10456
10457 2004-03-24  DJ Delorie  <dj@redhat.com>
10458             Richard Sandiford  <rsandifo@redhat.com>
10459
10460         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
10461         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
10462         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
10463         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
10464         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
10465         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
10466         if TARGET_FIX_VR4122.
10467         * config/mips/mips.md (define_attr length): Account for nops inserted
10468         after macc and dmult when using -mfix-vr4122-bugs.
10469         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
10470         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
10471         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
10472         * config/mips/vr4122-div.S: New file.
10473         * doc/invoke.texi: Document -mfix-vr4122-bugs.
10474
10475 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10476
10477         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
10478         (TARGET_MIPS4130): New macro.
10479         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
10480         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
10481         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
10482         with PROCESSOR_R4130.
10483         * config/mips/mips.md (define_attr cpu): Add r4130.
10484         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
10485
10486 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10487             Richard Sandiford  <rsandifo@redhat.com>
10488
10489         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
10490
10491 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
10492
10493         PR preprocessor/14438
10494         * cpplib.c (do_pragma): Remove line_change call after pragma
10495         handler.
10496
10497 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
10498
10499         * doc/extend.texi (ARM Built-in Functions): Replace with correct
10500         declarations.
10501
10502 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10503
10504         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
10505         if flag_unsafe_math_optimizations.
10506         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
10507         and TARGET_80387 expand using truncdfsf2_noop pattern.
10508         (truncxfsf2): Likewise using truncxfsf2_noop.
10509         (truncxfdf2): Likewise using truncxfdf2_noop.
10510         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
10511
10512 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
10513
10514         * hooks.c (hook_constcharptr_tree_null): New hook.
10515         * hooks.h (hook_constcharptr_tree_null): New prototype.
10516         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
10517         * target.h (mangle_fundamental_type): New target hook.
10518         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
10519         target hook at rs6000_mangle_fundamental_type.
10520         (rs6000_mangle_fundamental_type): New function.
10521         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
10522
10523 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
10524
10525         PR 12267, 12391, 12560, 13129, 14114, 14133
10526         * c-tree.h: Forward declare struct c_binding.  Declare
10527         c_override_bindings_to_false.  Update prototypes.
10528         (struct lang_identifier): Update comments.  Change fields to be
10529         struct c_binding *.
10530         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
10531         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
10532         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
10533         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
10534         * c-common.h: Update prototypes.
10535         * c-decl.c (struct c_scope): Update commentary.  Remove names,
10536         names_last, parms, parms_last, tags, and shadowed fields.  Add
10537         bindings and depth fields.
10538         (scope_freelist): Move to more appropriate location.
10539         (c_print_identifier): Update for changes to struct lang_identifier.
10540         (objc_mark_locals_volatile): Update for new bindings structures.
10541         (global_bindings_p): Honor c_override_global_bindings_to_false.
10542         (pushlevel): Rename to push_scope; take no arguments; use the
10543         scope_freelist; initialize scope->depth and check for overflow.
10544         (poplevel): Rename to pop_scope; totally rewritten for new bindings
10545         structures.
10546         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
10547         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
10548         Improve some commentary.  Adjust handling of forward parm decls.
10549         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
10550         Preserve C_DECL_IN_EXTERNAL_SCOPE.
10551         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
10552         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
10553         decls.  Rewrite for new bindings structures.  Improve commentary.
10554         Eliminate the copy_node call.
10555         (implicit_decl_warning): Use the "diag" idiom (as seen in
10556         locate_old_decl) to reduce code duplication; call locate_old_decl
10557         if appropriate.  Relocate to remove need for forward declaration.
10558         (implicitly_declare): Adjust for new bindings structures.  Kludge
10559         around Objective-C not-really-builtin functions.
10560         (undeclared_variable): Improve diagnostics.  If current_function_decl
10561         is nonnull but current_function_scope is null, use current_scope.
10562         Use bind.
10563         (lookup_tag): Adjust for new bindings structures.  Kludge around
10564         Objective-C's tag declarations that wind up in the external scope.
10565         (lookup_name): Adjust for new bindings structures.  Kludge around
10566         c-common.c's pseudo-typedefs that wind up in the external scope.
10567         (lookup_name_current_level): Rename lookup_name_in_scope; take a
10568         second argument indicating the scope to examine; rewrite for
10569         new bindings structures.
10570         (c_init_decl_processing): Adjust for renamed functions.  Do not
10571         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
10572         First scope pushed is the external scope, not the global scope.
10573         (builtin_function): Use bind, not pushdecl.  Adjust other bits
10574         for new data structures.  Keep track of builtins that should be
10575         made visible automatically.
10576         (start_decl): Adjust diagnostics.  Remove unnecessary call to
10577         expand_decl.
10578         (grokparms): Return 0 if arg_types is error_mark_node.
10579         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
10580         reversed sense.  Rewrite for new bindings structures.  Do not
10581         leave any decls in the scope, to prevent pop_scope from doing
10582         contradictory things with them.
10583         (finish_struct, finish_enum): Remove redundant diagnostics.
10584         (build_enumerator): Don't cascade diagnostics for error_mark_node.
10585         Mark location where -pedantic changes the meaning of the program.
10586         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
10587         parameter decls into the function's scope structure using bind.
10588         Warn here about function definitions in the wrong style.
10589         Adjust diagnostics.
10590         (store_parm_decls): Correct the determination of whether a
10591         function was defined with a prototype.
10592         (c_write_global_declarations): Operate on all file decls and on
10593         the external scope.  Split body of the loop to...
10594         (c_write_global_declarations_1): ... this new function, to avoid
10595         code duplication.
10596         (truly_local_externals, first_builtin_decl, last_builtin_decl)
10597         (make_scope, pop_scope, in_parm_level_p, set_block)
10598         (any_external_decl, record_external_decl, bind_label, getdecls)
10599         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
10600         (c_reset_state): Delete.
10601         (visible_builtins, c_override_global_bindings_to_false)
10602         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
10603         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
10604         (external_scope, binding_freelist, bind, free_binding_and_advance)
10605         (push_file_scope, pop_file_scope): New.
10606         (pushtag, pushdecl_top_level, lookup_label, declare_label)
10607         (define_label, c_make_fname_decl, finish_decl)
10608         (mark_forward_parm_decls, build_compound_literal)
10609         (grokdeclarator, start_function, check_for_loop_decls)
10610         (identifier_global_value, record_builtin_type): Minor adjustments
10611         for new bindings structures.  Improve diagnostics and commentary.
10612         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
10613         pushlevel/poplevel respectively.
10614         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
10615         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
10616         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
10617         correct loop over multiple translation units; call fatal_error if
10618         requested to compile more than one file at once.  (This disables
10619         IMA temporarily - an up-front error being preferable to a crash.)
10620         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
10621         (all actions): Adjust calls to pushlevel/poplevel.
10622         (parsing_iso_function_signature): Delete.
10623         (extdef_1): Fold into extdef.
10624         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
10625         warn here about function definitions in the wrong style.
10626         (after_tyle_declarator, parm_declarator_starttypename)
10627         (parm_declarator_nostarttypename, notype_declarator): Remove
10628         commented-out productions.
10629         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
10630         an empty TREE_LIST node.  Adjust calls to get_parm_info.
10631         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
10632         to suppress -Wold-style-definition after this error.
10633         (c_parse_file): Don't clear the binding stack or call
10634         finish_fname_decls here.  Correct comment.
10635         * c-typeck.c (same_translation_unit_p): Export.
10636         (common_type): Use c_override_global_bindings_to_false, not
10637         pushlevel/poplevel/declare_parm_level.
10638         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
10639         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
10640         and LANG_HOOKS_GETDECLS with do-nothing stubs.
10641         * objc/objc-lang.c: Likewise.
10642         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
10643         get_parm_info.
10644         (OBJC_VOID_AT_END): Delete; replace all uses
10645         with void_list_node.
10646         (generate_forward_declaration_to_string_table): Delete.
10647         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
10648
10649         * coverage.c (create_coverage): Don't pushdecl anything.
10650         * langhooks.c (lhd_clear_binding_stack): Call
10651         lang_hooks.decls.poplevel, not poplevel.
10652         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
10653         circular list rather than going into an infinite loop.
10654
10655 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
10656
10657         * optabs.c (expand_binop): When synthesizing double word rotates
10658         from single word shifts, use a new register target if the provided
10659         target is not a REG already.
10660
10661 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10662
10663         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
10664         * c-common.c (handle_mode_attribute): Add extra arg to
10665         build_pointer_type_for_mode and build_reference_type_for_mode.
10666         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
10667         for INTEGER_CST.
10668         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
10669         Chain pointers via TYPE_NEXT_PTR_TO.
10670         (build_reference_type_for_mode): Similarly.
10671         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
10672         and build_reference_type_for_mode.
10673         (tree_check4_failed): New function.
10674         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
10675         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
10676         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
10677         Add check.
10678
10679 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10680
10681         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
10682         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
10683         when both A and B are nonnegative.
10684         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
10685         nonzero.
10686
10687 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10688
10689         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
10690         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
10691
10692 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10693
10694         PR optimization/14669
10695         * fold-const.c (fold): Only unwiden integer comparisons for equality
10696         and inequality operators, or when the signedness doesn't change.
10697
10698 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
10699
10700         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10701         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
10702         * config/sparc/t-linux: New file.
10703
10704 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
10705
10706         * gcse.c (can_assign_to_reg_p): New function, split out from...
10707         (want_to_gcse_p): ...here.
10708         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
10709         the rhs of a store.
10710
10711 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
10712
10713         * c-typeck.c (same_translation_unit_p): Fix pasto.
10714
10715 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
10716
10717         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
10718         (PARAM_MAX_SCHED_REGION_INSNS): New.
10719         * sched-rgn.c: Include params.h
10720         (MAX_RGN_BLOCKS): Delete.
10721         (MAX_RGN_INSNS): Delete.
10722         (too_large): Return bool.  Convert to PARAM_VALUE.
10723         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
10724         * doc/invoke.texi (param): Document max-sched-region-blocks and
10725         max-sched-region-insns.
10726
10727 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10728
10729         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
10730         for base types.
10731
10732 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10733
10734         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
10735         change.
10736
10737 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
10738
10739         PR c/14069
10740         * c-decl.c (finish_struct): Change type of incorrect flexible array
10741         field into error_mark_node.
10742
10743 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
10744
10745         PR target/14580
10746         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
10747         who are not local for Darwin PIC.
10748
10749 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
10750
10751         * regrename.c (regrename_optimize): Set regs_ever_live for all
10752         registers introduced as replacement.
10753
10754 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10755
10756         PR middle-end/14470
10757         * expr.c (mark_queue): New function.
10758         (emit_insns_enqueued_after_mark): New function replacing
10759         emit_queue.  Clear the body of emitted queued insns.
10760         (emit_queue): Call emit_insns_enqueued_after_mark.
10761         (store_expr): Mark the increment queue on entry.  Emit
10762         only the incrementations queued when expanding the source.
10763
10764 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
10765
10766         * configure.ac: Allow --disable-coverage-flags (for the future benefit
10767         of top level bootstrap, and consistency).  Reindent.
10768         * configure: Regenerate.
10769
10770 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10771
10772         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
10773         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
10774         unnecessary casts.
10775
10776 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
10777
10778         PR target/14291
10779         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
10780         __MINGW32__.
10781
10782 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10783
10784         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
10785         to nonimmediate_operand.
10786         ("*doloop_di"): Likewise.
10787
10788 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
10789
10790         * real.h (struct real_value): Use the same type for all
10791         bitfields.  Rename exp to uexp.
10792         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
10793         Adjust all uses of exp...
10794         * builtins.c: ... here, ...
10795         * emit-rtl.c: ... here, and ...
10796         * real.c: ... and here.
10797
10798 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10799
10800         * pretty-print.c (pp_base_maybe_space): New function.
10801         * pretty-print.h (pp_base_maybe_space): Declare.
10802         (pp_maybe_space): New macro.
10803
10804 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10805
10806         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
10807
10808 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10809
10810         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
10811         of using register multiplication cost.
10812         (expand_mult): Adapt choose_mult_variant call.
10813         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
10814         of MODE; pass appropriate cost bound.  Adjust result when
10815         performing signed multiplication by a negative constant.
10816         Don't use intermediate modes larger than word_mode.
10817
10818 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10819
10820         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
10821         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
10822         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
10823         * explow.c (expr_size): Likewise.
10824         * expr.h (placeholder_list, find_placeholder): Deleted.
10825         * expr.c (store_constructor): Likewise.
10826         (get_inner_reference): Likewise.  Also don't call find_placeholder.
10827         (placeholder_list, find_placeholder): Deleted.
10828         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
10829         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
10830         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
10831         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
10832         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
10833         Likewise.
10834         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
10835         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
10836         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
10837         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
10838         Clean up by using first_rtl_op.
10839         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
10840         (substitute_placeholder_in_expr): New function.
10841         * tree.def (WITH_RECORD_EXPR): Deleted.
10842         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
10843         (substitute_placeholder_in_expr): New.
10844
10845 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
10846
10847         * dojump.c (prefer_and_bit_test): Fix which part of
10848         the and_test is replaced.
10849
10850 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10851
10852         * frontends.texi: Add missing line.
10853
10854 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
10855             Chris Devers  <cdevers@pobox.com>
10856             Joseph S. Myers  <jsm@polyomino.org.uk>
10857
10858         * doc/frontends.texi: Rewrite.
10859         * doc/gcc.texi: Update last modification date.
10860
10861 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
10862
10863         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
10864         message before redirecting the edge.
10865
10866 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10867
10868         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
10869         flag.
10870         * explow.c (force_not_mem): Set REG_POINTER flag according to
10871         MEM_POINTER one.
10872         * rtl.h (MEM_POINTER): New macro.
10873         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
10874         for MEM_POINTER.
10875
10876 2004-03-20  Roger Sayle  <roger@eyesopen.com>
10877
10878         PR target/13889
10879         * cse.c (fold_rtx): Avoid substituting constants into unary
10880         conversion operations.
10881
10882 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10883
10884         * fold-const.c (fold): Replace "expr" with "t".
10885
10886 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
10887
10888         PR c/12373
10889         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
10890         DECL_ORIGINAL_TYPE if there isn't one.
10891
10892 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10893
10894         * fold-const.c (fold): Replace "final_type" with "type".
10895         Remove variable "final_type".
10896
10897 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10898
10899         * fold-const.c (fold): Constify "type".
10900         Replace "TREE_TYPE (t)" with "type".
10901
10902 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10903
10904         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
10905         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
10906         via (*targetm.foo) () with targetm.foo ().
10907
10908 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10909
10910         PR other/14630
10911         * doc/install.texi: Add info directory category and entry.
10912
10913 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10914
10915         * fold-const.c (fold): Replace "t" with "tem" where it is used
10916         as a temporary variable.  Remove "orig_t" and all of its uses.
10917
10918 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10919
10920         * fold-const.c (fold): Remove variable "invert".
10921         Move the handling of relational expressions that can be folded
10922         to a constant ...
10923         (fold_relational_const): ... here.
10924         (tree_expr_nonzero_p): New.
10925
10926 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10927
10928         PR c/14635
10929         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
10930         DEF_GCC_BUILTIN.
10931
10932 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
10933
10934         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
10935         (GTFILES): Add $(srcdir)/dojump.h.
10936         (gt-dojump.h): New dependency.
10937         * dojump.c (and_reg, and_test, shift_test): New static variables.
10938         (prefer_and_bit_test): New function.
10939         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
10940
10941 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10942
10943         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
10944         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
10945         reorg.c, tree.h: Fix comment typos.
10946
10947 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10948
10949         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
10950         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
10951         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
10952         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
10953         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
10954         vmsdbgout.c: Replace calls via (*targetm.foo) () with
10955         targetm.foo ().
10956
10957 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
10958
10959         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
10960         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
10961         always_inline attribute.
10962         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
10963         Treat expansion as completed even if literal argument is
10964         invalid (so that other expansions are not tried in vain).
10965
10966 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10967
10968         * loop-doloop.c (add_test): Replace GEN_INT (0) with
10969         const0_rtx.
10970
10971 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10972
10973         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
10974         ...
10975         (fold_abs_const): ... here.
10976
10977 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10978
10979         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
10980
10981 2004-03-19  Denis Chertykov  <denisc@overta.ru>
10982
10983         PR target/11520
10984         * config/avr/avr.md ("call_insn"): Handle explicit integer
10985         specially.
10986         (call_value_insn): Likewise.
10987
10988 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10989
10990         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
10991
10992 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10993
10994         * fold-const.c (negate_expr): Move the handling of constants
10995         ...
10996         (fold_negate_const): ... here.
10997
10998 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10999
11000         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
11001         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
11002         * tree.c (debug_no_type_hash): Deleted.
11003         (type_hash_canon): Abort if passed a variant.
11004         Check lang_hooks.types.hash_types.
11005         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
11006         (build_array_type): Remove unnecessary allocation of pointer type.
11007         (build_complex_type): Properly qualify resulting type.
11008
11009 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
11010
11011         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
11012
11013 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
11014
11015         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
11016         (expand_mult): ...here.
11017         (extract_high_half): New, split out from expand_mult_highpart.
11018         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
11019         (expand_highpart): Evaluate the cost of a shift/add sequence,
11020         then see if any of the specialized optabs are cheaper.
11021
11022 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
11023
11024         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
11025
11026 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11027
11028         * convert.c (convert_to_real): Add more math builtins.
11029
11030 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11031
11032         * convert.c (convert_to_real): Reformat using switch stmt.
11033
11034 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
11035
11036         * c-common.c (pointer_int_sum): Do not complain about using
11037         pointers to pointers-to-members.
11038
11039 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
11040
11041         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
11042         have moved to the target hooks structure".
11043
11044 2004-03-18  James E Wilson  <wilson@specifixinc.com>
11045
11046         * config/mips/mips.md (type): Split move into arith and fmove.  Split
11047         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
11048         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
11049         Likewise.
11050         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
11051         Likewise.
11052         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
11053         rm7_fp_quick): Likewise.
11054         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
11055         rm9k_fquick): Likewise.
11056         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
11057         Likewise.
11058         (ir_sr70_icmp): Delete.
11059
11060 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11061
11062         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
11063         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
11064         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
11065         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
11066         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
11067         Protect with proper check.
11068         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
11069         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
11070         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
11071         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
11072         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
11073         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
11074         not TYPE_FIELDS.
11075         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
11076
11077 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
11078
11079         * gcse.c (eliminate_partially_redundant_loads): Reject change if
11080         dest is set between beginning and current insn.
11081
11082 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
11083
11084         * c-decl.c (grokdeclarator): Do not complain about redeclaring
11085         visible "static" identifiers "extern" in a local scope.
11086         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
11087         post-increments/decrements.
11088
11089 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
11090
11091         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
11092         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
11093         (xtensa_va_start): Remove assignment to current_function_arg_words.
11094
11095 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
11096
11097         * alias.c (record_set): Detect the case where a register is assigned
11098         a new value that has the same base term as the old one.
11099
11100 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11101
11102         * doloop.c: Removed.
11103         * loop-doloop.c: New file.
11104         * Makefile.in (doloop.o): Remove.
11105         (loop-doloop.o): New.
11106         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
11107         * cfgloopanal.c (get_loop_level): New function.
11108         * loop-iv.c (iv_number_of_iterations): Handle case when loop
11109         is leaved immediatelly.
11110         * loop.c (strength_reduce): Do not call doloop optimization.
11111         * loop.h (LOOP_BCT): Removed.
11112         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
11113         (rest_of_handle_loop2): Call doloop_optimize_loops.
11114         (rest_of_compilation): Test for optimizations moved to
11115         rest_of_handle_loop2.
11116
11117 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
11118
11119         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
11120         for mixed mode.
11121         (rs6000_emit_prologue): Ditto.
11122         (rs6000_emit_epilogue): Ditto.
11123         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
11124         macro for mixed mode.
11125
11126 2004-03-18  Jan Hubicka  <jh@suse.cz>
11127
11128         * predict.c (propagate_freq): Compute correctly frequency of
11129         EXIT_BLOCK.
11130
11131 2004-03-17  Eric Christopher  <echristo@redhat.com>
11132
11133         * builtins.c (apply_args_size): Use reg_raw_mode.
11134         (apply_result_size): Ditto.
11135
11136 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11137
11138         PR target/14620
11139         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
11140
11141 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
11142
11143         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
11144         32-bit builds when defaulting to 32-bit.
11145
11146 2004-03-17  Jan Hubicka  <jh@suse.cz>
11147
11148         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
11149         array.
11150
11151 2004-03-17  James E Wilson  <wilson@specifixinc.com>
11152
11153         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
11154         (hazard_nop): Change type to nop.
11155         (type): Split arith into arith, shift, slt, clz.  Delete darith.
11156         Fix all uses.  Change arith to multi if more than one insn emitted.
11157         * config/mips/5400.md (ir_vr54_arith): Likewise.
11158         * config/mips/5500.md (ir_vr55_arith): Likewise.
11159         * config/mips/7000.md (rm7_int_other): Likewise.
11160         * config/mips/9000.md (rm9k_int): Likewise.
11161         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
11162
11163 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
11164
11165         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
11166         to hold the subtype tree instead of recomputing it several times.
11167
11168 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
11169
11170         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
11171         CC_INVERT.
11172         * config/mn10300/mn10300.md (cc): Remove "invert".
11173
11174 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11175
11176         * builtins.c (integer_valued_real_p): Add builtin rint.
11177         (fold_builtin): Likewise.
11178         * convert.c (convert_to_real): Likewise.
11179
11180         * convert.c (convert_to_real): Fix typos in `long double'
11181         builtins.
11182
11183 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
11184
11185         PR c++/14481
11186         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
11187         generated COMPOUND_EXPRs.
11188
11189 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11190
11191         * config/h8300/t-rtems (h8300-*-rtems*): New.
11192
11193 2004-03-16  Eric Christopher  <echristo@redhat.com>
11194
11195         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
11196
11197 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
11198
11199         * config/i386/i386-protos.h: Add a prototype for
11200         ix86_reverse_condition.
11201         * config/i386/i386.c (ix86_reverse_condition): New.
11202         * config/i386/i386.h (REVERSE_CONDITION): Use
11203         ix86_reverse_condition.
11204         * config/i386/i386.md: Use ix86_reverse_condition instead of
11205         REVERSE_CONDITION.
11206
11207 2004-03-16  J. Brobecker  <brobecker@gnat.com>
11208
11209         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
11210
11211 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11212
11213         PR bootstrap/12974
11214         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
11215
11216 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
11217
11218         * c-common.c (c_common_type_for_mode): Build vector types on
11219         demand.
11220         (handle_mode_attribute): Deprecate using the mode attribute
11221         to create vector types.  Fix indentation.
11222         (vector_type_node_list): Remove.
11223         (handle_vector_size_attribute): Create vector types on demand.
11224         Strip a NON_LVALUE_EXPR from the attribute if there is one.
11225         * c-typeck.c (comptypes): Make vector types compatible if they
11226         have the same underlying mode.
11227         (convert_for_assignment): Use comptypes to convert between
11228         vector types.
11229         * tree.c (build_common_tree_nodes_2): Do not create vector types.
11230         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
11231         vector types.
11232         * tree.h: Remove vector types.
11233         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
11234         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
11235         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
11236         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
11237         * doc/extend.texi (Vector Types): Document how to use the
11238         vector_size attribute to create vectors, rather than mode.
11239
11240         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
11241         * config/i386/emmintrin.h: Likewise.
11242         * config/i386/mmintrin.h: Likewise.
11243         * config/i386/xmmintrin.h: Likewise.
11244         * config/sh/ushmedia.h: Likewise.
11245
11246 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
11247
11248         * config/freebsd-spec.h, config/arc/arc-protos.h,
11249         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
11250         config/arm/linux-gas.h, config/arm/semi.h,
11251         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
11252         config/ia64/freebsd.h, config/mips/7000.md,
11253         config/mips/9000.md, config/ns32k/ns32k-protos.h,
11254         config/sparc/pbd.h: Update copyright.
11255
11256 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11257
11258         PR target/14577
11259         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
11260
11261 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
11262
11263         * combine.c (combine_simplify_rtx): Remove the "last"
11264         parameter and its documentation.  Adjust recursive calls.
11265         (simplify_logical): Always perform the only simplification
11266         controlled by "last", if the simplified expression is
11267         actually different.
11268         (try_combine): Do not pass the "last" parameter to
11269         combine_simplify_rtx.
11270
11271 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
11272
11273         PR target/14599
11274         * config/mips/mips.md (UNSPEC_GP): New constant.
11275         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
11276         an UNSPEC instead of (reg $gp).
11277         (mips16_gp_pseudo_reg): Change accordingly.
11278         (print_operand): Print $gp directly when handling CONST_GP_P.
11279
11280 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11281
11282         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
11283         * longlong.h: Make code 68060 clean when compiling for m68060.
11284
11285 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11286
11287         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
11288         * doc/md.texi: Clarify description of "i" constraint.
11289
11290 2004-03-15  James E Wilson  <wilson@specifixinc.com>
11291
11292         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
11293         Split store into store, fpstore, fpidxstore.  Fix all uses.
11294         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
11295         Likewise.
11296         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
11297         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
11298         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
11299         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
11300         ir_sr70_fstore): Likewise.
11301
11302 2004-03-15  Richard Henderson  <rth@redhat.com>
11303
11304         PR middle-end/14535
11305         * except.c (collect_one_action_chain): Record action for cleanup
11306         outer of exception spec.
11307
11308 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
11309
11310         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11311         Fix the check for abort and only do the mmap if we can.
11312
11313 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
11314
11315         * config/sparc/sparc.h: Rework comments about the code model
11316         in 64-bit environment and the mode 'Pmode'.
11317         * doc/invoke.texi (SPARC options): Rework description of the
11318         different code models supported in 64-bit environment.
11319
11320 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11321
11322         * defaults.h (REVERSIBLE_CC_MODE): Define.
11323         * jump.c (reversed_comparison_code_parts): Don't check if
11324         REVERSIBLE_CC_MODE is defined.
11325
11326 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11327
11328         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
11329         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
11330         hosthooks.h, params.h, ra-colorize.c, web.c,
11331         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
11332         config/avr/avr-protos.h, config/avr/avr.md,
11333         config/fr30/fr30-protos.h, config/fr30/fr30.md,
11334         config/h8300/fixunssfsi.c, config/i386/darwin.h,
11335         config/i386/freebsd.h, config/i386/freebsd64.h,
11336         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
11337         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
11338         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
11339         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
11340         config/pa/pa64-regs.h, config/rs6000/aix41.h,
11341         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
11342         config/sparc/aout.h, config/sparc/freebsd.h,
11343         config/sparc/litecoff.h, config/vax/vax-protos.h,
11344         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
11345         copyright.
11346
11347 2004-03-15  Paul Brook  <paul@codesourcery.com>
11348
11349         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
11350
11351 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11352
11353         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
11354         (pp_c_cv_qualifier): Document.
11355         (pp_c_space_for_pointer_operator): Likewise.
11356         (pp_c_integer_constant): Likewise.
11357         (pp_c_identifier): Likewise.
11358         (pp_c_init_declarator): Don't print function body.
11359
11360 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11361
11362         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
11363         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
11364         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
11365         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
11366         wording and grammar.
11367
11368 2004-03-14  Roger Sayle  <roger@eyesopen.com>
11369
11370         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
11371         with lang_hooks.foo ().
11372         * builtins.c (expand_builtin_va_arg): Likewise.
11373         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
11374         c_common_type_for_mode, c_common_nodes_and_builtins,
11375         handle_mode_attribute, handle_vector_size_attribute): Likewise.
11376         * c-convert.c (convert): Likewise.
11377         * c-format.c (check_format_types): Likewise.
11378         * c-objc-common.c (c_tree_printer): Likewise.
11379         * c-typeck.c (build_unary_op, build_conditional_expr,
11380         build_binary_op): Likewise.
11381         * calls.c (try_to_integrate, expand_call,
11382         emit_library_call_value_1): Likewise.
11383         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
11384         Likewise.
11385         * cgraphunit.c (record_call_1, cgraph_analyze_function,
11386         cgraph_expand_function): Likewise.
11387         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
11388         * coverage.c (build_fn_info_type, build_ctr_info_type,
11389         build_gcov_info, create_coverage): Likewise.
11390         * dbxout.c (dbxout_init): Likewise.
11391         * diagnostic.c (diagnostic_report_current_function): Likewise.
11392         * dojump.c (do_jump): Likewise.
11393         * dwarf2out.c (dwarf2_name): Likewise.
11394         * except.c (init_eh): Likewise.
11395         * explow.c (expr_size, int_expr_size): Likewise.
11396         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
11397         Likewise.
11398         * expr.c (store_expr, store_constructor, safe_from_p,
11399         expand_expr_real, do_store_flag, try_casesi): Likewise.
11400         * function.c (push_function_context_to, pop_function_context_from,
11401         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
11402         put_var_into_stack, allocate_struct_function, current_function_name):
11403         Likewise.
11404         * integrate.c (copy_decl_for_inlining, expand_inline_function):
11405         Likewise.
11406         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
11407         lhd_print_error_function): Likewise.
11408         * opts.c (handle_option, decode_options): Likewise.
11409         * passes.c (open_dump_file): Likewise.
11410         * print-tree.c (print_node): Likewise.
11411         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
11412         expand_decl_cleanup, emit_case_nodes): Likewise.
11413         * stor-layout.c (variable_size): Likewise.
11414         * toplev.c (announce_function, wrapup_global_declarations,
11415         check_global_declarations, compile_file, default_tree_printer,
11416         process_options, lang_dependent_init, finalize): Likewise.
11417         * tree-dump.c (dequeue_and_dump): Likewise.
11418         * tree-inline.c (remap_decl, remap_block, copy_body_r,
11419         initialize_inlined_parameters, declare_return_variable,
11420         inlinable_function_p, expand_call_inline, optimize_inline_calls,
11421         walk_tree, copy_tree_r): Likewise.
11422         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11423         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
11424         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
11425         variably_modified_type_p, dump_tree_statistics): Likewise.
11426         * varasm.c (assemble_variable, compare_constant, copy_constant,
11427         force_const_mem, compute_reloc_for_constant, output_constant,
11428         output_addressed_constants, initializer_constant_valid_p): Likewise.
11429
11430 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
11431
11432         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
11433
11434 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
11435
11436         * doc/install.texi: Reflect autoconf and automake version for
11437         libffi. Update autoconf version to 2.59.
11438
11439 2004-03-13  Roger Sayle  <roger@eyesopen.com>
11440
11441         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
11442         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
11443         make_range, build_range_check, fold_range_test, unextend,
11444         constant_boolean_node, fold_binary_op_with_conditional_arg,
11445         fold_truthop, fold_mathfn_compare, fold_inf_compare,
11446         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
11447         with lang_hooks.foo ().
11448
11449 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
11450
11451         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
11452
11453 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
11454
11455         * doc/install.texi: Note status of -fnew-ra.
11456
11457 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11458
11459         PR middle-end/14470
11460         * expr.c (store_expr): Call emit_queue before generating the move
11461         from the temporary to the original target.  Protect the temporary
11462         from emit_queue.
11463
11464 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
11465
11466         PR target/14533
11467         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
11468         other than UNSPEC_GOTOFF.
11469
11470 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
11471
11472         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
11473         to arm_legitimate_index_p.  Update all callers with SET as default
11474         value.
11475         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
11476         range if OUTER is a sign-extend operation on QImode.  Correctly
11477         reject shift operations on sign-extended QImode addresses.
11478         (bad_signed_byte_operand): Delete.
11479         (arm_extendqisi_mem_op): New function.
11480         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
11481         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
11482         constraints.
11483         (CONSTRAINT_LEN): New.
11484         (EXTRA_CONSTRAINT): Delete.  Replace with...
11485         (EXTRA_CONSTRAINT_STR): ... this.
11486         (PREDICATE_CODES): Remove bad_signed_byte_operand.
11487         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
11488         is now always default.
11489         (define_splits for bad sign-extend loads): Delete.
11490         (arm_extendqisi, arm_extendqisi_v5): Likewise.
11491         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
11492         Rework 'U' constraint to 'Uv'.
11493         * arm-protos.h: Remove bad_signed_byte_operand.  Add
11494         arm_extendqisi_mem_op.
11495         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
11496         Add Uq constraint.
11497
11498 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
11499
11500         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
11501         with targetm version.
11502
11503         PR target/14567
11504         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
11505         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
11506         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
11507         Update all users of RS6000_ARG_SIZE.
11508         (function_arg_advance): Count fregno using mode size.
11509         (function_arg): Handle long double split over regs and memory.
11510         (function_arg_partial_nregs): Likewise.
11511         (rs6000_va_arg): Repackage complex args.
11512
11513 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
11514
11515         PR target/14047
11516         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
11517         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
11518         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
11519
11520 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
11521
11522         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
11523         prototype.
11524         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
11525         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
11526
11527 2004-03-12  Andrew Pinski  <apinski@apple.com>
11528
11529         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11530         Use ret instead of result. Use addr instead of base.
11531
11532 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
11533
11534         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
11535         fixes required by libstdc++ and update installation instructions
11536         for libstdc++.a.
11537
11538 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
11539
11540         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
11541         leading '@' on fastcall symbols before stripping suffix.
11542
11543 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11544
11545         * combine.c (unmentioned_reg_p): New function to check whether an
11546         expression is a "specialization" of another, i.e. that there are
11547         no registers or memory references mentioned in the first that don't
11548         appear in the second.
11549         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
11550         (combine_instructions): Also try combining instructions using the
11551         REG_EQUAL note from a preceding log-linked instruction.
11552
11553 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11554
11555         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
11556
11557 2004-03-12  Matt Austern  <austern@apple.com>
11558
11559         * target.h (struct gcc_target): New target hook, unwind_label.
11560         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
11561         * output.h (default_emit_unwind_label): New function.
11562         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
11563         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
11564         (TARGET_SUPPORTS_HIDDEN): New target macro.
11565         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
11566         that corresponds to this FDE.
11567         (FRAME_BEGIN_LABEL): Allow target to override default label.
11568         (output_call_frame_info): If FDEs are linknonce, then use extra
11569         indirection for FDE encoding, output a label for each FDE, and
11570         output an empty label for each function without an FDE.
11571         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
11572         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
11573         decls with DECL_ONE_ONLY set, if that macro is defined.
11574         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
11575         for a SUPPORTS_ONE_ONLY target.
11576         * config/darwin-protos.h (darwin_unique_section): Declare.
11577         (darwin_asm_named_section): Likewise.
11578         (darwin_section_type_flags): Likewise.
11579         (darwin_non_lazy_pcrel): Likewise.
11580         (darwin_emit_unwind_label): Likewise.
11581         (darwin_make_decl_one_only): Likewise.
11582         * config/darwin.c (machopic_finish): Get rid of tweak that
11583         eliminate stubs for symbols that are defined.
11584         (darwin_encode_section_info): Don't treat weak functions as defined.
11585         (darwin_make_decl_one_only): Define.
11586         (darwin_asm_named_section): Likewise.
11587         (darwin_section_type_flags): Likewise.
11588         (darwin_unique_section): Likewise.
11589         (darwin_emit_unwind_label): Likewise.
11590         (darwin_non_lazy_pcrel): Likewise.
11591         (darwin_asm_output_dwarf_delta): Difference between two labels is
11592         local only if both labels are local.
11593         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
11594         (ASM_MAKE_LABEL_LINKONCE): Likewise.
11595         (TARGET_SUPPORTS_HIDDEN): Likewise.
11596         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
11597         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
11598         (FRAME_BEGIN_LABEL): Likewise.
11599         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
11600         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11601         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
11602         (TARGET_ASM_UNIQUE_SECTION): Define.
11603         (EH_FRAME_SECTION_NAME): Define.
11604         (EH_FRAME_SECTION_ATTR): Likewise.
11605         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
11606         (TARGET_ASM_NAMED_SECTION): Likewise.
11607         (TARGET_SECTION_TYPE_FLAGS): Likewise.
11608         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
11609         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
11610         TARGET_ASM_EMIT_UNWIND_LABEL.
11611
11612 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11613
11614         * builtins.c (expand_builtin_mathfn): Add pow10* to the
11615         existing exp10* case.
11616         (expand_builtin): Likewise.
11617
11618 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11619
11620         * doc/tm.texi (registers) <Values in Registers>: Add
11621         entry for REGMODE_NATURAL_SIZE.
11622
11623 2004-03-12  Richard Henderson  <rth@redhat.com>
11624
11625         PR target/14547
11626         * target.h (struct gcc_target): Move calls substructure before
11627         booleans.  Add split_complex_arg.
11628         * function.c (assign_parms, split_complex_args): Use it.
11629         * calls.c (expand_call): Likewise.
11630         (split_complex_values): Likewise.  Check for splittable types
11631         before allocating memory.
11632         (split_complex_types): Likewise.
11633         * system.h (SPLIT_COMPLEX_ARGS): Poison.
11634         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
11635         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
11636         * config/alpha/alpha.c (alpha_split_complex_arg): New.
11637         (TARGET_SPLIT_COMPLEX_ARG): New.
11638         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
11639         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
11640         (rs6000_override_options): Zap it for non-AIX.
11641         (rs6000_function_value): Use targetm.calls.split_complex_arg.
11642         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
11643         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
11644         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
11645         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
11646         SPLIT_COMPLEX_ARGS entry.
11647
11648 2004-03-11  Richard Henderson  <rth@redhat.com>
11649
11650         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
11651         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
11652         (alpha_emit_xfloating_arith): Update to match.
11653         (alpha_emit_xfloating_compare): Likewise.
11654         (alpha_emit_xfloating_cvt): Likewise.
11655         (alpha_emit_xfloating_libcall): Take already built symbol,
11656         mark call const.
11657         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
11658         op1 in a register.
11659
11660 2004-03-11  Richard Henderson  <rth@redhat.com>
11661
11662         PR target/14539
11663         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
11664
11665         * simplify-rtx.c (simplify_relational_operation): Fix typo.
11666
11667 2004-03-11  Richard Henderson  <rth@redhat.com>
11668
11669         PR middle-end/14477
11670         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
11671
11672 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11673
11674         PR target/14262
11675         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
11676         defined, pass small BLKmode values in registers in the low-order part.
11677
11678 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11679
11680         * combine.c (if_then_else_cond): Check for NULL return value of
11681         simplify_gen_subreg.
11682
11683 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11684
11685         PR target/14496
11686         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
11687         TARGET_SINGLE_FLOAT.
11688
11689 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
11690
11691         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
11692         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
11693         * config/ia64/ia64.c (ia64_init_libfuncs): New.
11694         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
11695
11696 2004-03-11  Roger Sayle  <roger@eyesopen.com>
11697
11698         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
11699         -((int)X>>C) where C is an integer constant one bit less than the
11700         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
11701         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
11702
11703         * simplify-rtx.c (simplify_unary_operation): Also implement the
11704         above transformations at the RTL level.
11705
11706 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
11707
11708         * real.c (encode_ibm_extended): Do round low word.
11709
11710 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
11711
11712         * config/arm/arm.md (is_xscale): Comment this attribute and move
11713         it a bit further up in the file, closer to related attributes.
11714
11715 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
11716
11717         * config/host-solaris.c (sol_gt_pch_use_address): Add
11718         missing terminating marker to comment.
11719
11720 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11721
11722         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
11723         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
11724         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
11725         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
11726         move_operand as source predicate in all cases.
11727         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
11728         Test reg_or_0_operand.  Use move_operand as source predicate.
11729         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
11730         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
11731         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
11732         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
11733         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
11734         Use move_operand as source predicate.  Remove 'K' constraint.
11735         (*movqi_internal): Likewise movqi_internal.
11736         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
11737         reg_or_0_operand.  Use move_operand as source predicate.
11738         (*movsf_softfloat): Likewise movsf_internal2.
11739         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
11740         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
11741         (*movdf_softfloat): Likewise movdf_internal2.
11742         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
11743         for DImode if !TARGET_64BIT.
11744         (mips_legitimize_move): Simplify accordingly.
11745
11746 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11747
11748         PR/14362
11749         * var-tracking.c (struct variable_def): Added field refcount.
11750         (variable_htab_free): Decrease the refcount and delete variable
11751         only if there are no more references.
11752         (unshare_variable): New function.
11753         (vars_copy_1): Increase refcount instead of copying the variable.
11754         (variable_union): Share the variables where possible, unshare
11755         the variables if needed.
11756         (variable_different_p): Return false if var1 and var2 are
11757         the same structure.
11758         (variable_was_changed): Init the refcount of new variable.
11759         (set_frame_base_location): Unshare variable if needed.
11760         (set_variable_part): Init the refcount of new variable.
11761         Unshare the variables if needed.
11762         (delete_variable_part): Unshare the variables if needed.
11763         (emit_notes_for_differences_1): Init the refcount of new variable.
11764         (vt_add_function_parameters): Do not add function parameters to
11765         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
11766         (vt_initialize): Do not add frame_base_decl to IN set of
11767         ENTRY_BLOCK_PTR because it is unused anyway.
11768
11769 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11770
11771         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
11772         (vars_copy): Likewise.
11773         (variable_union): Likewise.
11774         (set_variable_part): Likewise.
11775         (delete_variable_part): Likewise.
11776
11777 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
11778
11779         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
11780         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
11781         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
11782         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
11783         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
11784         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
11785         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
11786         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
11787         config/stormy16/stormy16.c: Fix comment typos and formatting.
11788
11789 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
11790
11791         * configure: Regenerate, since I forgot to while committing Paolo's
11792         changes.
11793
11794 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
11795
11796         PR ada/14131
11797         Move language detection to the top level.
11798         * configure.ac: Remove code to detect languages,
11799         it now lives exclusively in the top level.
11800         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
11801         top level, renamed to ACX_PROG_GNAT.
11802
11803 2004-03-10  Richard Henderson  <rth@redhat.com>
11804
11805         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
11806         extra arguments.
11807         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
11808         and host_xmake_file fragments.
11809         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
11810         (gt_pch_restore): Similarly for gt_pch_use_address.
11811         (default_gt_pch_get_address): New.
11812         (mmap_gt_pch_get_address): Split out of gt_pch_save.
11813         (default_gt_pch_use_address): Split out of gt_pch_restore.
11814         (mmap_gt_pch_use_address): Likewise.
11815         * hooks.c (hook_voidp_size_t_null): Remove.
11816         (hook_bool_voidp_size_t_false): Remove.
11817         * hooks.h: Likewise.
11818         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
11819         default_ or mmap_ definitions.
11820         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
11821         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
11822         and gt_pch_use_address.
11823         * config/host-linux.c, config/host-solaris.c: New files.
11824         * config/x-linux, config/x-solaris: New files.
11825         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
11826         Update for changed definition.
11827         (darwin_rs6000_gt_pch_use_address): Likewise.
11828         * doc/hostconfig.texi: Update docs.
11829
11830 2004-03-10  Richard Henderson  <rth@redhat.com>
11831
11832         PR c/14517
11833         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
11834         except for pedantic c90 mode.
11835
11836 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
11837
11838         * configure.ac: Bump AC_PREREQ to 2.59.
11839         * configure: Regenerate.
11840
11841 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
11842
11843         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
11844         (exp10_optab, exp2_optab): Define corresponding macros.
11845         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
11846         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
11847         using exp10?f2 and exp2?f2 patterns.
11848         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
11849         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
11850         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
11851         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11852
11853         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
11854         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
11855         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
11856
11857 2004-03-10  Anthony Green  <green@redhat.com>
11858
11859         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
11860
11861 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11862
11863         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
11864         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
11865         __LONGDOUBLE128.
11866         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
11867         TARGET_OS_AIX_CPP_BUILTINS.
11868         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
11869         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
11870         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
11871         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
11872         previous change.
11873
11874 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11875
11876         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
11877
11878 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11879
11880         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11881         __LONGDOUBLE128 on AIX.
11882
11883 2004-03-10  Andrew Haley  <aph@redhat.com>
11884
11885         PR optimization/14381
11886         * function.c (expand_function_end): Emit a blockage insn before
11887         the epilogue when -fnon-call-exceptions is used.
11888
11889         * except.c (expand_start_all_catch): Make comment more accurate.
11890
11891 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11892
11893         PR target/14480
11894         * config/rs6000/t-rtems: Add missing file on branch.
11895
11896 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
11897
11898         * dbxout.c (dbxout_symbol_location): Do not output references
11899         to optimized-out constant pool symbols.
11900
11901 2004-03-10  Andreas Schwab  <schwab@suse.de>
11902
11903         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
11904         twon34_r.
11905
11906 2004-03-09  James E Wilson  <wilson@specifixinc.com>
11907
11908         * alias.c (alias_sets_might_conflict_p): New.
11909         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
11910         * common.opt (Wstrict-aliasing=): New.
11911         * flags.h (warn_strict_aliasing): Change type to int.
11912         * opts.c (warn_strict_aliasing): Change type to int.
11913         (common_handle_option): Handle OPT_Wstrict_aliasing_.
11914         * tree.h (alias_sets_might_conflict_p): Declare it.
11915         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
11916
11917 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
11918
11919         PR bootstrap/12371
11920         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
11921         (CALL_USED_REGISTERS): Likewise.
11922         (REG_CLASS_CONTENTS): Likewise.
11923         (REG_ALLOC_ORDER): New.
11924         (REGNO_REG_CLASS): Use regno_reg_class.
11925         * config/m68k/m68k.c: Add regno_reg_class array.
11926
11927 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
11928
11929         * config/ia64/ia64.md (divsi3): Fix algorithm.
11930           (udivsi3): Ditto.
11931           (setf_exp_xf): Remove '*' from name.
11932         * testsuite/gcc.dg/20040309-1.c: New test.
11933
11934 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
11935
11936         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
11937         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
11938         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
11939         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
11940         (sparc_aout_select_rtx_section): Don't check
11941         SUNOS4_SHARED_LIBRARIES.
11942         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
11943
11944 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
11945
11946         PR other/14474
11947         * doc/md.texi (Pattern Ordering, Dependent Patterns)
11948         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
11949         INTERNALS".
11950
11951 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11952
11953         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
11954         (LIBGCC_SPEC): Update to match.
11955
11956 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11957
11958         * c-decl.c (last_function_parms, last_function_parm_tags)
11959         (last_function_parm_others, current_function_parms)
11960         (current_function_parm_tags, current_function_parm_others):
11961         Delete.
11962         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
11963         New macros.
11964         (grokdeclarator): For function definitions, save the arg-info
11965         block from the declarator in DECL_ARGUMENTS.
11966         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
11967         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
11968         contains only PARM_DECLs.  Improve diagnostics.
11969         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
11970         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
11971         (store_parm_decls_newstyle): Take the function to operate on,
11972         and an arg-info block, as arguments; don't get anything from
11973         current_function_* globals.
11974         (store_parm_decls_oldstyle): Likewise.
11975         (store_parm_decls): Pass fndecl and its arg-info block down to
11976         store_parm_decls_newstyle/oldstyle.  Send functions with empty
11977         argument lists through store_parm_decls_newstyle to reduce
11978         overhead.
11979         (pushdecl): Comment on the problems with the call to copy_node.
11980         Clear DECL_ARGUMENTS of the old node after copying it, if it
11981         is an arg-info block instead of a chain of decls.
11982         (start_function): Do not manipulate current_function_parm* or
11983         last_function_parm*.
11984
11985 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11986             Andrew Pinski  <pinskia@physics.uc.edu>
11987
11988         * ifcvt.c (noce_try_sign_mask): New function to transform
11989         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
11990         (noce_process_if_block): Call noce_try_sign_mask.
11991
11992 2004-03-09  Andrew Pinski  <apinski@apple.com>
11993
11994         * c-typeck.c (tagged_types_tu_compatible_p):
11995         Fix typo.
11996
11997 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11998
11999         * simplify-rtx.c (simplify_const_relational_operation): New function
12000         renamed from simplify_relational_operation.
12001         (simplify_relational_operation): Change prototype to accept an
12002         additional mode argument.  Call simplify_const_relational_operation.
12003         (simplify_gen_relational): Update simplify_relational_operation call.
12004         (simplify_ternary_operation): Update simplify_relational_operation
12005         subroutine call to use simplify_const_relational_operation instead.
12006
12007         * rtl.h (simplify_const_relational_operation): Prototype here.
12008         (simplify_relational_operation): Add addtional mode argument.
12009
12010         * combine.c (combine_simplify_rtx): Update calls to
12011         simplify_relational_operation.
12012         (simplify_set): Likewise.
12013         (gen_binary): Likewise.
12014         * cse.c (fold_rtx): Likewise.
12015         * dojump.c (compare_from_rtx): Likewise.
12016         (do_compare_rtx_and_jump): Likewise.
12017         * integrate.c (subst_constants): Likewise.
12018         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
12019
12020 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
12021
12022         * config/m32r/m32r.md: Remove all define_peephole's.
12023
12024 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
12025
12026         * config/rs6000/rs6000.md: Remove trailing whitespace.
12027
12028 2004-03-08  Eric Christopher  <echristo@redhat.com>
12029
12030         * Makefile.in (site.exp): Add libiconv variable definition.
12031
12032 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
12033
12034         * configure: Regenerate for config/accross.m4 correction.
12035
12036 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
12037
12038         PR target/14480
12039         * config/rs6000/t-rtems: Add missing file on branch.
12040
12041 2004-03-08  Roger Sayle  <roger@eyesopen.com>
12042
12043         PR middle-end/14289
12044         * c-typeck.c (c_mark_addressable): A register variable should
12045         be considered global if its not automatic, i.e. TREE_PUBLIC,
12046         TREE_STATIC or DECL_EXTERNAL.
12047         * function.c (put_var_into_stack): Call abort when placing a
12048         hard register into the stack, if x_parm_reg_stack_loc is NULL.
12049
12050 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
12051
12052         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
12053         ("*extendqisi2_short_displ"): Likewise.
12054
12055 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
12056
12057         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
12058         (comp_operator): Likewise.
12059         * config/pdp11/pdp11-protos.h: Remove corresponding
12060         prototypes.
12061
12062 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
12063
12064         * expr.c (highest_pow2_factor_for_type): Rename into
12065         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
12066         TYPE_ALIGN when the target is a COMPONENT_REF.
12067         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
12068
12069 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
12070
12071         * config/rs6000/rs6000.c: Formatting fix.
12072         (legitimate_offset_address_p): Correct offset range check.
12073
12074         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
12075         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
12076         and MASK_STRING.
12077
12078 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
12079
12080         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
12081         for little endian.
12082         ("ashrdi3_no_power"): Disable for little endian.
12083         (ashrdi3): Same.
12084
12085 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12086
12087         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
12088         builtins.
12089
12090 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
12091
12092         PR target/14471
12093         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
12094         case, checking for -no-mul-bug-abort option.
12095         * configure, config.in: Regenerate.
12096         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
12097         and -mno-mul-bug-workaround.
12098         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
12099         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
12100         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
12101         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
12102         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
12103         sure mulu.d is not last on cache-line.
12104         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
12105         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
12106         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
12107         (TARGET_SWITCHES): New options -mmul-bug-workaround and
12108         -mno-mul-bug-workaround.
12109         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
12110         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
12111         * config/cris/cris.c (cris_operand_extend_operator): Clarify
12112         relation to MULT in head comment.
12113         (cris_op_str): Abort for MULT.
12114         (cris_print_operand) <case '!'>: New case.
12115
12116 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
12117
12118         PR debug/11983
12119         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
12120         dw_val_class_vec.  Replace use throughout file.
12121         (dw_float_const): Delete.
12122         (dw_vec_const): New.
12123         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
12124         throughout file.
12125         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
12126         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
12127         (size_of_die): Adjust dw_val_class_vec sizing.
12128         (output_die): Output dw_val_class_vec.
12129         (insert_int, extract_int, insert_float): New functions.
12130         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
12131         Handle CONST_VECTOR.
12132         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
12133
12134 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
12135
12136         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
12137         AltiVec abi cannot co-exist.
12138
12139         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
12140
12141 2004-03-07  Jan Hubicka  <jh@suse.cz>
12142
12143         * except.c (emit_to_new_bb_before):  Break fallthru edges.
12144
12145 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
12146
12147         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
12148         ("*lshrsi3"): Also accept an immediate for 68HC12.
12149         ("*ashrsi3_const"): Likewise.
12150         ("*ashrsi3"): Likewise.
12151         ("*ashlsi3_const"): Likewise.
12152         ("*ashlsi3"): Likewise.
12153         ("cmphi_1_hc12"): Compare two hard register by pushing them and
12154         comparing with a pop; don't use a split for that.
12155         ("cmphi split"): Disable compare split for 68HC12.
12156
12157         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
12158         the status operands if they have side effects.
12159
12160 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
12161
12162         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
12163         definition.
12164         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
12165         config/h8300/h8300.h, config/ia64/ia64.h,
12166         config/mcore/mcore.h, config/mmix/mmix.h,
12167         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
12168         config/stormy16/stormy16.h, config/v850/v850.h,
12169         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
12170         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
12171         definition.
12172
12173 2004-03-07  Roger Sayle  <roger@eyesopen.com>
12174
12175         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
12176         <XOR_EXPR>: Fold x ^ x as zero.
12177         <AND_EXPR>: Fold x & x as x.
12178
12179 2004-03-07  Roger Sayle  <roger@eyesopen.com>
12180
12181         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
12182         "foo++ == const" into "++foo == const+incr".
12183
12184 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
12185
12186         * config/mips/mips.c (mips_in_small_data_p): Return false if
12187         TARGET_ABICALLS.
12188
12189 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
12190
12191         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
12192         the stack register.
12193         (expand_prologue): Don't make an interrupt or a trap handler a far
12194         symbol.
12195         (m68hc11_initial_elimination_offset): Likewise.
12196
12197 2004-03-06  Richard Henderson  <rth@redhat.com>
12198
12199         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
12200
12201 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12202
12203         * config/ns32k/ns32k-protos.h: Add a prototype for
12204         ns32k_notice_update_cc.
12205         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
12206         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
12207         ns32k_notice_update_cc.
12208
12209 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12210
12211         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
12212         "*load_multiple_si"): Allow only if reload_completed.
12213         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
12214         Likewise.
12215
12216 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12217
12218         * config/vax/vax-protos.h: Add a prototype for
12219         vax_notice_update_cc.
12220         * config/vax/vax.c (vax_notice_update_cc): New.
12221         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
12222         vax_notice_update_cc.
12223
12224 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
12225
12226         * collect2.c (main): Only export initfunc and finifunc if
12227         LD_INIT_SWITCH not defined.
12228         (scan_prog_file): Only export constructors and destructors if
12229         LD_INIT_SWITCH not defined.  Only export symbols not found in
12230         shared objects.
12231
12232 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12233
12234         * pa.md (icacheflush): Reorder operands to make match_scratch operand
12235         last.
12236         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
12237         from calls to gen_icacheflush.
12238
12239 2004-03-06  Richard Henderson  <rth@redhat.com>
12240
12241         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
12242         (TARGET_LONG_DOUBLE_128): New.
12243         (TARGET_SWITCHES): Add long-double-{128,64}.
12244         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
12245         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
12246         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
12247         (WIDEST_HARDWARE_FP_SIZE): New.
12248         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
12249         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
12250         if TARGET_VAX_FLOAT.
12251         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
12252         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
12253
12254 2004-03-06  Richard Henderson  <rth@redhat.com>
12255
12256         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
12257         botched rtx class conversion.
12258
12259 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12260
12261         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
12262         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
12263
12264         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
12265         macros.
12266         * fold-const.c (fold_mathfn_compare, fold): Likewise.
12267
12268 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12269
12270         PR target/14343
12271         * config/i386/i386.md (movv2di_internal): Conditionalize on
12272         TARGET_SSE, not TARGET_SSE2.
12273
12274 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
12275
12276         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
12277         duplicated line.
12278
12279 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12280
12281         * builtins.c: Consistently use logN not log* in comments.
12282
12283 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12284
12285         * rtl.h (mem_expr_equal_p): Function prototype added.
12286         * cfgcleanup.c (merge_memattrs): New function.
12287         (flow_find_cross_jump): Call merge_memattrs for matching insns.
12288         * emit-rtl.c (mem_expr_equal_p): New function.
12289
12290 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
12291
12292         * objc/objc-act.c (synth_module_prologue): Const-qualify
12293         objc_selector type if using the GNU runtime; fix generated
12294         signatures for objc_msg_lookup and objc_msg_lookup_super
12295         to match what GNU ObjC headers provide; reformat and clean up.
12296         (synth_self_and_ucmd_args): Use previously constructed (and
12297         hence possibly const-qualified) objc_selector type.
12298
12299 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12300
12301         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
12302
12303 2004-03-05  Jason Merrill  <jason@redhat.com>
12304
12305         * tree.h (TYPE_HASH): Use TYPE_UID.
12306         (TREE_HASH): New macro with old definition of TYPE_HASH.
12307         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
12308         (build_array_type, build_function_type): Likewise.
12309         (build_method_type_directly): Likewise.
12310         (build_offset_type, build_complex_type): Likewise.
12311         (type_hash_list, attribute_hash_list): Likewise. Now static.
12312         * except.c: s/TYPE_HASH/TREE_HASH/.
12313
12314 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
12315
12316         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
12317         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
12318         __va_ndx by 2 words when referencing an argument on the stack.
12319         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
12320         words when an arg on the stack is first seen.
12321
12322 2004-03-05  Paul Brook  <paul@codesourcery.com>
12323
12324         * arm.h (ARM_FLAG_VFP): Remove.
12325         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
12326         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
12327
12328 2004-03-05  Paul Brook  <paul@codesourcery.com>
12329
12330         * function.c (assign_parms): Include pretend alignment offset.
12331
12332 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12333
12334         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
12335         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
12336
12337 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
12338
12339         * configure.ac: When passing --enable-languages to subdir
12340         configure when host != build, make sure we don't pass an empty
12341         value.
12342         * configure: Regenerate.
12343
12344 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
12345
12346         PR 13577
12347         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
12348         options.
12349
12350 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12351
12352         * simplify-rtx.c (simplify_relational_operation): If
12353         flag_wrapv is set, do not move terms between the two
12354         side of a relational operator.
12355
12356 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12357
12358         * rtlanal.c: Include target.h and output.h
12359         (rtx_cost, address_cost, default_address_cost): Move from...
12360         * cse.c (rtx_cost, address_cost, default_address_cost):
12361         ... this file.
12362         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
12363         * Makefile.in: Adjust dependencies.
12364
12365 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
12366
12367         * cse.c (cse_end_of_basic_block): Make static.
12368         * local-alloc.c (function_invariant_p): Move to
12369         reload1.c.
12370         * loop.c (libcall_other_reg, record_excess_regs):
12371         Make static.
12372         * reload1.c (function_invariant_p): Moved here
12373         from local-alloc.c, made static.
12374         * rtl.h (cse_end_of_basic_block, function_invariant_p,
12375         libcall_other_reg, record_excess_regs): Remove
12376         declarations.
12377
12378 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12379
12380         * config/m32r/m32r.c (signed_comparison_operator): Add a
12381         missing parenthesis.
12382
12383 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
12384
12385         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
12386         going to call mmap again.  Read the file into the right place.
12387         Give a fatal error if we have to relocate.
12388
12389 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
12390
12391         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
12392         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
12393
12394 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
12395
12396         PR other/14354
12397         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
12398         round the same.  When rounding, clear bits that would cause a
12399         second rounding in pack_d.
12400         (_fpmul_parts): Ditto.  Remove #if 0:d code.
12401
12402 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
12403
12404         PR c++/14425, c++/14426
12405         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
12406         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
12407         Change C++ definitions to accept a 'const int' argument;
12408         the prototypes already do.
12409         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
12410         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
12411         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
12412         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
12413         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
12414         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
12415         end in ..._int; change them to accept an int instead of a char
12416         as the last parameter.
12417
12418 2004-03-04  Phil Edwards  <phil@codesourcery.com>
12419
12420         * genmultilib:  Change '=' to '-' when translating option names
12421         to directory names.
12422
12423 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12424
12425         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
12426         stack slot for temp used for result of BLKmode but in integral mode.
12427
12428 2004-03-04  Jan Hubicka  <jh@suse.cz>
12429
12430         * reload.c (find_reloads): Reorganize if seqeunce to switch.
12431
12432         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
12433         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
12434
12435 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
12436
12437         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
12438         * testsuite/gcc.dg/20040303-1.c: New test.
12439
12440 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12441
12442         * ppro.md: Rewrite as a DFA pipeline description.
12443         * i386.md: Remove all uses of the ppro_uops attribute.
12444         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
12445         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
12446         ix86_sched_reorder, ix86_variable_issue,
12447         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
12448         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
12449         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
12450         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
12451         * athlon.md (athlon_ssecmp_load): Fix comment
12452
12453 2004-03-04  Stuart Hastings  <stuart@apple.com>
12454
12455         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
12456
12457 2004-03-04  Stuart Hastings  <stuart@apple.com>
12458
12459         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
12460         686, tell Darwin assembler to allow prefetch insns, non-empty def
12461         of SUBTARGET_OPTION_TRANSLATE_TABLE.
12462
12463 2004-03-04  DJ Delorie  <dj@redhat.com>
12464
12465         PR optimization/14282
12466         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
12467         between a call and the assignment of its return value.
12468
12469 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12470
12471         * config/h8300/h8300.c: Put a comment for every function.
12472
12473 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12474
12475         * config/h8300/h8300.md: Add comments about peephole2's.
12476
12477 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12478
12479         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
12480
12481 2004-03-04  Jan Hubicka  <jh@suse.cz>
12482
12483         * cfgcleanup.c (thread_jump): Update call of cselib_init.
12484         * cselib.c (cselib_record_memory): New static variable.
12485         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
12486         Give up on memories when asked for.
12487         (cselib_init): Accept new argument.
12488         * cselib.h (cselib_init): Update prototype.
12489         * gcse.c (local_cprop_pass): Update call of cselib_init.
12490         * loop.c (load_mems): Update call of cselib_init.
12491         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
12492         * sched-deps.c (sched_analyze): Update call of cselib_init.
12493
12494 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12495             GP <gp@qnx.com>
12496
12497         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
12498         when compiling PIC.
12499
12500 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
12501
12502         PR/14362
12503         * var-tracking.c (track_expr_p): Do not track variables which
12504         should be ignored for debugging purposes.
12505
12506 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12507
12508         * real.c (encode_ibm_extended): Don't bother rounding low double.
12509         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
12510         when fmt->pnan < fmt->p.
12511
12512 2004-03-04  Eric Christopher  <echristo@redhat.com>
12513
12514         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
12515         only range of valid arg registers and fixed_regs.
12516
12517 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12518
12519         PR target/14406
12520         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
12521         (abstf2, abstf2_internal): New define_expand.
12522
12523 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12524
12525         PR optimization/14235
12526         * expr.c (convert_move): Copy the source to a new pseudo
12527         when converting from a sub-word source to a larger-than-word
12528         register which conflicts with the source.
12529
12530 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
12531
12532         PR 13728
12533         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
12534         parameters with the same name, unless one is a forward decl.
12535         Do not issue a redundant-redeclaration warning for forward
12536         decls of parameters.
12537
12538 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12539
12540         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
12541         configuration.
12542
12543 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
12544
12545         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
12546
12547 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12548
12549         * target-def.h (TARGET_OPTF): Delete.
12550         * c-opts.c (TARGET_OPTF): Define.
12551
12552 2004-03-04  Jan Hubicka  <jh@suse.cz>
12553
12554         * cselib.c (cselib_finish): Fix another miss-application of my previous
12555         patch.
12556
12557 2004-03-03  Mike Stump  <mrs@apple.com>
12558
12559         Add framework support for darwin.
12560
12561         * c-incpath.c: Include target.h and machmode.h.
12562         (add_path): Use a consistent style for cpp_dir.  Initialize
12563         p->construct to 0.
12564         (add_cpp_dir_path): New.
12565         (register_include_chains): Add use of extra_includes callback.
12566         (hook_void_int): Add.
12567         (target_c_incpath): Add.
12568         * c-incpath.h (add_cpp_dir_path): New.
12569         (target_c_incpath_s): Add.
12570         (target_c_incpath): Add.
12571         (C_INCPATH_INIT): Add.
12572         * c-opts.c (c_common_missing_argument,
12573         c_common_handle_option): Add -F argument processing.
12574         * c.opt: Add -F argument processing.
12575         * gcc.c (trad_capable_cpp): Add -F argument processing.
12576         * cppfiles.c (find_file_in_dir): Update to use construct
12577         callback.
12578         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
12579         cpp_get_prev): New.
12580         (_cpp_find_file): Use search_path_exhausted.
12581         (make_cpp_dir): Initialize construct to 0.
12582         * cpplib.h (missing_header_cb
12583         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
12584         (cpp_callbacks): Add missing_header
12585         (cpp_dir): Add construct.
12586         * target-def.h: (TARGET_OPTF): New.
12587         * hooks.c (hook_void_int, hook_void_charptr): Add.
12588         * hooks.h (hook_void_int, hook_void_charptr): Add.
12589         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
12590         $(MACHMODE_H) dependencies.
12591         * doc/invoke.texi (Darwin Options): Document -F.
12592         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
12593         (TARGET_OPTF): Add.
12594         * fix-header.c (target_c_incpath): Add.
12595
12596         * config/darwin-c.c: Add c-incpath.h include.
12597         (using_frameworks, find_subframework_file,
12598         find_subframework_header, add_system_framework_path,
12599         frameworks_in_use, num_frameworks, max_frameworks,
12600         add_framework, find_framework, struct framework_header,
12601         framework_header_dirs, framework_construct_pathname,
12602         find_subframework_file, add_system_framework_path,
12603         add_framework_path, framework_defaults,
12604         darwin_register_frameworks, find_subframework_header): Add.
12605         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
12606         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
12607         (CPP_SPEC): Add __APPLE_CC__ support.
12608         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
12609
12610 2004-03-04  Jan Hubicka  <jh@suse.cz>
12611
12612         * cselib.c (cselib_finish): Fix miss-application of my previous
12613         patch.
12614
12615 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12616
12617         * hooks.c (hook_tree_tree_identity): New.
12618         * hooks.h: Add a prototype for hook_tree_tree_identity.
12619         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
12620         instead of MD_ASM_CLOBBERS.
12621         * system.h (MD_ASM_CLOBBERS): Poison.
12622         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
12623         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
12624         * target.h (gcc_target): Add md_asm_clobbers.
12625         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
12626         (ix86_md_asm_clobbers): New.
12627         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
12628         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
12629         TARGET_MD_ASM_CLOBBERS.
12630
12631 2004-03-03  Stuart Hastings  <stuart@apple.com>
12632
12633         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
12634
12635 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12636
12637         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
12638
12639         * config/sparc/sparc.h (ASM_FLOAT): Delete.
12640         (ASM_DOUBLE): Likewise.
12641         (ASM_LONGDOUBLE): Likewise.
12642         * config/sparc/pbd.h (ASM_INT_OP): Delete.
12643
12644 2004-03-03  Richard Henderson  <rth@redhat.com>
12645
12646         PR opt/13862
12647         * cselib.c (cselib_record_sets): Don't record multiple sets in
12648         asm insns.
12649
12650 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
12651
12652         * common.opt: Add description of the new -fgcse-after-reload flag.
12653
12654         * flags.h (flag_gcse_after_reload): Declaration of global variable.
12655
12656         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
12657         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
12658         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
12659         get_bb_avail_insn, hash_scan_set_after_reload,
12660         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
12661         gcse_after_reload, get_bb_avail_insn): New functions to implement
12662         gcse-after-reload.
12663         (gcse_after_reload_main): New function, the main entry point to
12664         gcse-after-reload.
12665
12666         * rtl.h (gcse_after_reload_main): Declaration of the new function.
12667
12668         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
12669
12670         * toplev.c (flag_gcse_after_reload): Initialization.
12671
12672         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
12673
12674         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12675         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
12676         the gcse after reload optimization.
12677
12678         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12679         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
12680         parameters.
12681
12682         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
12683
12684 2004-03-03  Nicolas Pitre <nico@cam.org>
12685
12686         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
12687         small negative values.
12688
12689 2004-03-03  Jan Hubicka  <jh@suse.cz>
12690
12691         * cselib.c (hash_table):  Remove GTY marker.
12692         (reg_values): Turn into array.
12693         (used_regs): Likewise.
12694         (n_used_regs): New static variable.
12695         (reg_values_old): Kill.
12696         (clear_table): Update uses of arrays.
12697         (cselib_lookup): Likewise.
12698         (cselib_record_set): Likewise.
12699         (cselib_init): Likewise.
12700         (cselib_finish): Likewise.
12701         (cselib_udpate_varray_sizes): Kill.
12702         * cselib.h (cselib_update_varray_sizes): Kill.
12703
12704 2004-03-03  Paul Brook  <paul@codesourcery.com>
12705
12706         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
12707
12708 2004-03-03  Jan Hubicka  <jh@suse.cz>
12709
12710         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
12711         Rename from ...; make statistics transparent.
12712         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
12713         (loc_descriptor): New structure.
12714         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
12715         add_statistics):
12716         New static function.
12717         (ggc_record_overhead, dump_statistics): New global function.
12718         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12719         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
12720         from ...; accept locations
12721         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12722         ggc_realloc, ggc_alloc_typed):  ... this one.
12723         from ...; accept locations
12724         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
12725         ggc_alloc_stat): Rename from ... ; pass locations
12726         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
12727         ... this one.
12728         (ggc_alloc_stat): Record overehead.
12729         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12730         ggc_realloc, ggc_alloc_typed):  Turn to macros
12731         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12732         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
12733         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
12734         * langhooks.h (lhd_make_node): Declare.
12735         (LANG_HOOKS_MAKE_TYPE): Default to new function,
12736         * langhooks.c (lhd_make_node): New.
12737         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
12738         locations.
12739         (rtx_alloc, swallow_copy_rtx): ... this one.
12740         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
12741         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
12742         * toplpev.c (finalize): Dump stats.
12743         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
12744         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12745         Rename from ... ; pass locators.
12746         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12747         build?,  build_decl): Declare.
12748         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
12749         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12750         Declare.
12751         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12752         build?,  build_decl): New macros.
12753         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
12754         * statistics.h: New file.
12755
12756 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12757             Richard Sandiford  <rsandifo@redhat.com>
12758
12759         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12760         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
12761         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
12762         * config/mips/mips.c (mips_output_division): Fill the branch delay
12763         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
12764         TARGET_FIX_R4400.
12765         (mips_output_division): Adjust accordingly.
12766         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
12767         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
12768
12769 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
12770
12771         * alias.c (rtx_equal_for_memref_p): Use predicates
12772         to test rtx classes and new rtx class codes, possibly
12773         splitting conditionals that tested against '<' and 'o'.
12774         * caller-save.c (save_call_clobbered_regs): Likewise.
12775         * combine.c (contains_muldiv, find_split_point, subst,
12776         combine_simplify_rtx, simplify_if_then_else,
12777         simplify_set, simplify_logical, expand_compound_operation,
12778         make_compound_operation, if_then_else_cond, known_cond,
12779         apply_distributive_law, cached_nonzero_bits,
12780         cached_num_sign_bit_copies, simplify_shift_const,
12781         gen_binary, simplify_comparison, update_table_tick,
12782         record_value_for_reg, get_lsat_value_validate): Likewise.
12783         * cse.c (mention_regs, find_best_addr, find_comparison_args,
12784         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
12785         Likewise.
12786         * emit-rtl.c (copy_insn_1): Likewise.
12787         * expr.c (force_operand): Likewise.
12788         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
12789         * flow.c (notice_stack_pointer_modification_1,
12790         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
12791         and_reg_cond, elim_reg_cond): Likewise.
12792         * function.c (update_epilogue_consts): Likewise.
12793         * genattrtab.c (attr_rtx_1): Likewise.
12794         * genopinit.c (gen_insn): Likewise.
12795         * integrate.c (subst_constants): Likewise.
12796         * jump.c (reversed_comparison_code_parts,
12797         reversed_comparison_code, delete_related_insns,
12798         rtx_renumbered_equal_p): Likewise.
12799         * local-alloc.c (block_alloc): Likewise.
12800         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
12801         canonicalize_condition): Likewise.
12802         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
12803         Likewise.
12804         * optabs.c (add_equal_node, expand_binop): Likewise.
12805         * predict.c (estimate_probability): Likewise.
12806         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
12807         * recog.c (validate_replace_rtx_1, comparison_operator,
12808         offsettable_address_p, constrain_operands): Likewise.
12809         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
12810         Likewise.
12811         * regclass.c (scan_one_insn): Likewise.
12812         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
12813         * regrename.c (kill_autoinc_value): Likewise.
12814         * reload.c (find_reusable_reload, find_reloads,
12815         reg_overlap_mentioned_for_reload_p): Likewise.
12816         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
12817         * rtl.c (copy_rtx): Likewise.
12818         * rtl.h (CONSTANT_P, INSN_P): Likewise.
12819         * rtlanal.c (commutative_operand_precedence): Likewise.
12820         * sched-deps.c (conditions_mutex_p): Likewise.
12821         * sched-rgn.c (is_cfg_nonregular): Likewise.
12822         * simplify-rtx.c (simplify_gen_binary,
12823         simplify_gen_relational, simplify_replace_rtx,
12824         simplify_unary_operation, simplify_binary_operation,
12825         simplify_ternary_operation, simplify_rtx): Likewise.
12826         * unroll.c (reg_dead_after_loop): Likewise.
12827         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
12828         print_operand): Likewise.
12829         * config/arc/arc.c (proper_comparison_operator): Likewise.
12830         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
12831         Likewise.
12832         * config/avr/avr.c (_reg_unused_after): Likewise.
12833         * config/frv/frv.c (frv_ifcvt_modify_tests,
12834         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
12835         * config/i386/i386.c (ix86_comparison_operator,
12836         ix86_carry_flag_operator, fcmov_comparison_operator,
12837         arith_or_logical_operator, print_operand,
12838         ix86_expand_binary_operator, ix86_binary_operator_ok):
12839         Likewise.
12840         * config/i386/i386.md: Likewise.
12841         * config/ia64/ia64.c (not_postinc_memory_operand,
12842         ia64_print_operand, update_set_flags, errata_emit_nops):
12843         Likewise.
12844         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
12845         CONSTRAINT_OK_FOR_S): Likewise.
12846         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
12847         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
12848         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
12849         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
12850         Likewise.
12851         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
12852         eqne_comparison_operator, signed_comparison_operator):
12853         Likewise.
12854         * config/mips/mips.c (cmp_op, symbolic_expression_p):
12855         Likewise.
12856         * config/mmix/mmix (mmix_foldable_comparison_operator,
12857         mmix_comparison_operator): Likewise.
12858         * config/pa/pa.c (hppa_legitimize_address): Likewise.
12859         * config/rs6000/rs6000.c (stmw_operation,
12860         branch_comparison_operator, trap_comparison_operator,
12861         ccr_bit): Likewise.
12862         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
12863         * config/s390/s390.c (s390_alc_comparison,
12864         s390_slb_comparison):L Likewise.
12865         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
12866         Likewise.
12867         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
12868         noov_compare_op, noov_compare64_op, v9_regcmp_op,
12869         emit_hard_tfmode_operation, reg_unused_after)
12870         * doc/md.texi, doc/rtl.texi: Likewise.
12871
12872         * ra-debug.c: Add 2004 to list of copyright years.
12873         * unroll.c: Likewise.
12874
12875         * combine.c (simplify_logical): Remove dummy test,
12876         (apply_distributive_law): Fix typo in comment.
12877         GET_CODE (x) == AND so x is a commutative binary op.
12878         * jump.c (delete_related_insns): simplify loop
12879         condition, move testing of RTX codes inside the loop.
12880         (rtx_renumbered_equal_p): do not use RTX_CODE.
12881         * rtl.c (rtx_class): Declare as enum rtx_class.
12882         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
12883         Move to RTX_COMM_COMPARE class.
12884         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
12885         Move to RTX_CONST_OBJ class.
12886         * rtl.h (enum rtx_class): New declaration,
12887         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
12888         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
12889         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
12890         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
12891         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
12892         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
12893         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
12894         OBJECT_P): New macros.
12895         * config/sparc/sparc.c (noov_compare_op): Remove register
12896         from parameter.
12897
12898 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12899
12900         * target.h: Remove texi jargons in comments.
12901
12902 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12903
12904         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
12905         threshold to 0x4f.
12906
12907         Revert:
12908         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12909         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12910         as well.
12911         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12912         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12913
12914 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12915
12916         * doc/md.texi (cbranchmode4): New.
12917
12918 2004-03-02  Eric Christopher  <echristo@redhat.com>
12919
12920         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
12921         fix_trunc.
12922         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
12923         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
12924         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
12925         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
12926
12927 2004-03-02  Richard Henderson  <rth@redhat.com>
12928
12929         PR middle-end/11767
12930         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
12931         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
12932         before the compare, if flag_non_call_exceptions.
12933
12934 2004-03-02  Richard Henderson  <rth@redhat.com>
12935
12936         PR middle-end/14327
12937         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
12938         emitting the label, not after.
12939
12940 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12941
12942         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
12943         (m68hc11_mov_addr_mode): Likewise.
12944         (m68hc11_override_options): Initialize them based on target.
12945         (register_indirect_p): Allow a MEM for indirect addressing modes and
12946         use flags to control what is allowed.
12947         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
12948         supported addressing modes.
12949         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
12950         (go_if_legitimate_address_internal): Likewise.
12951         (m68hc11_indirect_p): Likewise and check the mode.
12952         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
12953
12954 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12955
12956         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
12957         (expand_builtin_setjmp_setup): Use
12958         targetm.builtin_setjmp_frame_value instead of
12959         BUILTIN_SETJMP_FRAME_VALUE.
12960         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
12961         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
12962         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12963         * target.h (gcc_target): Add builtin_setjmp_frame_value.
12964         * targhooks.c (default_builtin_setjmp_frame_value): New.
12965         * targhooks.h: Add a prototype for
12966         default_builtin_setjmp_frame_value.
12967         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
12968         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12969
12970 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12971
12972         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
12973         sequences of moves.
12974         (add peepholes): New peepholes to optimize sequences adding small
12975         constants.
12976         (bset peepholes): New peepholes to transform an OR in a bset form
12977         (bclr peepholes): Likewise for bclr form.
12978         (cmp peepholes): New peepholes to avoid register copies when comparing.
12979
12980 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12981
12982         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
12983         to separate push from moves.
12984         ("*pushdf_internal"): Likewise.
12985         ("*pushsf_internal"): Likewise.
12986         ("*pushsi_internal"): Likewise.
12987         ("movdi_internal"): Use define_insn_and_split; non push operand.
12988         ("movdf_internal"): Likewise.
12989         ("movsf_internal"): Likewise.
12990         ("movsi_internal"): Likewise.
12991         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
12992         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
12993         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
12994
12995 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12996
12997         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
12998         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
12999         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
13000         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
13001         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
13002         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
13003         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
13004         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
13005         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
13006         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
13007         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
13008
13009 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
13010
13011         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
13012         (SOFT_XY_REGNUM): Define.
13013         (cmp split): Use the above instead of hard coded numbers.
13014         (8-bit op split): No need to check the mode; allow Q_REG.
13015         (ashift split): Adjust the first operand if it uses the SP and we
13016         are pushing the shifted value.
13017         (plus shift split): Fix when a source is in register D+X.
13018         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
13019
13020 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
13021
13022         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
13023         comparing with Z register.
13024
13025 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13026
13027         * cfgloop.h (struct loop_desc): Removed.
13028         (struct loop): Fields simple, desc and has_desc removed.
13029         (simple_loop_p, count_loop_iterations): Declaration removed.
13030         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
13031         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
13032         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
13033         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
13034         simple_loop_exit_p, variable_initial_value, variable_initial_values,
13035         simple_condition_p, simple_increment, count_strange_loop_iterations,
13036         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
13037         Removed.
13038         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
13039
13040 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
13041
13042         * genattrtab.c: Don't handle MATCH_INSN.
13043         * genrecog.c: Likewise.
13044         * gensupport.c: Likewise.
13045         * rtl.def (match_insn): Remove.
13046         * doc/md.texi (match_insn, match_insn2): Remove.
13047
13048 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
13049
13050         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
13051         macro results in memory allocation.
13052
13053 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
13054
13055         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
13056         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
13057         %(fbsd_dynamic_linker),
13058         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
13059         config/i386/freebsd.h
13060         * config/arm/freebsd.h: Ditto.
13061         * config/i386/freebsd.h: Ditto.
13062         * config/i386/freebsd64.h: Ditto.
13063         * config/ia64/freebsd.h: Ditto.
13064         * config/rs6000/sysv4.h: Ditto.
13065         * config/sparc/freebsd.h: Ditto.
13066
13067 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
13068
13069         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
13070
13071 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
13072
13073         * rtl.def (define_combine): Remove.
13074
13075 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
13076
13077         * config/h8300/h8300.md: Tweak formatting.
13078
13079 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
13080
13081         * config/h8300/h8300.md (*cmphi_h8300): Rename to
13082         *cmphi_h8300_znvc.
13083         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
13084
13085 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
13086
13087         PR bootstrap/14356
13088         * gcc.c (process_command): Remove const-qualification from argv.
13089         (main): Likewise.
13090
13091 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
13092
13093         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
13094         pushqi1_h8300hs_advanced.  Adjust its caller.
13095         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
13096         Adjust its caller.
13097
13098 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
13099
13100         * Makefile.in (install-libgcc, install-multilib): Pass
13101         mkinstalldirs var to libgcc.mk.
13102
13103 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
13104
13105         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
13106         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
13107
13108 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
13109
13110         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
13111         * config/h8300/h8300.md: Split several peephole2's, each into
13112         two.
13113
13114 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13115
13116         * dominance.c (recount_dominator): Handle postdominators.
13117
13118 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
13119
13120         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
13121         (NUM_SYMBOL_TYPES): Likewise.
13122         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
13123         (mips_unspec_address): Declare.
13124         (mips_gotoff_page, mips_gotoff_global): Delete.
13125         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
13126         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
13127         (mips_symbolic_constant_p, mips_symbolic_address_p)
13128         (mips_symbol_insns): Handle new symbol types.
13129         (general_symbolic_operand): New predicate.
13130         (mips_unspec_address): Make extern.
13131         (mips_gotoff_page, mips_gotoff_global): Delete.
13132         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
13133         Handle new symbol types.
13134         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
13135         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
13136         mips_unspec_address directly.
13137         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
13138         the documentation of -mexplicit-relocs.
13139
13140 2004-03-01  Jeff Law  <law@redhat.com>
13141
13142         * fold-const.c (fold): An equality comparison of a non-weak object
13143         against zero has a known result.  Similarly an equality comparison
13144         of the address of two non-weak, unaliased symbols has a known result.
13145
13146         * ggc-page.c (struct page_entry): New field PREV.
13147         (ggc_alloc): Update PREV field appropriately.
13148         (sweep_pages): Likewise.
13149         (ggc_free): Likewise.  Use PREV field rather than loop to
13150         improve ggc_free performance.
13151
13152 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
13153
13154         * config/mips/mips.c (mips_output_division): Use the division
13155         instruction to fill the delay slot of a zero check.
13156         (mips_idiv_insns): Adjust accordingly.
13157
13158 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
13159
13160         * config.gcc: Create a default tmake_file for linux, and use
13161         it in all but two linux clauses.  Comment those two.
13162
13163 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
13164
13165         * combine.c (try_combine):  Do not refer to is_replaced.
13166         (gen_lowpart_for_combine):  Perverse subregs now have a
13167         more politically correct name.
13168         * cse.c (cse_insn): Likewise.
13169         * jump.c: Fix bogus reference to delete_insn.
13170
13171 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
13172
13173         PR debug/14328
13174         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
13175         constants as signed values.
13176
13177         PR middle-end/13448
13178         * c-tree.h (readonly_warning): Rename to ...
13179         (readonly_error): ... this.
13180         * c-typeck.c (build_unary_op): Adjust accordingly.
13181         (readonly_warning): Rename to ...
13182         (readonly_error): ... this and issue errors, not warnings.
13183         (build_modify_expr): Call readonly_error, not readonly_warning.
13184         (c_expand_asm_operands): Likewise.
13185         * tree-inline.c (optimize_inline_calls): Do not inline functions
13186         after errors have occurred.
13187
13188 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
13189
13190         * configure.ac: Rearrange some threading code for clarity;
13191         add section comment.
13192         * configure: Regenerate.
13193
13194 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13195
13196         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
13197         typos.
13198         * doc/cppopts.texi: Fix a typo.
13199
13200 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13201
13202         * config/i386/i386.md: Fix formatting.
13203
13204 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
13205
13206         * configure.ac: Add some comments delineating sections of code.
13207
13208         * doc/install.texi: Note that libada uses autoconf 2.57 also.
13209
13210         * doc/install.texi: Fix idiot typo in previous commit.
13211
13212         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
13213
13214 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13215
13216         * config/h8300/h8300.md: Add comments about peephole2's.
13217
13218 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13219
13220         * config/h8300/h8300.md: Tweak operand numbers of some
13221         peephole2's.
13222
13223 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13224
13225         * config/h8300/h8300.md: Tweak comments about peephole2's.
13226
13227 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
13228
13229         PR middle-end/14203
13230         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
13231         instead of testing whether DECL_RTL is not NULL.
13232
13233 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13234
13235         * config/sh/sh.c: Fix formatting.
13236
13237 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13238
13239         * config/sh/sh.c: Convert to ISO-C.
13240
13241 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
13242
13243         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
13244         my previous patch.
13245
13246         * config/darwin.h (machopic_finish): Output stub even if the
13247         symbol is already defined.
13248
13249 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13250
13251         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
13252
13253 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13254
13255         * genattr.c (main): Don't define
13256         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
13257         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
13258         (DFA_PIPELINE_INTERFACE): Likewise.
13259         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
13260         (DFA_PIPELINE_INTERFACE): Likewise.
13261
13262 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
13263
13264         * config/mips/mips.md (tstsi, tstdi): Delete.
13265
13266 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13267
13268         * config/mips/mips.c (override_options): Remove an obsolete
13269         duplicate definition of the "e" constraint.
13270         * config/mips/mips.h: Update a comment accordingly.
13271
13272 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13273
13274         * config/mips/mips.md: Complete the unfinished R4000
13275         multiply/shift errata workaround.  Improve documentation.
13276         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
13277         has a hilo hazard.
13278         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
13279         (muldi3, muldi3_internal): Likewise.
13280         (muldi3_internal2): Remove, replacing with...
13281         (muldi3_mult3, muldi3_r4000): ...these new patterns.
13282         (mulsidi3): Take the errata into account.
13283         (mulsidi3_32bit): Remove, replacing with...
13284         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
13285         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
13286         (umulsidi3): Take the errata into account.
13287         (umulsidi3_32bit): Remove, replacing with..
13288         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
13289         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
13290         TARGET_FIX_R4000.
13291         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
13292         (smuldi3_highpart, umuldi3_highpart): Likewise.
13293         * doc/invoke.texi: Document the errata workaround.
13294
13295 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13296
13297         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
13298         * config/mips/mips.h (MASK_FIX_SB1): Bump.
13299         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
13300         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
13301         * config/mips/mips.c (mips_idiv_insns): New function.
13302         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
13303         (mips_output_division): Add a workaround for the R4000 divide/shift
13304         errata.
13305         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
13306         the length of an "idiv" instruction.
13307         * doc/invoke.texi: Document the new switches.
13308
13309 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13310
13311         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
13312         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
13313
13314 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13315
13316         PR optimization/14229
13317         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
13318
13319 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
13320
13321         * fold-const.c (fold): Strip NOPs that change the signedness
13322         for RSHIFT too.  Expand comment.
13323
13324 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
13325
13326         PR optimization/7871
13327         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
13328         from or to call insns.
13329
13330 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13331
13332         PR optimization/7871
13333         * flow.c (propagate_one_insn): Interpret calls as setting global
13334         registers, not merely clobbering them.
13335
13336 2004-02-27  Dale Johannesen  <dalej@apple.com>
13337
13338         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
13339         config/darwin-protos.h:  Ditto.
13340         config/darwin.h:  Remove call to it.
13341         * combine.c (distribute_notes): Do not place a REG_DEAD note
13342         when value is both set and used.
13343
13344 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13345
13346         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
13347         as well.
13348         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
13349         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
13350
13351 2004-02-27  Andrew Pinski  <apinski@apple.com>
13352
13353         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
13354         Speedup common case of the type values being in the same order.
13355
13356 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
13357
13358         * config/ia64/ia64.h (no-inline-float-divide): New option.
13359         * config/ia64/ia64.h (no-inline-int-divide): New option.
13360         * config/ia64/ia64.h (no-inline-sqrt): New option.
13361         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
13362         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
13363         * config/ia64/ia64.c (ia64_override_options): Modify error
13364         checking for inlined division/sqrt.
13365
13366 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13367
13368         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
13369         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
13370         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
13371         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
13372         copyright.
13373
13374 2004-02-27  Paul Brook  <paul@codesourcery.com>
13375
13376         * function.c (assign_parms): Don't count pretend args for alignment.
13377
13378 2004-02-27  Richard Henderson  <rth@redhat.com>
13379
13380         * passes.c: New file.
13381         * Makefile.in (OBJS-common): Add it.
13382         * diagnostic.c (rtl_dump_and_exit): Move decl ...
13383         * flags.h (rtl_dump_and_exit): ... here.
13384         * output.h (size_directive_output, last_assemble_variable_decl):
13385         Move from toplev.c.
13386         * rtl.h (reg_alloc): Move from toplev.c.
13387         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
13388         struct dump_file_info, enum dump_file_index, dump_file_tbl,
13389         open_dump_file, close_dump_file, rest_of_decl_compilation,
13390         rest_of_type_compilation, rest_of_handle_final,
13391         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
13392         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
13393         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
13394         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
13395         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
13396         rest_of_handle_tracer, rest_of_handle_if_conversion,
13397         rest_of_handle_if_after_combine, rest_of_handle_web,
13398         rest_of_handle_branch_prob,
13399         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
13400         rest_of_handle_addressof, rest_of_handle_sibling_calls,
13401         rest_of_handle_jump_bypass, rest_of_handle_inlining,
13402         rest_of_handle_null_pointer, rest_of_handle_combine,
13403         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
13404         rest_of_handle_gcse, rest_of_handle_loop_optimize,
13405         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
13406         (decode_d_option): Use enable_rtl_dump_file.
13407         (compile_file, finalize, do_compile): Move profile+combine+graph
13408         cleanup to finish_optimization_passes.
13409         * toplev.h (init_optimization_passes, finish_optimization_passes,
13410         enable_rtl_dump_file): Declare.
13411
13412 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
13413             Roger Sayle  <roger@eyesopen.com>
13414
13415         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
13416         operands to build a tree with swapped operands.
13417         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
13418         'unsignedp' predicate to specify the signedness.
13419
13420 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13421
13422         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
13423         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
13424         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
13425         comment typos and formatting.  Follow spelling conventions.
13426
13427 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
13428
13429         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
13430         fix_truncsfsi2.
13431
13432         * config/rs6000/spe.md: Delete spe_efsctuiz.
13433         Add spe_fixuns_truncsfsi2.
13434         Add spe_fix_truncsfsi2.
13435
13436 2004-02-26  Eric Christopher  <echristo@redhat.com>
13437
13438         * c-lex.c (c_lex_string_translate): New variable.
13439         (lex_string): Use to determine string translation.
13440         * c-pragma.h: Prototype.
13441         * c-parse.in (start_string_translation): New. Set above.
13442         (stop_string_translation): Ditto.
13443         (attribute, attribute_list, asm_def, asm_stmt,
13444         asm_operand): Use above functions.
13445         * cp/parser.c (cp_parser_declaration): Translate strings
13446         unless token is RID_EXTERN. Set c_lex_string_translate
13447         for recursive use.
13448         (cp_parser_asm_definition): Only translate argument strings
13449         to asms.
13450         (cp_parser_asm_operand_list): Ditto.
13451         (cp_parser_attribute_list): Do not translate attribute strings.
13452
13453 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13454
13455         * stmt.c (expand_start_case_dummy): Remove.
13456         * tree.h: Remove the corresponding prototype.
13457
13458 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13459
13460         * builtins.c (apply_args_register_offset): Remove.
13461         * tree.h: Remove the corresponding prototype.
13462
13463 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13464
13465         * stor-layout.c (is_pending_size): Remove.
13466         * tree.h: Remove the corresponding prototype.
13467
13468 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13469
13470         * recog.c (validate_replace_src): Remove.
13471         * recog.h: Remove the corresponding prototype.
13472
13473 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13474
13475         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
13476         MAYBE_REG_PARM_STACK_SPACE.
13477         * function.c: Likewise.
13478         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
13479         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13480         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
13481         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13482
13483 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13484
13485         * c-decl.c (c_expand_deferred_function): Remove.
13486         * c-tree.h: Remove the corresponding prototype.
13487
13488 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13489
13490         * postreload.c (reload_cse_move2add): Generate just a PLUS
13491         instead of an entire SET.
13492
13493 2004-02-26  Jan Hubicka  <jh@suse.cz>
13494
13495         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
13496         /pentium4m.
13497         * i386.c (override_options): Add support for new CPUs.
13498         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
13499         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
13500         constants.
13501         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
13502
13503 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
13504
13505         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
13506
13507 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13508
13509         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
13510         (sparc_emit_fixunsdi): New prototype.
13511         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
13512         (sparc_emit_fixunsdi): New function.
13513         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
13514         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
13515         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
13516         to sparc_emit_floatunsdi.
13517         (fixuns_truncsfdi2): New expander.
13518         (fixuns_truncdfdi2): Likewise.
13519
13520 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
13521
13522         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
13523         unless HAVE_cc0.
13524
13525 2004-02-25  Richard Henderson  <rth@redhat.com>
13526
13527         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
13528         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
13529         use (op0-op1) == 0 if op0 is a pointer.
13530         * config/alpha/alpha.md (cmpdi): Use some_operand.
13531         (three comparison combine splits): Remove.
13532
13533 2004-02-25  Richard Henderson  <rth@redhat.com>
13534
13535         PR c/12794
13536         * c-common.c (handle_alias_attribute): Reject the attribute if
13537         current_function_decl is set.
13538
13539 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13540
13541         * config.gcc: Add comment describing extra_gcc_objs.
13542         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
13543         * configure.ac (extra_gcc_objs): New substitution variable.
13544         (host_extra_gcc_objs): Don't substitute.
13545         * configure: Regenerate.
13546         * Makefile.in: Use extra_gcc_objs.
13547
13548 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13549
13550         * doc/contrib.texi: Add an entry for myself.
13551
13552 2004-02-25  Jan Hubicka  <jh@suse.cz>
13553
13554         * basic-block.h (make_eh_edge, break_superblocks): Declare.
13555         * cfgbuild.c (make_eh_edge):  Make global.
13556         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
13557         * except.c (build_post_landing_pads, connect_post_landing_pads,
13558         dw2_build_landing_pads, sjlj_emit_function_enter,
13559         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13560         sjlj_build_landing_pads): Update CFG.
13561         (emit_to_new_bb_before): New function.
13562         (finish_eh_generation): Do not rebuild the CFG.
13563
13564 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13565
13566         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
13567         target_cpu_default defines.
13568         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
13569         * pa.h (TARGET_DEFAULT): Likewise.
13570
13571 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13572
13573         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
13574         comparisons with regard to signedness.
13575
13576 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13577
13578         * arm.c (thumb_legitimize_address): New function.
13579         * arm-protos.h: Prototype it.
13580         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
13581         (LEGITIMIZE_ADDRESS): Use it.
13582
13583 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
13584
13585         * reload1.c (reload): Only spill eliminable register with multiple
13586         adjacent elimination alternatives if all alternatives fail.
13587
13588 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13589
13590         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
13591         is -4095...+4095 inclusive.
13592
13593 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
13594
13595         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
13596         the bootstrap failure with Sun CC 5.4 and 5.5.
13597
13598 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13599
13600         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
13601         which modifies NEWREG.
13602         (cse_condition_code_reg): Update the mode of CC_REG in
13603         CC_SRC_INSN on our own.
13604
13605 2004-02-24  Michael Matz  <matz@suse.de>
13606
13607         * config/i386/i386.c (ix86_comp_type_attributes): Check for
13608         regparm attributes.
13609
13610 2004-02-24  Richard Henderson  <rth@redhat.com>
13611
13612         * toplev.c (dump_file_tbl): Rename from dump_file.
13613         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
13614         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
13615         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
13616         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
13617         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
13618         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
13619         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
13620         s/rtl_dump_file/dump_file/g.
13621
13622 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
13623
13624         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
13625         (spe_fixuns_truncsfsi2): Delete.
13626
13627         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
13628         (fixuns_truncsfsi2): Delete.
13629
13630 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
13631
13632         PR/14240
13633         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
13634
13635 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
13636
13637         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
13638
13639 2004-02-24  Jason Merrill  <jason@redhat.com>
13640
13641         * tree.c (check_qualified_type): New fn.
13642         (get_qualified_type): Use it.  If type already has the desired
13643         quals, just return it.
13644         * tree.h: Declare it.
13645
13646 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
13647
13648         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
13649         TARGET_SCHED_FINISH_GLOBAL): New macros.
13650
13651         * target.h (md_init_global, md_finish_global): Function
13652         declarations corresponding to new target macros.
13653
13654         * haifa-sched.c (sched_init, sched_finish): Allow target to
13655         call the new schedular hooks.
13656
13657         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
13658         call to update_life_info.
13659
13660         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
13661         flag_schedule_insns for SH4.
13662
13663         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
13664         find_set_regmode_weight, find_insn_regmode_weight,
13665         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
13666         sh_variable_issue, high_pressure, ready_reorder,
13667         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
13668         functions used to throttle the insn movement in first
13669         scheduling pass for SH.
13670
13671         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
13672         TARGET_SCHED_FINISH_GLOBAL.
13673
13674 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
13675
13676         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
13677         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
13678         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
13679         symbols in sections named by the user.
13680         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
13681         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
13682         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
13683         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
13684         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
13685         the above.
13686         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
13687         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
13688         one more pseudo to further improve code generation.
13689         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
13690         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
13691         inside UNSPEC.
13692         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
13693         * config/frv/frv.c (frv_legitimate_address_p): Added
13694         allow_double_reg_p argument.  Adjust all callers.  Use it to
13695         decide whether to enable double-register indirect addressing.
13696         (frv_funcdesc_alias_set): Remove.
13697         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
13698         register.  Emit movdi_ldd.
13699         (ldd_address_operand): New.
13700         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
13701         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13702         (PREDICATE_CODES): Add ldd_address_operand.
13703         * config/frv/frv.md (movdi_ldd): New.
13704         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
13705         intermediate computations if possible.
13706         (symGOTOFF2reg_i): Fix harmless typo.
13707         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
13708         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
13709         relocated p_vaddr to vaddr type.
13710         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
13711         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
13712         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
13713         MEM, or use a funcdesc alias set.  Use regular move instead of
13714         ldd.
13715         (dbl_memory_one_insn_operand): Recognize function descriptors by
13716         type or by alias set, and don't split them.
13717         * config/frv/frv.md (call, call_value): Never use call_internal
13718         for fdpic.
13719         (call_internal, call_value_internal): Never match for FDPIC.
13720         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
13721         call_value_fdpicsi): Require FDPIC.
13722         (ldd): Removed.
13723         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
13724         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
13725         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
13726         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
13727         FDPIC.  Compute data base address.
13728         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
13729         before the other self-specs are processed.
13730         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
13731         Build with -fPIC.
13732         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
13733         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
13734         inhibit_libc is defined.
13735         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
13736         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
13737         __FRV_FDPIC__.
13738         (__RELOC_POINTER): Define.
13739         (_Unwind_IteratePhdrCallback): Use it.
13740         * config/frv/frv.h (Twrite): Define.
13741         (TRANSFER_FROM_TRAMPOLINE): Use it.
13742         * config/frv/linux.h (INVOKE__main): Undefine.
13743         (Twrite): Override.
13744         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
13745         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
13746         (-mlibrary-pic): Emphasize that this option generates EABI code.
13747         (-mcpu): Add fr550.
13748         (-mpack): Remove.
13749         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
13750         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
13751         and CONSTs in FDPIC mode.
13752         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
13753         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13754         * config/frv/frv.c (move_source_operand): Don't accept symbolic
13755         constants.
13756         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
13757         rather than 'i' constraint for the 2-instruction alternative.
13758         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
13759         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13760         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
13761         EXTRA_CONSTRAINT_FOR_Y.
13762         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
13763         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
13764         (addsi3): Change 'Y' constraint to 'Q'.
13765         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
13766         * reload.c (CONST_POOL_OK_P): New macro.
13767         (find_reloads): Use it to decide whether a constant can be forced
13768         into memory.
13769         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
13770         constant satisfies got12_operand.
13771         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
13772         (frv_legitimate_address_p): Check for valid unspec offsets using
13773         got12_operand rather than frv_legitimate_fdpic_operand_p.
13774         (frv_legitimate_fdpic_operand_p): Delete.
13775         (frv_emit_movsi): Abort if we try to use the FDPIC register during
13776         or after reload.
13777         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
13778         TARGET_FDPIC.
13779         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
13780         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
13781         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
13782         (frv_fdpic_fptr_operand): Don't declare here.
13783         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
13784         rather than fdpic_got12_operand.
13785         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
13786         got12_operand and const_unspec_operand.
13787         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
13788         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
13789         (symbolic_operand): Remove.
13790         (const_unspec_operand): New predicate.
13791         * config/frv/frv.md (*movsi_got): Use got12_operand.
13792         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
13793         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
13794         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
13795         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
13796         * config/frv/frv.c (frv_unspec): New structure.
13797         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
13798         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
13799         validate CONST indices.  Use frv_output_const_unspec to print them.
13800         (frv_print_operand): Update call to unspec_got_name.  Use
13801         frv_output_const_unspec to print constant unspecs.
13802         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
13803         Reject UNSPECs otherwise.
13804         (unspec_got_name): Take the relocation number as argument, not an
13805         rtx containing it.
13806         (frv_output_addr_const_extra): Remove, replacing with...
13807         (frv_output_const_unspec): ...this new function.
13808         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
13809         (gpr_or_int12_operand): Use fdpic_got12_operand.
13810         (dbl_memory_one_insn_operand): Likewise.
13811         (fdpic_got12_operand): Use frv_const_unspec_p.
13812         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
13813         are already legitimate.  Use frv_small_data_reloc_p when deciding
13814         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
13815         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
13816         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
13817         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
13818         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13819         label, for real this time.
13820         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
13821         representation of visibility.
13822         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
13823         such.
13824         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
13825         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
13826         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
13827         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
13828         it was explicitly disabled.
13829         (frv_stack_info): There is no need to save the link register in every
13830         frame unless TARGET_LINKED_FP is true.
13831         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
13832         frame pointer if the stack pointer might change value.
13833         (frv_return_addr_rtx): Check and process "count" argument.
13834         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
13835         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
13836         (frv_find_base_term): Declare.
13837         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
13838         (FIND_BASE_TERM): Define.
13839         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
13840         small_data_register_operand, small_data_symbolic_operand.  Add
13841         symbolic_operand.
13842         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
13843         (frv_print_operand_memory_reference, output_move_single): Remove
13844         special handling for unlegitimized sdata addresses.
13845         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
13846         and symbolic addresses.
13847         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
13848         (frv_find_base_term): New function.
13849         (int_2word_operand): Check specifically for symbolic address constants.
13850         (pic_register_operand, pic_symbolic_operand): Delete.
13851         (small_data_register_operand, small_data_symbolic_operand): Delete.
13852         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
13853         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
13854         (move_source_operand): Only accept CONSTs if they're a two-insn
13855         symbolic constant.
13856         (fdpic_got12_operand): Don't require TARGET_FDPIC.
13857         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
13858         using gen_symGOTOFF2reg*.
13859         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
13860         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
13861         themselves a cost of 3 insns.
13862         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
13863         Change predicate to symbolic_operand.
13864         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
13865         (*movsi_lda_sdata): Delete.
13866         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
13867         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
13868         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
13869         frv-*-*linux*.
13870         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13871         label.
13872         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
13873         -multilib-library-pic.
13874         (LINK_SPEC): Add -z text for -mfdpic.
13875         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
13876         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
13877         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
13878         Override.
13879         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
13880         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
13881         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
13882         crtstuff-generated files.
13883         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
13884         * config.gcc: Add frv-*-*linux*.
13885         * config/frv/linux.h, config/frv/t-linux: New.
13886         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
13887         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
13888         when -mfdpic even if a linker script is explicitly listed.
13889         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13890         * config/frv/frv.c (frv_override_options): Clear asm_out
13891         unaligned_op for SImode on FDPIC.
13892         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
13893         argument passed to decl_readonly_section.
13894         (frv_assemble_integer): Revert 2003-09-30's change, but make the
13895         whole block run with FDPIC even with -fno-PIC.
13896         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13897         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
13898         symbol or label plus offset to memory.
13899         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
13900         GOTOFF and GPREL for LABEL_REF.
13901         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
13902         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
13903         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
13904         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
13905         * doc/invoke.texi: Document them.
13906         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
13907         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
13908         (frv_splittable_got_operand): Removed.
13909         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
13910         LO_SUM.  Add comments.
13911         (frv_override_options): Moved enabling of FDPIC to
13912         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
13913         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
13914         (frv_legitimize_fdpic_address): Don't duplicate logic in
13915         frv_emit_movsi.
13916         (frv_gen_GPsym2reg): New.
13917         (unspec_got_name): Added gprel.
13918         (frv_expand_fdpic_call): Add support for inlining PLTs.
13919         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
13920         (gpr_or_int12_operand): Added GPREL12.
13921         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
13922         (small_data_symbolic_operand): Fail if FDPIC.
13923         (fdpic_splittable_got_operand): Removed.
13924         (fdpic_got12_operand): Added GPREL12.
13925         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
13926         when appropriate.  Fix sdata GOTOFF.
13927         (frv_legitimate_constant_p): Require legitimate PIC operand for
13928         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
13929         (frv_assemble_integer): Move FDPIC funcdesc handling out of
13930         flag_pic case.
13931         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
13932         frv_assemble_integer fails.
13933         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
13934         (SUBTARGET_DRIVER_SELF_SPECS): New.
13935         (ASM_SPEC): Don't pass -mno-fdpic.
13936         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
13937         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
13938         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
13939         -multilib-library-pic.
13940         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
13941         condexec_si_media_operator, condexec_sf_add_operator and
13942         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
13943         and condexec_sf_unary_operator.
13944         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
13945         New.
13946         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
13947         movsi_internal.  Give them internal names.  movsi_got has type
13948         int.
13949         (fdpic got splitters): Remove.
13950         (symGPREL2reg, symGPREL2reg_hilo): New.
13951         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
13952         to -mlibrary-pic.  Map -multilib-library-pic to it.
13953         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
13954         Document.
13955         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
13956         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
13957         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
13958         (frv_cannot_force_const_mem): New function.
13959         (const_small_data_p, plus_small_data_p): Update comments on sdata
13960         on FDPIC.
13961         (frv_override_options): Set flag_pie for FDPIC too.
13962         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
13963         call-saved registers on FDPIC.
13964         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
13965         don't force LR to be preserved.
13966         (frv_expand_prologue): Likewise.
13967         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
13968         (frv_frame_pointer_required): Don't force it just because the
13969         FDPIC register is used.
13970         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
13971         operand only if !condexec_p.
13972         (frv_legitimize_address): Return the FDPIC-legitimized address.
13973         Don't match small data here on FDPIC.
13974         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
13975         symbols.  Use TRUE/FALSE instead of 1/0.
13976         (frv_local_funcdesc_p): New.
13977         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
13978         immediates when possible.
13979         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
13980         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
13981         an UNSPEC_GOT.
13982         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
13983         12-bit immediates when possible.
13984         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
13985         are not legitimate pic operands.
13986         (frv_in_small_data_p): Re-enable for FDPIC.
13987         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
13988         (FRV_GLOBAL_P): Removed.
13989         * config/frv/frv.md: Add modes to CONSTs.
13990         (movsi_got): New.
13991         (movsi_lo_sum_got): Use separate matches instead of match_dup.
13992         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
13993         (fdpic splittable operations): Match on flag_pic != 1.
13994         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
13995         * config/frv/frv.c (frv_asm_out_constructor,
13996         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
13997         bytes, not bits.
13998         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
13999         * config/frv/frv.c (frv_assemble_integer): Reject complex
14000         expressions referencing function SYMBOL_REFs.
14001         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
14002         (move_source_operand): Reject CONSTs that reference function
14003         SYMBOL_REFs on FDPIC.
14004         (frv_emit_movsi): If we get such a CONST, break it up.
14005         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
14006         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
14007         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
14008         MEM.
14009         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
14010         (frv_trampoline_size): Increase for FDPIC.
14011         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
14012         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
14013         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
14014         Disable use of GOTOFF for now.
14015         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
14016         Disable use of small data in FDPIC for now.
14017         (frv_asm_output_mi_thunk): Implement for FDPIC.
14018         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
14019         * config/frv/frv.c (frv_asm_out_constructor): Use
14020         frv_assemble_integer for FDPIC pointers.
14021         (frv_asm_out_destructor): Likewise.
14022         * config/frv/frv.md (ldd): Fix order of operands.  Use
14023         address_operand for input.
14024         2003-09-18  DJ Delorie  <dj@redhat.com>
14025         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
14026         (unspec_got_name): Correct typo.
14027         (frv_emit_movsi): Pre-expand splittable GOTs.
14028         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
14029         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
14030         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
14031         * config/frv/t-frv: Add -mfdpic multilibs.
14032         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
14033         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
14034         * config/frv/frv.c (frv_override_options): -mfdpic assumes
14035         flag_pic, default to 32-bit pics, require DWORD ops.
14036         (frv_override_options): Add W and Z constraints.
14037         (frv_expand_prologue): No pic prologue for -mfdpic.
14038         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
14039         (frv_print_operand_memory_reference): Handle GOT constants.
14040         (frv_legitimate_address_p): Allow GOT constants.
14041         (frv_legitimize_address): Handle GOT addresses too.
14042         (frv_legitimate_fdpic_operand_p): New.
14043         (frv_legitimize_fdpic_address): New.
14044         (unspec_got_name): New.
14045         (frv_output_addr_const_extra): New.
14046         (frv_expand_fdpic_call): New.
14047         (frv_fdpic_fptr_operand): New.
14048         (gpr_or_int12_operand): Handle GOT operands.
14049         (int_2word_operand): Handle GOT operands.
14050         (fdpic_operand): New.
14051         (fdpic_splittable_got_operand): New.
14052         (fdpic_got12_operand): New.
14053         (frv_emit_movsi): Handle GOT operands.
14054         (frv_assemble_integer): -mfdpic doesn't use rofixups.
14055         (frv_print_operand): Support 'g' code for GOT operands.
14056         * config/frv/frv-protos.h: Add prototypes as needed.
14057         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
14058         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
14059         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
14060         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
14061         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
14062         R_FRV_GOTOFFLO): New.
14063         (movsi_high_got, movsi_lo_sum_got): New.
14064         (*movsi_pic): Don't use this splitter for -mfdpic.
14065         (addsi3): Allow GOT references also.
14066         (call, call_value): Handle -mfdpic separately.
14067         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
14068         call_value_fdpicsi): New.
14069         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
14070         symGOTOFF2reg_i): New.
14071         * config/frv/frv.h (MASK_FDPIC): New.
14072         (TARGET_FDPIC): New.
14073         (TARGET_SWITCHES): Add -mfdpic.
14074         (FDPIC_FPTR_REGNO): New.
14075         (FDPIC_REGNO): New.
14076         (OUR_FDPIC_REG): New.
14077         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
14078         FDPIC_CALL_REGS.
14079         (REG_CLASS_NAMES): Likewise.
14080         (REG_CLASS_CONTENTS): Likewise.
14081         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
14082         (EXTRA_CONSTRAINT): Add it here.
14083         (FRV_GLOBAL_P): New.
14084         (OUTPUT_ADDR_CONST_EXTRA): New.
14085
14086 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
14087
14088         * config/sparc/sparc.h: Remove commented-out definitions of
14089         TARGET_EDOM and GEN_ERRNO_RTX.
14090
14091 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
14092
14093         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
14094         df_analyse with df_analyze.
14095
14096 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
14097
14098         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
14099         beginning of block.
14100
14101 2004-02-23  James E Wilson  <wilson@specifixinc.com>
14102
14103         * calls.c (precompute_arguments): Update comment.
14104
14105 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
14106
14107         * et-forest.c: Replace et_occurences with et_occurrences.
14108
14109 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
14110
14111         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
14112         with iv_analyze.
14113
14114 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
14115
14116         * config/i386/i386.c: Rename pni to sse3.
14117         * config/i386/i386.h: Likewise.
14118         * config/i386/i386.md: Likewise.
14119         * config/i386/pmmintrin.h: Likewise.
14120         * doc/extend.texi: Likewise.
14121         * doc/invoke.texi: Likewise.
14122
14123 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
14124             Kazu Hirata  <kazu@cs.umass.edu>
14125
14126         Remove -fwritable-strings.
14127         * c-common.c (fix_string_type): Don't check
14128         flag_writable_strings.
14129         (fix_string_type): Likewise.
14130         * c-opts.c (set_std_c89): Don't initialize
14131         flag_writable_strings.
14132         (set_std_c99): Likewise.
14133         * common.opt (fwritable-strings): Remove.
14134         * flags.h: Remove the external declaration of
14135         flag_writable_strings.
14136         * opts.c (common_handle_option) <OPT_fwritable_strings>:
14137         Remove.
14138         * toplev.c (flag_writable_strings): Remove.
14139         (f_options): Remove an entry for writable-strings.
14140         * varasm.c (const_hash_1) <STRING_CST>: Don't check
14141         flag_writable_strings.
14142         (compare_constant) <STRING_CST>: Likewise.
14143         (build_constant_desc): Likewise.
14144         * config/darwin.c (machopic_select_section): Likewise.
14145         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
14146         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
14147         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
14148         * config/mips/mips.c (mips_select_section): Likewise.
14149         (mips_encode_section_info): Likewise.
14150         * config/pa/pa.c (pa_select_section): Likewise.
14151         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
14152         * config/v850/v850.c (v850_select_section): Likewise.
14153         * doc/invoke.texi (-fwritable-strings): Remove.
14154         (-fno-const-strings): Don't mention -fwritable-strings.
14155         * doc/trouble.texi: Don't mention -fwritable-strings.
14156
14157 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
14158
14159         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
14160
14161 2004-02-23  Dale Johannesen  <dalej@apple.com>
14162
14163         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
14164         (movdf_hardfloat64):  Ditto.
14165         (movdf_softfloat64):  Ditto.
14166
14167 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
14168         * config/rs6000/rs6000.c (function_arg): call to
14169         rs6000_mixed_function_arg for DFmode moved to allow
14170         normal DFmode incoming register assignment.
14171
14172 2004-02-23  Dale Johannesen  <dalej@apple.com>
14173
14174         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
14175         (movdf_hardfloat64):  Ditto.
14176
14177 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
14178
14179         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
14180         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
14181         copyright.
14182
14183 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
14184
14185         PR c/14156
14186         * c-typeck.c (c_expand_return): Change check for VAR_DECL
14187         to use DECL_P instead.
14188
14189         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
14190         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
14191
14192 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
14193
14194         * Makefile.in (opts.o): Depend on target.h.
14195         * opts.c (decode_options): Use targetm.default_short_enums
14196         instead of DEFAULT_SHORT_ENUMS.
14197         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14198         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
14199         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
14200         * target.h (gcc_target): Add default_short_enums.
14201         * config/cris/cris.h: Remove a comment about
14202         DEFAULT_SHORT_ENUMS.
14203         * config/ip2k/ip2k.h: Likewise.
14204         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
14205         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
14206
14207 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14208             Falk Hueffner  <falk@debian.org>
14209
14210         PR c/14188
14211         * builtins.c (expand_builtin_va_arg): Emit an informative message
14212         if a trap is generated.
14213         * c-typeck.c (build_function_call): Likewise.
14214
14215 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
14216
14217         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
14218         fopen.
14219         * libgcov.c: Include sys/stat.h.
14220         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
14221         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
14222         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
14223         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
14224
14225 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
14226
14227         * reorg.c: Remove comments about dead ports.
14228
14229 2004-02-22  Christopher Faylor  <cgf@redhat.com>
14230
14231         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
14232         extra host object file when targetting cygwin rather than generic
14233         object files.
14234
14235 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
14236
14237         Merge from tree-ssa:
14238         2003-11-20  Richard Henderson  <rth@redhat.com>
14239
14240                 * tree-inline.c (insert_decl_map): New.
14241                 (remap_decl, remap_type, remap_block, copy_body_r,
14242                 initialize_inlined_parameters, declare_return_variable,
14243                 remap_save_expr): Use it.
14244
14245         * function.c (copy_body_r): Add mapping from id->ret_label to
14246         id->ret_label.  Revert test for ret_label.
14247
14248 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
14249
14250         * genoutput.c (process_template): Strip trailing whitespace in @
14251         templates and issue a warning if there was any.
14252
14253 2004-02-21  Christopher Faylor  <cgf@redhat.com>
14254
14255         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
14256         object file when targetting cygwin.
14257         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
14258         overridden by top-level Makefile.
14259
14260 2004-02-21  Roger Sayle  <roger@eyesopen.com>
14261
14262         * config/i386/i386.c (standard_80387_constant_p): Also prefer
14263         the x87's load constant instructions when optimizing for size.
14264
14265 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
14266
14267         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
14268         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
14269         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
14270         * fold-const.c: Likewise.
14271         * simplify-rtx.c: Likewise.
14272
14273 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
14274
14275         * combine.c (can_combine_p): Don't ignore SETs marked with
14276         REG_EH_REGION notes.
14277         (try_combine): When attemting to fix unrecognized insns, don't
14278         split a PARALLEL that contains the original i2.
14279
14280 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
14281
14282         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
14283         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
14284         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
14285         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
14286         (vector, pixel, bool): #define to __vector, __pixel and __bool.
14287         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
14288         portion of header.
14289         (__altivec_link_error_invalid_argument): Remove prototype; will use
14290         __builtin_altivec_compiletime_error("vec_*") instead.
14291         (vec_*): Fix/complete set of available operation overloads given the
14292         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
14293         cv-correctness of pointer arguments; in C, always check for correct
14294         argument types before macro expansion.
14295         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
14296         defining Darwin/PowerPC-specific '-f[no-]altivec' and
14297         '-W[no-]altivec-long-deprecated' switches.
14298         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
14299         '__vector', '__pixel' and '__bool' macros using
14300         '__attribute__((altivec(...)))' types.
14301         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
14302         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
14303         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
14304         New type nodes.
14305         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
14306         handling '-W[no-]altivec-long-deprecated'.
14307         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
14308         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
14309         altivec_expand_dst_builtin): Remove casts from integer literals.
14310         (altivec_expand_builtin): Likewise; handle expansion of new
14311         '__builtin_altivec_compiletime_error' function.
14312         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
14313         types, and make them distinct from other vector types; register
14314         '__builtin_altivec_compiletime_error' function.
14315         (print_operand): For 'P', print a full target register name instead of
14316         merely its number.
14317         (rs6000_attribute_table): Add "altivec" attribute.
14318         (rs6000_handle_altivec_attribute): New function.
14319         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
14320         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
14321         maps to).
14322         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
14323         declare.
14324         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
14325
14326 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14327
14328         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
14329         check.
14330         (shift_mix4left+2): Delete redundant pattern.
14331
14332 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14333
14334         * alias.c (OUTGOING_REGNO): Don't define the default.
14335         * builtins.c (OUTGOING_REGNO): Likewise.
14336         (INCOMING_REGNO): Likewise.
14337         (apply_args_register_offset): Always use OUTGOING_REGNO.
14338         * combine.c (OUTGOING_REGNO): Likewise.
14339         * sibcall.c (OUTGOING_REGNO): Likewise.
14340         * defaults.h (INCOMING_REGNO): Provide the default.
14341         (OUTGOING_REGNO): Likewise.
14342
14343 2004-02-21  Jan Hubicka  <jh@suse.cz>
14344
14345         * params.def (max-peeled-insns, max-completely-peeled-insns,
14346         max-once-peeled-insns): Set to 400.
14347
14348 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14349
14350         PR c++/12007
14351         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
14352         are set for parameters before outputing debugging information.
14353
14354 2004-02-20  Falk Hueffner  <falk@debian.org>
14355
14356         PR target/14201
14357         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
14358         numbers.
14359
14360 2004-02-20  Per Bothner  <per@bothner.com>
14361
14362         * input.h:  Don't #include line-map.h.  It may cause link problems
14363         with undefined linemap_line_start when line-map.h is included but
14364         line-map.o is not linked, as currently happens with gengtype on
14365         compilers that don't support inline.
14366         * toplev.c:  So we do have to explicitly #include line-map.h here.
14367
14368 2004-02-20  Richard Henderson  <rth@redhat.com>
14369
14370         * doc/invoke.texi: Add -Wvariadic-macros.
14371
14372 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14373
14374         * haifa-sched.c (sched_emit_insn): Remove.
14375         * sched-int.h: Remove the corresponding prototype.
14376
14377 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14378
14379         Revert:
14380         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14381         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14382         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14383         * config/cris/cris.h: Remove a comment about
14384         DEFAULT_SHORT_ENUMS.
14385         * config/ip2k/ip2k.h: Likewise.
14386         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14387
14388 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
14389             Tom Tromey  <tromey@redhat.com>
14390
14391         * doc/install.texi: Moved --disable-libgcj and
14392         --with-system-zlib documentation to new section for
14393         Java-specific options.
14394         Added explicit Cross-Compiler-Specific Options subheading.
14395         Added section for Java-specific options.
14396
14397 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
14398
14399         * doc/install.texi (Building the Ada compiler): Remove
14400         example.
14401
14402 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14403
14404         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
14405
14406 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14407
14408         * gcc.c (process_command): Allow translation of the copyright
14409         symbol but not the rest of the copyright message.
14410         * gcov.c (print_version): Likewise.  Allow translation of the
14411         message about warranty.
14412
14413 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
14414
14415         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
14416         predicate.
14417         ("*andsi_clear"): Tweak constraints to not match postincrement.
14418         Adjust the predicate to exclude a volatile memory reference.
14419         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
14420         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
14421
14422 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
14423
14424         * move-if-change: Remove.
14425         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
14426         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
14427         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
14428         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
14429         (s-gtyp-gen, s-iov): Use the top level move-if-change.
14430         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
14431
14432 2004-02-19  James E Wilson  <wilson@specifixinc.com>
14433
14434         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
14435         for operand2.  Add condition that requires register_operand operand2
14436         before reload.
14437
14438 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
14439             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
14440
14441         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
14442         * config/mips/mips.md: Expand comment above unaligned loads and stores.
14443
14444 2004-02-19  Richard Henderson  <rth@redhat.com>
14445
14446         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
14447         * tree.c (build0, build1, build2, build3, build4): Split out from...
14448         (build): ... here.  Call them.
14449         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
14450
14451         * convert.c (convert_to_integer): Remove extra build argument.
14452         * tree-inline.c (expand_call_inline): Likewise.
14453
14454 2004-02-19  Richard Henderson  <rth@redhat.com>
14455
14456         * c-opts.c (warn_variadic_macros): New.
14457         (c_common_handle_option): Set it.
14458         (sanitize_cpp_opts): Copy it to cpp_opts.
14459         * c.opt (Wvariadic-macros): New.
14460         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
14461         * cppinit.c (cpp_create_reader): Initialize it.
14462         * cppmacro.c (parse_params): Check it.
14463
14464 2004-02-19  David Daney <ddaney@avtrex.com>
14465
14466         PR preprocessor/14198
14467         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
14468         builtin_assert ("machine=mips")
14469
14470 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14471
14472         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14473         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14474         * config/cris/cris.h: Remove a comment about
14475         DEFAULT_SHORT_ENUMS.
14476         * config/ip2k/ip2k.h: Likewise.
14477         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14478
14479 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14480
14481         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
14482         when passing single SFmode quantities in general registers,
14483         put them in the high half.
14484
14485 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14486
14487         * doc/md.texi (Standard Names): Document additional dependency on
14488         fix pattern.
14489
14490         * optabs.c (ftruncify): Remove.
14491         (expand_fix): Manually inline ftruncify above.
14492         (can_fix_p): Add FIXME note.
14493
14494 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14495
14496         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
14497         spe_fixuns_truncsfsi2.
14498
14499         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
14500         fixuns_truncsfsi2.
14501
14502 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
14503
14504         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
14505         * testsuite/gcc.dg/20040219-1.c: New test.
14506
14507 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
14508
14509         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
14510         "*subsf3_cconly"): Subtraction is not commutative.
14511
14512 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14513
14514         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
14515         (sdbout_symbol): If called before sdbout_init, queue DECL for
14516         later and return.
14517         (sdbout_init): Set sdbout_initialized true, process decls
14518         queued earlier by sdbout_symbol.
14519         (sdbout_finish): Use size_t for index variable.
14520
14521 2004-02-19  Jeff Law  <law@redhat.com>
14522
14523         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
14524         for unordered comparison codes.
14525
14526 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
14527
14528         * reload1.c (reload): Correct comment.
14529         (scan_paradoxical_subregs): Remove #if 0 and old comment.
14530         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
14531         register variables are not used by reload.
14532
14533 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
14534
14535         PR target/14209
14536         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
14537         constraints to not match postincrement.  Adjust the predicate to
14538         exclude a volatile memory reference.
14539
14540 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14541
14542         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
14543
14544 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14545
14546         * hooks.c (hook_void_tree_int): Remove.
14547         (hook_void_constcharptr): Likewise.
14548         (hook_int_void_0): Likewise.
14549         * hooks.h: Remove the prototypes for the above three
14550         functions.
14551         * targhooks.c (hook_bool_machine_mode_true): Remove.
14552         * targhooks.h: Remove the prototype for
14553         hook_bool_machine_mode_true.
14554
14555 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14556
14557         * emit-rtl.c (subreg_realpart_p): Remove.
14558         (reorder_insns_with_line_notes): Likewise.
14559         (end_full_sequence): Likewise.
14560         * rtl.h: Remove the prototype for the above functions.
14561
14562 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14563
14564         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
14565         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14566         config/iq2000/iq2000.h, config/m32r/m32r.h,
14567         config/pdp11/pdp11.h, config/sparc/sparc.h,
14568         config/xtensa/xtensa.h: Remove commented-out or useless
14569         definitions of CASE_VECTOR_PC_RELATIVE.
14570
14571 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14572
14573         * loop.c (all_sets_invariant_p): Remove.
14574
14575 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14576
14577         PR target/12916
14578         * config/sparc/sparc.h (NPARM_REGS): Delete.
14579         (BASE_RETURN_VALUE_REG): Likewise.
14580         (BASE_OUTGOING_VALUE_REG): Likewise.
14581         (BASE_PASSING_ARG_REG): Likewise.
14582         (BASE_INCOMING_ARG_REG): Likewise.
14583         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
14584         TARGET_ARCH64, not TARGET_V9.
14585         (function_arg_slotno): Dispatch based on the mode class.
14586         Handle vector modes like floating-point modes.
14587         (function_arg_record_value_1): Handle vector types like
14588         floating-point types.
14589         (function_arg_record_value_2): Likewise.
14590         Calculate regno after mode transformation.
14591         (function_arg): Handle vector modes like floating-point modes.
14592         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
14593         If ARCH64, do not recheck alignment.
14594         (function_arg_pass_by_reference): Reorder the conditions.
14595         (sparc_return_in_memory): Move after function_arg_padding.
14596         Implement calling conventions for vector modes.
14597         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
14598         (function_value): Move scope of 'regbase'.
14599         Implement calling conventions for vector modes.
14600         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
14601         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
14602         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
14603         the argument is passed by reference.
14604         (sparc_type_code): Handle vector types.
14605
14606 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
14607
14608         * function.c (assign_parms): When building decl_rtl for
14609         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
14610
14611 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
14612
14613         * expr.c (is_aligning_offset): Check if we are aligning the
14614         expressions's address over BIGGEST_ALIGNMENT in bytes, not
14615         in bits.
14616
14617 2004-02-18  Matt Austern  <austern@apple.com>
14618
14619         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
14620         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
14621         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
14622         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
14623         spec string.
14624         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
14625
14626 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
14627
14628         * dwarf2out.c (loclabel_num): Move outside #ifdef
14629         DWARF2_DEBUGGING_INFO and mark with GTY(()).
14630         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
14631         Mark with GTY(()).
14632         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
14633         Allocate memory with ggc_alloc.  No need to copy anything.
14634         (ia64_hpux_file_end): Update to match.
14635
14636 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14637
14638         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
14639         by default.
14640
14641 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14642
14643         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
14644         ("divmodtisi3"): Likewise.
14645         ("udivmoddi4", "udivmodtidi3"): Likewise.
14646         ("divmodsi4", "divmoddisi3"): Likewise.
14647         ("udivmodsi4", "udivmoddisi3"): Likewise.
14648         ("udivsi3", "umodsi3"): Likewise.
14649
14650 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14651
14652         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
14653         placeholder insn when chunkifying the pool.
14654
14655 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14656
14657         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
14658         generating PIC code.
14659
14660 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14661
14662         * config/h8300/h8300-protos.h: Add a prototype for
14663         h8300_expand_branch.
14664         * config/h8300/h8300.c (h8300_expand_branch): New.
14665         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
14666         bgtu, beq, bne): Call h8300_expand_branch().
14667
14668 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14669
14670         * config/h8300/h8300-protos.h: Add prototypes for
14671         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
14672         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
14673         (h8300_hard_regno_mode_ok): Likewise.
14674         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
14675         h8300_hard_regno_nregs().
14676         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
14677
14678 2004-02-18  Per Bothner  <per@bothner.com>
14679
14680         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
14681         partly reverts my 2003-10-01 change, because we're back to logically
14682         including <command line> inside the main line.
14683         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
14684         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
14685         Fixes PR preprocessor/14103.
14686
14687         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
14688         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
14689         (cpp_push_include):  Don't need to increment pfile's line field.
14690         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
14691
14692         * c-ppoutput.c (print struct):  New first_time field.
14693         (init_pp_output):  Set print.first_time.
14694         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
14695         which is set also for (say) <command line>.  Clear print.first_time.
14696
14697         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
14698         does not match the code, so fix both.
14699         (should_stack_file):  Inline include_pch_p function.
14700         (include_pch_p):  Remove pointless function.
14701
14702         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
14703
14704 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14705
14706         * config/h8300/h8300.md (four define_peephole2's): Use
14707         h8300_regs_ok_for_stm().
14708
14709 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14710
14711         * config/h8300/h8300-protos.h: Update the prototype for
14712         expand_a_rotate().
14713         * config/h8300/h8300.c (expand_a_rotate): Remove the first
14714         argument.
14715         * config/h8300/h8300.md: Update all callers.
14716
14717 2004-02-18  Jan Hubicka  <jh@suse.cz>
14718
14719         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
14720         floats.
14721         (simplify_binary_operation): Deal with logicals on floats.
14722
14723         * i386.md (SSE fabs splitters): Emit new patterns.
14724         (SSE cmov splitters): Likewise.
14725         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
14726         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
14727         subregs.
14728         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
14729         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
14730
14731 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14732
14733         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
14734         by hand.
14735         (output_a_rotate): Tweak a comment.
14736         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
14737         (*rotlhi3_1): Change to rotlhi3_1.
14738         (*rotlsi3_1): Change to rotlsi3_1.
14739
14740 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
14741
14742         PR target/13866
14743         * arm.c (load_multiple_operation): Don't insist that the source reg
14744         of a post-increment component is the same as the destination.
14745         (store_multiple_operation): Likewise.
14746
14747 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14748
14749         * config/h8300/h8300.md: Move movsf patterns into one section
14750         of the file.
14751
14752 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14753
14754         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
14755         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
14756         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
14757         config/mips/linux64.h, config/pa/pa-64.h,
14758         config/rs6000/aix51.h, config/rs6000/aix52.h,
14759         config/rs6000/spe.md, config/sparc/linux.h,
14760         config/sparc/linux64.h: Update copyright.
14761
14762 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14763
14764         * config/h8300/h8300.md: Move push patterns into one
14765         section of the file.
14766
14767 2004-02-18  Mark Mitchell <mark@codesourcery.com>
14768
14769         PR c++/11326
14770         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
14771         fntype.
14772
14773 2004-02-18  Paul Brook  <paul@codesourcery.com>
14774
14775         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
14776
14777 2004-02-18  Paul Brook  <paul@codesourcery.com>
14778
14779         PR debug/12934
14780         * dwarf2out.c (loc_descriptor_from_tree): Handle
14781         EXPR_WITH_FILE_LOCATION.
14782
14783 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14784
14785         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
14786         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
14787         trailing whitespace from instructions.
14788
14789 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
14790
14791         * configure.ac: When generating auto-build.h, pass
14792         --enable-languages to the sub-configure.
14793         Put quotes around ${program_transform_name} when generating
14794         name of as, ld, nm, objdump.
14795         * configure: Regenerate.
14796
14797 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
14798
14799         * Makefile.in (s-check, s-config, s-conditions, s-flags)
14800         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
14801         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
14802         (s-preds, s-iov): Do not depend on move-if-change.
14803
14804 2004-02-17  James E Wilson  <wilson@specifixinc.com>
14805
14806         * caller-save.c (insert_restore): Pass mem through copy_rtx.
14807         (insert_save): Likewise.
14808
14809 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14810
14811         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
14812         warning.
14813
14814 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14815
14816         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
14817         *one_cmplsi2_h8300.
14818         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
14819
14820 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14821
14822         * config/h8300/h8300-protos.h: Update the prototype of
14823         fix_bit_operand().
14824         * config/h8300/h8300.c (fix_bit_operand): Remove the second
14825         argument "what".
14826         * config/h8300/h8300.md: Update all callers.
14827
14828 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14829
14830         * config/h8300/h8300.c (fix_bit_operand): Change the name of
14831         the last argument to "code" from "type".
14832
14833 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14834
14835         * config/h8300/h8300.c: Remove an extern declaration of
14836         rtx_equal_function_value_matters.
14837
14838 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14839
14840         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
14841         by hand.
14842         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
14843         (*iorqi3_1): Change to iorqi3_1.
14844         (*xorqi3_1): Change to xorqi3_1.
14845
14846 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14847
14848         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
14849         typos.
14850
14851 2004-02-17  Jan Hubicka  <jh@suse.cz>
14852
14853         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
14854
14855 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
14856
14857         PR optimization/14119
14858         * combine.c (try_combine): When attemting to fix unrecognized insns,
14859         don't delete SETs marked with REG_EH_REGION notes.
14860
14861 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
14862
14863         * combine.c (simplify_if_then_else): Do not replace
14864         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
14865         modes differ.
14866
14867 2004-02017  Steven Bosscher  <stevenb@suse.de>
14868
14869         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
14870         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
14871         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
14872         * ada/utils.c: Likewise.
14873         * cp/decl.c: Likewise.
14874         * f/com.c: Likewise.
14875         * java/class.c: Likewise.
14876
14877 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14878
14879         * config/h8300/h8300.md: Fix comment typos.
14880
14881 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14882
14883         * config/mips/t-iris6gld: Renamed to ...
14884         * config/mips/t-irix-gld: ... this.
14885         * config.gcc (mips-sgi-irix6*): Reflect this
14886         (mips-sgi-irix5*): Use it with GNU ld.
14887
14888         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
14889         to ...
14890         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
14891         * config/mips/t-irix-gld: Reflect this.
14892         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14893
14894         * config/mips/iris5gld.h: New file.
14895         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
14896         Only use collect2 without gas.
14897
14898         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
14899         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14900         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
14901         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14902
14903         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
14904         * config/mips/iris5.h: ... here.
14905
14906         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
14907         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14908         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
14909
14910         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
14911         using irix_startfile_spec, irix_endfile_spec.
14912
14913 2004-02-16  Gunther Nikl  <gni@gecko.de>
14914
14915         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
14916
14917 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14918
14919         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
14920         insns by hand.
14921
14922 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14923
14924         * cfghooks.c (split_edge): Speed up updating of dominators.
14925
14926 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
14927
14928         PR c++/11326
14929         * c-common.c (flag_abi_version): Remove.
14930         * c-common.h (flag_abi_version): Likewise.
14931         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
14932         * c.opt (fabi-version): Remove.
14933         * calls.c (expand_call): Always pass a function type to
14934         struct_value_rtx.  Use convert_memory_address.
14935         * common.opt (fabi-version): Add it.
14936         * flags.h (flag_abi_version): Likewise.
14937         (abi_version_at_least): New macro.
14938         * opts.c (common_handle_option): Add OPT_fabi_version.
14939         * toplev.c (flag_abi_version): Define it.
14940         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
14941         New function.
14942         (ia64_output_mi_thunk): Use it.
14943         (ia64_struct_value_rtx): Likewise.
14944
14945 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14946
14947         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
14948         Don't generate insns by hand.
14949
14950 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
14951
14952         PR c++/14178
14953         * doc/invoke.texi (fabi-version): The default is 2 now.
14954
14955 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14956
14957         * loop-iv.c: New file.
14958         * Makefile.in (loop-iv.o): New.
14959         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
14960         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
14961         num_loop_branches): New functions.
14962         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
14963         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
14964         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
14965         get_simple_loop_desc, free_simple_loop_desc): Declare.
14966         (simple_loop_desc): New inline function.
14967         (struct rtx_iv, struct niter_desc): New.
14968         * cfgloopmanip.c (loopify): Specify semantics more precisely.
14969         * expr.c (force_operand): Handle subregs of expressions created by
14970         loop unroller.
14971         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
14972         parts of the initialization to toplev.c
14973         * loop-unroll.c (loop_exit_at_end_p): New.
14974         (unroll_and_peel_loops): Call iv_analysis_done.
14975         (decide_peel_once_rolling, decide_peel_completely,
14976         decide_unroll_stupid, decide_unroll_constant_iterations,
14977         decide_unroll_runtime_iterations, decide_peel_simple,
14978         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
14979         unroll_loop_runtime_iterations): Use new simple loop analysis.
14980         * loop-unswitch.c (compare_and_jump_seq): New.
14981         (may_unswitch_on_p): Renamed to ...
14982         (may_unswitch_on): Use new iv analysis.
14983         (reversed_condition): Export.
14984         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
14985         * predict.c (estimate_probability): Use new simple loop analysis.
14986         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
14987         canon_condition, simplify_using_condition): Declare.
14988         * stor-layout.c (get_mode_bounds): New.
14989         * toplev.c (rest_of_handle_loop2): Some parts of
14990         initialization/finalization moved here from loop-init.c.
14991
14992 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14993
14994         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
14995         pointer.
14996         (CALL_USED_REGISTERS): Likewise.
14997         (REG_ALLOC_ORDER): Likewise.
14998         (REG_CLASS) <GENERAL_REGS>: Likewise.
14999
15000 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
15001
15002         * doc/md.texi (Insn Canonicalizations): Document left-chaining
15003         in associative operators.
15004         * rtlanal.c (commutative_operand_precedence): Create some new
15005         variables.  Prefer a commutative operand on the left, then
15006         binary expressions, then NEG and NOT.
15007
15008 2004-02-16  Matthias Klose  <doko@debian.org>
15009
15010         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
15011         in terms of SHLIB_SOVERSION.
15012         * config/m68k/t-slibgcc-elf-ver: New file.
15013         * config/pa/t-slibgcc-elf-ver: New file.
15014         * config.gcc (m68k-linux, parisc-linux): Use them when not
15015         sjlj exceptions are not configured.
15016
15017 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
15018
15019         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
15020
15021 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
15022
15023         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
15024
15025 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
15026
15027         * doc/sourcebuild.texi: Mention backends.html.
15028
15029 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
15030
15031         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
15032         line-map.c, line-map.h, var-tracking.c: Fix comment
15033         formatting.
15034
15035 2004-02-16  Richard Henderson  <rth@redhat.com>
15036
15037         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
15038
15039         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
15040
15041 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
15042
15043         * config/h8300/h8300.md: Remove unnecessary parallels from
15044         all define_insn and define_split patterns.
15045
15046 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
15047
15048         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
15049         "clobber").
15050
15051 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
15052
15053         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
15054         '%#'.
15055
15056 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
15057
15058         * config/ia64/ia64.c, config/mips/mips.c,
15059         config/mmix/mmix-modes.def: Fix comment typos.
15060
15061 2004-02-15  Roger Sayle  <roger@eyesopen.com>
15062
15063         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
15064         (get_directive_line): Remove unused function prototype.
15065
15066 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
15067
15068         * tree-inline.c (copy_body_r): Do not replace ret_label.
15069
15070 2004-02-14  Jan Hubicka  <jh@suse.cz>
15071
15072         * i386.c (x86_four_jump_limit): New variable.
15073         (k8_avoid_jump_misspredicts): Rename to ...
15074         (ix86_avoid_jump_misspredicts): .. this one.
15075         (ix86_pad_returns): Break out from ...
15076         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
15077         to.
15078         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
15079
15080 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
15081
15082         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
15083         PARALLEL is NULL.
15084
15085 2004-02-14  Per Bothner  <per@bothner.com>
15086
15087         * fix-header.c (line_table):  Move local variable in main to global.
15088         * scan.h (line_table):  Use it.
15089         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
15090         line (recently renamed to src_loc) before calling recognized_function.
15091
15092 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
15093
15094         * Makefile.in: Fix comment typos.
15095
15096 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
15097
15098         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
15099         for start_value when it is directly moved into reg, and factorize
15100         the retrieval of GET_MODE (reg).
15101
15102 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
15103
15104         * config/mips/mips-protos.h (mips_load_got_page): Delete.
15105         (mips_load_got_global): Delete.
15106         (mips_gotoff_page): Declare.
15107         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
15108         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
15109         UNSPEC_LOAD_GOT pattern rather than a MEM.
15110         (*load_got[sd]i): New patterns.
15111         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
15112         (mips_load_got_page, mips_load_got_global): Delete.
15113         (mips_gotoff_page): New function.
15114         (override_options): Don't initialize mips_got_alias_set.
15115
15116 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
15117
15118         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
15119         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
15120         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
15121         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
15122         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
15123         * config/mips/mips.c: Fix some overly-long lines.
15124         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
15125         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
15126
15127 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15128
15129         * configure.ac: Search for as, ld below libexec/gcc.
15130         * configure: Regenerate.
15131
15132 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
15133
15134         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
15135         __builtin_arm_setwcx ().
15136         * config/arm/arm.c (arm_expand_builtin): Generate operands
15137         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
15138
15139 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
15140
15141         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
15142         and "wmuluh" to "wmulsm" and "wmulum", respectively.
15143         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
15144         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
15145         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
15146         (_mm_mulhi_pu16): Likewise.
15147
15148 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
15149
15150         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
15151         DECL_NAME != 0 before dereferencing.
15152
15153 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
15154
15155         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
15156         (s390_output_addr_const_extra): Declare.
15157         (s390_output_pool_entry): Remove FILE * argument.
15158         * config/s390/s390.c (s390_output_symbolic_const): Remove.
15159         (s390_output_addr_const_extra): New function.
15160         (print_operand_address): Call output_addr_const instead of
15161         s390_output_symbolic_const.
15162         (print_operand): Likewise.
15163         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
15164         Remove FILE * argument.
15165         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
15166         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
15167         call.
15168
15169 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15170
15171         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
15172         (struct edge, struct vertex, struct graph): New.
15173         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
15174         free_graph): New functions.
15175
15176 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
15177
15178         * config/mips/mips.md (casesi_internal, casesi_internal_di):
15179         Use ".set macro" to avoid warnings about multi-instruction
15180         macros, since they're intentional.
15181
15182 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
15183
15184         * config/darwin.h: Add include guards.  Remove old, now incorrect,
15185         comment about STANDARD_EXEC_PREFIX.
15186
15187         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
15188         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
15189         for installing .1 manpages.  Add rules for installing cpp
15190         and gcov manpages under their installed names.
15191
15192 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
15193
15194         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
15195         host, but try LD_FOR_TARGET first.
15196         * configure: Rebuilt.
15197
15198 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15199
15200         * dbxout.c: Move declaration of dbxout_type_decl outside
15201         #ifdef DBX_DEBUGGING_INFO.
15202         * c-parse.in: Don't give the asmdef production a type.
15203
15204 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15205
15206         * debug.h (struct gcc_debug_hooks): Add type_decl field.
15207         (debug_nothing_tree_int): Prototype.
15208         (dwarf_debug_hooks): Delete, unused.
15209         * debug.c (do_nothing_debug_hooks): Update.
15210         (debug_nothing_tree_int): New function.
15211         * langhooks.h (struct lang_hooks_for_decls):
15212         Remove builtin_type_decls field.
15213         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
15214         (LANG_HOOKS_DECLS): Update.
15215         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
15216         Use debug_hooks->type_decl.
15217         * dbxout.c (preinit_symbols): New static.
15218         (dbx_debug_hooks, xcoff_debug_hooks): Update.
15219         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
15220         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
15221         for symbols to output.
15222         (dbxout_type_decl): New function.
15223         (dbxout_symbol): If called before dbxout_init has run, queue
15224         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
15225         to TYPE_DECLs before emitting them.
15226         * xcoffout.c (assign_type_number): Delete.
15227         (xcoff_type_numbers): New static table.
15228         (xcoff_assign_fundamental_type_number): New function.
15229         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
15230         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
15231         * sdbout.c: Include varray.h.
15232         (deferred_global_decls): New static.
15233         (sdb_debug_hooks): Update.
15234         (sdbout_global_decl): If we can't emit something right now,
15235         remember it in deferred_global_decls.
15236         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
15237         (sdbout_init): Initialize deferred_global_decls.
15238         * Makefile.in: Update dependencies of sdbout.o.
15239         * dwarf2out.c (dwarf2out_type_decl): New function.
15240         (dwarf2_debug_hooks): Update.
15241         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
15242         * c-decl.c (getdecls): Just return 0.
15243         (check_for_loop_decls): Don't use getdecls.
15244         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
15245         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
15246
15247 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
15248
15249         * config/s390/s390.c (s390_sched_reorder2): Remove.
15250         (TARGET_SCHED_REORDER2): Do not redefine.
15251
15252 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15253
15254         * c-parse.in (maybe_type_qual): Delete.
15255         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
15256         (asm_argument): New grammar rules.
15257         (extdef_1): Use asmdef.
15258         (maybeasm): Move down with other asm rules; use simple_asm_expr.
15259         (xexpr): Move up with other expression rules.
15260         (stmt): Use asm_stmt.
15261
15262         * c-typeck.c (build_asm_expr): New function - body mostly
15263         pulled from build_asm_stmt.
15264         (build_asm_stmt): Just handle tacking on the volatile qualifier.
15265         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
15266
15267 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
15268
15269         PR bootstrap/13617
15270         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
15271         (mips_declare_object): Make variadic.
15272         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
15273         mips_output_aligned_decl_common.
15274         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
15275         (mips_declare_object): Make variadic.
15276
15277 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15278
15279         * function.c (update_epilogue_consts): Teach about binary operations.
15280
15281         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
15282         previous MEM_VOLATILE in REF.
15283         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
15284         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
15285
15286 2004-02-12  Gunther Nikl  <gni@gecko.de>
15287
15288         * config.gcc: Restore support for m68k-openbsd.
15289
15290 2004-02-12  Jan Hubicka  <jh@suse.cz>
15291
15292         * tree-optimize.c (tree_rest_of_compilation): Do not release
15293         DECL_ARGUMENTS.
15294
15295 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
15296
15297         * doc/install.texi: Fix the spelling of "explicitly".
15298
15299 2004-02-11  Eric Christopher  <echristo@redhat.com>
15300
15301         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
15302         duplicate argument structure of cpp_interpret_string.
15303         * cpphash.h: Move prototype...
15304         * cpplib.h: Here.
15305         * cpplib.c: Fix calls to match new function signature.
15306
15307 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15308
15309         PR c/456
15310         * cppexp.c (num_binary_op): Don't allow comma operators in #if
15311         constant expressions at all outside C99 mode if pedantic.
15312
15313 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
15314
15315         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
15316         (log10_optab, log2_optab): Define corresponding macros.
15317         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
15318         * genopinit.c (optabs): Implement log10_optab and log2_optab
15319         using log10?f2 and log2?f2 patterns.
15320         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
15321         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
15322         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
15323         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
15324
15325         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
15326         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
15327         log2, log2f and log2l built-ins as inline x87 intrinsics.
15328
15329 2004-02-11  Richard Henderson  <rth@redhat.com>
15330
15331         PR target/1532
15332         * flow.c (insn_dead_p): A clobber of a dead hard register is a
15333         dead insn after reload.
15334
15335 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
15336
15337         * tree.h (frame_base_decl): Add GTY marker.
15338         * var-tracking.c (frame_base_decl): Likewise.
15339
15340 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
15341
15342         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
15343         incorrect, hunk.
15344         (add_location_or_const_value_attribute): Use text_section_label,
15345         not TEXT_SECTION_NAME.
15346
15347 2004-02-11  Per Bothner  <per@bothner.com>
15348
15349         Represent column numbers using line-map's source_location.
15350         The "next available source_location" is now managed internally by
15351         line-maps.c rather than by clients.
15352         * line-map.h (struct line_map):  New field column_bits.
15353         <from_line>:  Rename field to start_location.
15354         (struct line_maps):  New fields highest_location and max_column_hint.
15355         (linemap_check_files_exited):  New declaration.
15356         (linemap_line_start):  New declaration.
15357         (linemap_add):  Remove from_line parameter; use highest_location field.
15358         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
15359         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
15360         (CURRENT_LINE_MAP):  Remove macro.
15361         (linemap_position_for_column):  New inline function.
15362         * line-map.c (linemap_init):  Clear new fields.
15363         (linemap_check_files_exited):  New function, extracted from ...
15364         (linemap_free):  Use linemap_check_files_exited.
15365         (linemap_add):  Remove from_line parameter.  Various updates.
15366         (linemap_line_start):  New function.
15367         (linemap_lookeup):  Update for new field names.
15368         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
15369         linemap_position_for_column may unpredictably change the current map,
15370         it is cleaner and simpler for us to not cache it in cpp_reader.
15371         (struct cpp_buffer):  New sysp field.
15372         Changed warned_cplusplus_comments and from_stage3 to bitfields.
15373         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
15374         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
15375         current map using linemap_lookup.
15376         (do_linemarker):  Also set buffer's sysp field.
15377         (destringize_and_run):  No longer need to decrement current line.
15378         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
15379         (search_path_head, open_file_failed):  Use buffer's sysp.
15380         (cpp_make_system_header):  Get current map using linemap_lookup.
15381         Also set buffer's sysp flag.
15382         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
15383         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
15384         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
15385         (struct cpp_reader):  ... and adding saved_line_base field.
15386         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
15387         Update accordingly.  Don't adjust line.
15388         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
15389         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
15390         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
15391         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
15392         * cpplex.c (_cpp_lex_direct):  Likewise.
15393         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
15394         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
15395         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
15396         Remove col field as it is now subsumed by src_loc.
15397         * cpperror.c:  Update various field, parameter, and macro names.
15398         (print_location):  If col==0, try SOURCE_COLUMN of line.
15399         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
15400         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
15401         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
15402         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
15403         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
15404         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
15405         (_cpp_lex_direct):  Use linemap_position_for_column.
15406         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
15407         parameter.  Instead get it from the line_table global.  Adjust callers.
15408         (print):  Remove map field.  Replace line field to src_line.
15409         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
15410         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
15411         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
15412         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
15413         * cpptrad.c (copy_comment):  Rename variable.
15414         * c-lex.c (map):  Remove static variable, for same reason we removed
15415         cpp_reader's map field.
15416         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
15417         to call linemap_lookup.
15418         (cb_line_change):  Token's line field replaced by src_loc.
15419         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
15420         Don't save new_map.
15421
15422         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
15423         source_location.
15424
15425 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15426
15427         * config/rs6000/altivec.md (*movv4si_internal): At least one
15428         operand must be register_operand.
15429         (*movv8hi_internal1): Likewise.
15430         (*movv16qi_internal1): Likewise.
15431         (*movv4sf_internal1): Likewise.
15432
15433 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
15434
15435         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
15436         operand.
15437         (movv4hi_internal): Same.
15438         (movv2sf_internal): Same.
15439         (movv1di_internal): Same.
15440
15441 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
15442
15443         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
15444         TARGET_OLDABI consistently.
15445         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
15446         mips_va_arg,override_options,compute_frame_size,
15447         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
15448         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
15449         and TARGET_OLDABI consistently.
15450         * config/mips/mips.md (exception_receiver): Likewise.
15451         * config/mips/linux64.h: Likewise.
15452
15453 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15454
15455         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
15456         Set AltiVec ABI and vrsave as default for ppc64 linux.
15457         (init_cumulative_args): Post error, if try to return
15458         value in AltiVec register without enable AltiVec.
15459         (function_arg_advance): Ditto for passing arguments.
15460
15461 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
15462
15463         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
15464         a label before updating its usage count.
15465
15466 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
15467
15468         * doc/install.texi: Remove extra cd.
15469
15470 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
15471
15472         * c-common.c (vector_size_helper): Remove; call
15473         reconstruct_complex_type() instead.
15474         * tree.c (reconstruct_complex_type): New function
15475         (formerly vector_size_helper() in c-common.c).
15476         (make_vector): Make externally visible.
15477         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
15478
15479 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15480
15481         * config/h8300/h8300-protos.h: Add a prototype for
15482         h8300_regs_ok_for_stm.
15483         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
15484         * config/h8300/h8300.md (stm_h8300s_2_advanced,
15485         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
15486         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
15487         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
15488         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
15489         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
15490         ldm_h8300s_4_normal, ldm_h8300s_4): Use
15491         h8300_regs_ok_for_stm().
15492
15493 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
15494
15495         PR c/14088
15496         * real.c (real_from_string): Look for 'X' as well as 'x' in
15497         hexfloat strings.
15498
15499 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15500
15501         * config/h8300/h8300.md: Remove an incorrect comment about
15502         peephole2.  Add comments.
15503
15504 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
15505
15506         PR/14058
15507         * emit-rtl.c (set_decl_incoming_rtl): New.
15508         * tree.h (set_decl_incoming_rtl): New.
15509         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
15510         DECL_INCOMING_RTL.
15511         * ada/misc.c (adjust_decl_rtl): Likewise.
15512
15513 2004-02-10  Per Bothner  <per@bothner.com>
15514
15515         * c-opts.c (c_common_post_options):   Don't emit working directory
15516         in cpp output if -P was specified.
15517
15518 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15519
15520         PR c/14092
15521         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
15522         negate_expr back to the original type.
15523
15524 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
15525
15526         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
15527         bump retaddr here.
15528
15529 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15530
15531         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
15532         gen_lowpart_SUBREG): Move under the file in which they
15533         are actually declared.
15534
15535 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
15536
15537         * doc/sourcebuild.texi: Add libada documentation.
15538
15539         * doc/install.texi: Update documentation on Ada build, now
15540         that the GNAT lib and tools are built automatically.
15541
15542 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
15543
15544         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
15545         && TARGET_IRIX.
15546
15547 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
15548
15549         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
15550         boundaries outside build_component_ref() call (a macro in ObjC++).
15551
15552 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
15553
15554         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
15555         (init_cumulative_args): Likewise.
15556         (a7_overlap_mentioned_p): Delete prototype.
15557         * config/xtensa/xtensa.c (struct machine_function): Replace
15558         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
15559         Add set_frame_ptr_insn field.
15560         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
15561         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
15562         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
15563         at the function entry and replace the operand with the pseudo.
15564         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
15565         argument and record this flag in CUMULATIVE_ARGS.
15566         (function_arg): Remove result_mode and special-case code to handle
15567         arguments in a7.  Instead, set need_a7_copy flag when there is an
15568         incoming argument in a7.
15569         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
15570         and use the value recorded in cfun->machine->set_frame_ptr_insn.
15571         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
15572         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
15573         special-case code.
15574         (a7_overlap_mentioned_p): Delete.
15575         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
15576         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
15577         arguments to init_cumulative_args and pass "incoming" flag instead.
15578         (BLOCK_REG_PADDING): Delete.
15579         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
15580         checks for reload_in_progress and reload_completed.  Update calls to
15581         xtensa_copy_incoming_a7.
15582         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
15583         to call xtensa_copy_incoming_a7.
15584
15585 2004-02-09  DJ Delorie  <dj@redhat.com>
15586
15587         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
15588         longer modify standard_exec_prefix, standard_bindir_prefix, or
15589         standard_startfile_prefix.
15590
15591 2004-02-09  James E Wilson  <wilson@specifixinc.com>
15592
15593         PR c++/11295
15594         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
15595         to expand_expr_real call, and pass in alt_rtl as last argument.
15596
15597         PR libstdc++/5625
15598         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
15599         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
15600         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
15601         * except.c (expand_builtin_extend_pointer): New.
15602         * except.h (expand_builtin_extend_pointer): Declare.
15603
15604 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
15605
15606         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
15607         unaligned loads and stores.
15608
15609 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15610
15611         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
15612         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
15613
15614         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
15615         * config/mips/iris5.h: ... here.
15616         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
15617
15618         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
15619         * config/mips/iris5.h: ... here.
15620
15621 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15622
15623         * configure.ac: Remove default executable files before AC_PROG_CC.
15624         * configure: Regenerate.
15625
15626 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
15627
15628         PR target/13721
15629         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
15630         print a operand other than a register.
15631
15632 2004-02-09  Roger Sayle  <roger@eyesopen.com>
15633
15634         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
15635         tree code rather than call fold_convert, which doesn't specify a
15636         default floating point to integer conversion.
15637
15638 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
15639
15640         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
15641         code to support SGS assembler.  Reformat adjacent code where possible.
15642         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
15643         definition.
15644         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
15645         for '%#'.
15646         * config/m68k/linux.h, config/m68k/m68k.c,
15647         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
15648         macros and asm_printf() format strings.
15649         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
15650         * config/m68k/linux.h: Update copyright.
15651         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
15652
15653 2004-02-08  Andreas Schwab  <schwab@suse.de>
15654             Bernardo Innocenti  <bernie@develer.com>
15655
15656         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
15657         REGISTER_PREFIX.
15658         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
15659         frame pointer register, overridable by OS targets.
15660         * (M68K_REGNAME): Macro to obtain register name for asm output,
15661         eventually replacing %a6 with M68K_FP_REG_NAME.
15662         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
15663         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
15664         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
15665         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
15666         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
15667
15668 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15669
15670         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
15671         hook_rtx_tree_int_null.
15672         * targhooks.c (default_struct_value_rtx): Remove.
15673         * targhooks.h: Remove the prototype for
15674         default_struct_value_rtx.
15675         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
15676         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
15677         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15678         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
15679         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
15680         config/rs6000/rs6000.c, config/s390/s390.c,
15681         config/stormy16/stormy16.c, config/v850/v850.c,
15682         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
15683         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
15684
15685 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
15686
15687         * README.Portability: Change "ISO C89" to "ISO C90".
15688         * c-parse.in (primary, initelt): Likewise.
15689
15690 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
15691
15692         * real.c (encode_ibm_extended): Normalize the input value before
15693         converting it to a double.  Handle the case where a normal value
15694         rounds to infinity.
15695
15696 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15697
15698         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
15699         warning.
15700         * cse.c (preferrable): Change to preferable. Update all of its
15701         callers.
15702         * genautomata.c (ainsn): Change
15703         first_ainsn_with_given_equialence_num to
15704         first_ainsn_with_given_equivalence_num.  Update all of its
15705         references.
15706
15707 2004-02-08  Jan Hubicka  <jh@suse.cz>
15708
15709         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
15710
15711 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
15712
15713         * function.c (assign_parms): Fix formatting.
15714
15715 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15716
15717         * default.h (PROMOTE_PROTOTYPES): Remove.
15718         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
15719         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
15720         EXPAND_BUILTIN_SAVEREGS): Poison.
15721         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
15722         hook_bool_tree_false.
15723         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15724         * target.h: Replace SETUP_INCOMING_VARARGS with
15725         targetm.calls.setup_incoming_varargs().
15726         * targhooks.c (default_promote_function_return): Remove.
15727         (default_promote_prototypes): Likewise.
15728         (default_struct_value_rtx): Always abort().
15729         (default_expand_builtin_saveregs): Always print an error
15730         message.
15731         (default_setup_incoming_varargs): Do nothing.
15732         (default_pretend_outgoing_varargs_named): Don't depend on
15733         SETUP_INCOMING_VARARGS.
15734         * targhooks.h: Remove the prototype for
15735         default_promote_function_return and
15736         default_promote_prototypes.
15737
15738 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15739
15740         * system.h (SHARED_SECTION_ASM_OP): Poison.
15741         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
15742         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
15743
15744 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15745
15746         Bug 13856
15747         * c-decl.c (diagnose_mismatched_decls): Only give special
15748         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
15749         is also true.
15750         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
15751         DECL_FUNCTION_CODE when defining a built-in function.
15752         Don't update DECL_ESTIMATED_INSNS.
15753         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
15754         FUNCTION_DECLs.
15755         * tree.h: Delete DECL_ESTIMATED_INSNS.
15756         * tree-inline.c (struct inline_data): Delete inlined_insns field.
15757         (expand_call_inline, optimize_inline_calls): Don't update
15758         DECL_ESTIMATED_INSNS nor inlined_insns.
15759         * cgraphunit.c (cgraph_analyze_function): Don't update
15760         DECL_ESTIMATED_INSNS.
15761
15762 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15763
15764         * c-common.c (shadow_warning): Delete.
15765         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
15766         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
15767         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
15768         * c-parse.in (free_parser_stacks): Delete.
15769
15770 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
15771
15772         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
15773         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
15774         Use the top level mkinstalldirs, not the one in the gcc subdir.
15775         * mkinstalldirs: Remove (from the gcc subdir).
15776
15777 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15778
15779         PR middle-end/13696
15780         * fold-const.c (fold_convert): New function to provide type
15781         conversion to the middle-end without using convert.
15782         (negate_expr, associate_trees, size_diffop, omit_one_operand,
15783         operand_equal_for_comparison_p, pedantic_omit_one_operand,
15784         invert_truthvalue, optimize_bit_field_compare, range_binop,
15785         decode_field_reference, make_range, build_range_check, unextend,
15786         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
15787         fold_binary_op_with_conditional_arg, fold_inf_compare,
15788         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
15789         convert with calls to fold_convert.
15790
15791 2004-02-07  Jan Hubicka  <jh@suse.cz>
15792
15793         * genrecog.c (find_operand): add extra argument stop.
15794         (validate_pattern): Verify that mach_dup is duplicating operand
15795         defined lexically earlier.
15796
15797 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15798
15799         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
15800         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15801         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
15802         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
15803         config/ia64/ia64.h, config/ip2k/ip2k.h,
15804         config/iq2000/iq2000.h, config/mips/iris5.h,
15805         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
15806         config/rs6000/aix51.h, config/rs6000/aix52.h,
15807         config/rs6000/darwin.h, config/rs6000/rs6000.h,
15808         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
15809         config/sparc/linux.h, config/sparc/linux64.h,
15810         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
15811         config/xtensa/xtensa.h: Remove the definitions of
15812         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
15813         MAX_WCHAR_TYPE_SIZE.
15814         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15815         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
15816
15817 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
15818
15819         PR bootstrap/13990
15820         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
15821         gen_rtx_NE.
15822
15823 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
15824
15825         * var-tracking.c (vt_add_function_parameters): Surround checkings by
15826         #ifdef ENABLE_CHECKING and #endif.
15827
15828 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15829
15830         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
15831         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
15832         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
15833         integer types and floating point with unsafe_math_optimizations.
15834         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
15835         Optimize A - B as A + (-B), if B is easily negated.
15836
15837 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15838
15839         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
15840         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
15841         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
15842         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
15843         Update copyright.
15844
15845 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15846
15847         * c-ppoutput.c, var-tracking.c: Fix comment typos.
15848
15849 2004-02-06  James E Wilson  <wilson@specifixinc.com>
15850
15851         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
15852         glibc 2.3 or better.
15853
15854 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15855
15856         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
15857         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
15858
15859 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
15860
15861         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
15862         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
15863         (SHLIB_MKMAP_OPTS): Delete.
15864         (TARGET_LIBGCC2_CFLAGS): Add -specs.
15865         (bispecs): Add rule.
15866         * config/rs6000/libgcc-ppc64.ver: New file.
15867         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
15868         (__floatdidf, __floatdisf): Optimize multiply.
15869         (__fixunstfdi): New function.
15870         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
15871         real and imag parts larger than one register.
15872         (function_arg): Correct type of reg used when fp arg split partially
15873         to stack.
15874         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
15875         and __MACH__ or __powerpc64__.
15876
15877 2004-02-06  Roger Sayle  <roger@eyesopen.com>
15878             Ulrich Weigand  <uweigand@de.ibm.com>
15879
15880         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
15881         of gen_highpart or gen_lowpart when the floating point format is
15882         wider than the result mode.
15883
15884 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
15885
15886         * dwarf2out.c (loclabel_num): Move into #ifdef
15887         DWARF2_DEBUGGING_INFO.
15888
15889 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
15890
15891         * objc/objc-act.c (build_super_template) the 'class' field of
15892         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
15893         (get_super_receiver): Likewise.
15894
15895 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15896
15897         * reload1.c (check_eliminable_occurrences): Optimize the reset
15898         of can_eliminate.
15899         (eliminate_regs_in_insn): Likewise.
15900
15901 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
15902             Josef Zlomek  <zlomekj@suse.cz>
15903
15904         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
15905         at the beginning of function, call dwarf2out_var_location for
15906         NOTE_INSN_VAR_LOCATION note.
15907         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
15908         decl_loc_table): New.
15909         (lookup_decl_loc): New function.
15910         (add_var_loc_to_decl): New function.
15911         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
15912         only if can_use_fbreg.
15913         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
15914         functions.
15915         (loc_descriptor): Likewise. Process VAR_LOCATION.
15916         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
15917         (loc_descriptor_from_tree): Call mem_loc_descriptor with
15918         can_use_fbreg == true.
15919         (add_location_or_const_value_attribute): Added parameter enum
15920         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
15921         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
15922         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
15923         with attr == DW_AT_location.
15924         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
15925         if frame_base_decl is defined and has a location list.
15926         (gen_variable_die): Call add_location_or_const_value_attribute with
15927         attr == DW_AT_location.
15928         (dwarf2out_var_location): New function.
15929         (dwarf2out_begin_function): New function.
15930         (dwarf2out_init): Create decl_loc_table.
15931
15932 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15933
15934         * loop.c (force_movables): Transitively increase the priorities of
15935         all insns forces by an insn, not just the first one.
15936
15937 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
15938             Daniel Berlin <dberlin@dberlin.org>
15939
15940         Josef Zlomek  <zlomekj@suse.cz>
15941         * Makefile.in (var-tracking.o): New.
15942         * common.opt (fvar-tracking): New.
15943         * flags.h (flag_var_tracking): New.
15944         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
15945         * opts.c (common_handle_option): Add OPT_fvar_tracking.
15946         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
15947         * rtl.c (note_insn_name): Likewise.
15948         * rtl.def (VAR_LOCATION): New.
15949         * rtl.h (NOTE_VAR_LOCATION): New.
15950         (NOTE_VAR_LOCATION_DECL): New.
15951         (NOTE_VAR_LOCATION_LOC): New.
15952         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
15953         (variable_tracking_main): New exported function.
15954         * timevar.def (TV_VAR_TRACKING): New.
15955         * toplev.c (enum dump_file_index): Added DFI_vartrack.
15956         (dump_file): "vartrack" was added (-dV).
15957         (flag_var_tracking): New.
15958         (f_options): "var-tracking" was added.
15959         (rest_of_handle_variable_tracking): New function.
15960         (rest_of_compilation): Run variable tracking.
15961         (process_options): If user has not specified flag_var_tracking set it
15962         according to optimize, debug_info_level and debug_hooks.
15963         * tree.h (frame_base_decl): New.
15964         * var-tracking.c: New file.
15965         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
15966         (ia64_override_options): Set flags to run variable tracking in machine
15967         dependent reorg instead of toplev.c.
15968         (ia64_reorg): Run variable tracking if wanted.
15969         * doc/invoke.texi: Mention variable tracking in -dV,
15970         add and -fvar-tracking.
15971         * doc/passes.texi: Added variable tracking pass.
15972
15973         Daniel Berlin <dberlin@dberlin.org>
15974         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
15975         * dbxout.c (dbx_debug_hooks): Likewise.
15976         (xcoff_debug): Likewise.
15977         * debug.c (do_nothing_debug_hooks): Likewise.
15978         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15979         * dwarfout.c (dwarf_debug_hooks): Likewise.
15980         * sdbout.c (sdb_debug_hooks): Likewise.
15981         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15982         * final.c (final_scan_insn): Call var_location debug hook for each
15983         NOTE_INSN_VAR_LOCATION.
15984
15985 2004-02-06  Jan Hubicka  <jh@suse.cz>
15986
15987         * flow.c (update_life_info): Allocate reg_deaths when called from
15988         scheudler.
15989         (attempt_auto_inc):  Update life ranges accordingly.
15990
15991 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15992
15993         PR debug/11816
15994         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
15995
15996 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15997
15998         * cfganal.c (flow_call_edges_add): Never split a libcall block.
15999
16000 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
16001
16002         * dwarf2out.c (output_loc_list): Don't use deltas if we have
16003         a separate line info table in use.
16004         Use the correct size for terminators.
16005         (output_die): Use offset, not delta.
16006
16007 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
16008
16009         * doc/invoke.texi: Remove the pni option from -mfpmath=.
16010
16011 2004-02-06  Jan Hubicka  <jh@suse.cz>
16012
16013         * recog.c (split_all_insns): Do not update reg info.
16014         * regrename.c (regrename_optimize): Likewise.
16015         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
16016         * flow.c (struct propagate_block_info): Add insn_num field.
16017         (reg_deaths): New array.
16018         (life_analysis): Free reg_deaths info.
16019         (allocate_reg_life_data): Allocate reg_deaths array.
16020         (propagate_one_insn): Use new array.
16021         (init_propagate_block): Initialize it.
16022         (free_propagate_block_info): Finish compuation of
16023         REG_LIVE_LENGTH
16024         (attempt_auto_inc): Sanity check that REG_INFO is not
16025         computed at same time.
16026         (mark_used_regs): Update new array.
16027
16028         * reg-stack.c (subst_stack_regs): Unshare clobbers before
16029         substitution.
16030
16031 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
16032
16033         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
16034         *extendqisi2_short_displ.
16035
16036 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
16037
16038         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
16039         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
16040         (emit_library_call_value_1): Likewise pass nargs.
16041         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
16042         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
16043         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
16044         parameter instead of scanning TYPE_ARGS_TYPES to count args.
16045         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
16046         prototype.
16047         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
16048         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
16049         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
16050         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
16051         INIT_CUMULATIVE_ARGS.
16052         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
16053         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
16054         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
16055         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
16056         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
16057         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
16058         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
16059         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
16060         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
16061         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
16062         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
16063         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
16064
16065 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
16066
16067         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
16068         possible.
16069
16070 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
16071
16072         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
16073         note containing (plus (reg) (const_int)), where reg is an
16074         eliminable reg, then perform the register elimination without
16075         depending on eliminate_regs().
16076
16077 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
16078
16079         * config/arc/arc.c (arc_return_in_memory): Check the return
16080         value of int_size_in_bytes against -1.  Don't check
16081         TREE_ADDRESSABLE.
16082         * config/avr/avr.c (avr_return_in_memory): Check the return
16083         value of int_size_in_bytes against -1.
16084         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
16085         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
16086         Likewise.
16087         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
16088         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
16089         Likewise.
16090
16091 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
16092
16093         * config/frv/frv-protos.h: Remove the prototype for
16094         frv_setup_incoming_varargs.
16095         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
16096         (frv_setup_incoming_varargs): Make it static.
16097         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
16098
16099 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
16100
16101         * config/fr30/fr30-protos.h: Remove the prototype for
16102         fr30_setup_incoming_varargs.
16103         Update the prototypes for fr30_num_arg_regs and
16104         fr30_function_arg_partial_nregs.
16105         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
16106         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16107         (fr30_setup_incoming_varargs): Make it static.
16108         Add argument second_time.  Don't do anything when second_time
16109         is nonzero.
16110         (fr30_num_arg_regs): Change the type of the first argument to
16111         enum machine_mode.
16112         (fr30_function_arg_partial_nregs): Change the type of the
16113         second argument to enum machine_mode.
16114         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
16115         (SETUP_INCOMING_VARARGS): Remove.
16116
16117 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
16118
16119         * config/arc/arc-protos.h: Remove the prototype for
16120         arc_setup_incoming_varargs.
16121         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
16122         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16123         (arc_setup_incoming_varargs): Make it static.
16124         (arc_external_libcall): Likewise.
16125         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
16126         Remove the commented-out definition of
16127         ASM_OUTPUT_EXTERNAL_LIBCALL.
16128
16129 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
16130
16131         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
16132         to $$(slibdir) in the installation commands.
16133
16134 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
16135
16136         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
16137         with inner_regno, not regno.
16138         * rtlanal.c (refers_to_regno_p): Same.
16139
16140 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16141
16142         * config.gcc: Remove i370 support.
16143
16144 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
16145
16146         * doc/install.texi:  Update automake and autoconf version
16147         requirements.  Note where to find gcj automake version.
16148
16149 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
16150
16151         * Makefile.in (generate-manpages): Move dependencies to ...
16152         (man): here.
16153         * doc/makefile.texi: Document new targets.
16154         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
16155
16156 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
16157
16158         PR/13485
16159         Makefile.in (srcextra):  Add a level of indirection to ...
16160         (gcc.srcextra): ... here.
16161         (po-generated): Delete.
16162         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
16163         options.c.
16164         (start.encap): Remove superfluous lang.srcextra dependency.
16165         objc/Make-lang.in (po-generated):  Delete.
16166
16167 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16168
16169         * config/ia64/ia64.c (REG_GP): Remove.
16170
16171 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16172
16173         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
16174
16175 2004-02-05  Devang Patel  <dpatel@apple.com>
16176
16177         * dwarf2out.c (force_type_die): Look up input type itself
16178         instead of root_type() of type.
16179
16180 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
16181
16182         * config/s390/s390.md ("*tmqidi_ext"): New insn.
16183         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
16184         pre-reload splitters are transformed to post-reload
16185         define_insn_and_split patterns.
16186         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
16187
16188 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16189
16190         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
16191         TARGET_PROMOTE_PROTOTYPES.
16192
16193 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16194
16195         PR middle-end/13750
16196         Revert:
16197         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16198         PR pch/13361
16199         * c-typeck.c (constructor_asmspec): Delete.
16200         (struct initializer_stack): Delete field 'asmspec'.
16201         (start_init): Delete saving of asmspec.
16202         (finish_init): Don't update constructor_asmspec.
16203         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16204         * stmt.c (expand_asm): Duplicate strings from tree.
16205         (expand_asm_operands): Likewise.
16206         * tree.c (tree_size): Update computation of size of STRING_CST.
16207         (make_node): Don't make STRING_CST nodes.
16208         (build_string): Allocate string with tree node.
16209         * tree.def (STRING_CST): Update comment.
16210         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16211         (tree_string): Place contents of string in tree node.
16212         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16213         from tree.
16214
16215 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16216
16217         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
16218         msgid.
16219
16220 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
16221
16222         * config/rs6000/altivec.md (*movv4si_internal): At least one
16223         operand must be altivec_register_operand.
16224         (*movv8hi_internal1): Likewise.
16225         (*movv16qi_internal1): Likewise.
16226         (*movv4sf_internal1): Likewise.
16227
16228 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
16229
16230         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
16231         * configure: Regenerate.
16232
16233 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
16234
16235         * doc/install.texi: Update description of --gxx-include-dir to
16236         give correct default value.
16237
16238 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16239
16240         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
16241         8 with MAC_REG.
16242
16243 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16244
16245         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
16246         gen_rtx_PARALLEL.
16247
16248 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16249
16250         * emit-rtl.c: Update the comment about the file.
16251
16252 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16253
16254         * sourcebuild.texi (Test Idioms): Update testcase naming
16255         conventions.
16256
16257 2004-02-04  Per Bothner  <per@bothner.com>
16258
16259         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
16260         * c-ppoutput.c (pp_dir_change):  New function.
16261         * c-common.h (pp_dir_change):  New declaration.
16262         * cpplib.h (struct cpp_options):  Remove working_directory field.
16263         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
16264         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
16265         Don't handle -fworking_directory here, but in c_common_post_options.
16266         (read_original_directory): Don't back up when done.
16267         Don't clear no-longer used working_directory flag.
16268         * cpplib.h:  Update declarations to match.
16269         * c-lex.c (cb_dir_change):  Move to c-opts.c.
16270         (init_c_lex):  Don't set dir_change callback here, since we want
16271         to set it even if flag_preprocess_only.
16272         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
16273         (c_common_post_options):  Set dir_change callback.
16274         Call pp_dir_change if approporiate.
16275         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
16276         unneeded parameter and result. Do LC_RENAME for <built-in>.
16277         (c_common_post_options):  Call cpp_read_main_file here instead.
16278         (c_common_init):  Update accordingly.
16279         (push_command_line_include):  Don't cpp_push_main_file.
16280         Do LC_RENAME rather than LC_LEASE to get back to main file.
16281         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
16282         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
16283         files, but call finish_options for all files.
16284         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
16285         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
16286         cpp_find_main_file + cpp_push_main_file.
16287         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
16288         * opts.c (handle_options):  Only set main_input_filename first time.
16289
16290 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
16291
16292         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
16293
16294 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
16295
16296         * reload.c (find_equiv_reg): When checking for register overlap,
16297         don't index hard_regno_nregs with a pseudo-reg.
16298
16299 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16300
16301         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
16302
16303 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
16304
16305         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
16306         against FIRST_PSEUDO_REGISTER.
16307
16308 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16309
16310         * Makefile.in: Move target, host overrides after per-language
16311         fragments.
16312
16313         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
16314         (GNATLIBCFLAGS): Remove -g.
16315
16316 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16317
16318         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
16319         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16320         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16321         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
16322         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
16323         config/sparc/sparc.c, config/vax/vax.c: Revert the
16324         replacements of "FALLTHRU" with "Fall through" done in the
16325         previous patch.
16326
16327 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16328
16329         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
16330         config/arm/arm.c, config/arm/arm.md,
16331         config/cris/cris-protos.h, config/fr30/fr30.c,
16332         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
16333         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
16334         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
16335         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
16336         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
16337         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
16338         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
16339         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
16340         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
16341         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
16342         config/s390/s390.md, config/sparc/netbsd-elf.h,
16343         config/sparc/openbsd.h, config/sparc/sparc.c,
16344         config/xtensa/lib2funcs.S: Fix comment formatting.
16345
16346 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16347
16348         * config/alpha/alpha.c, config/arc/arc.c,
16349         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
16350         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
16351         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
16352         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
16353         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16354         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16355         config/iq2000/iq2000.c, config/m32r/m32r.c,
16356         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
16357         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
16358         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
16359         config/rs6000/rs6000.h, config/sparc/sparc.c,
16360         config/vax/vax.c: Fix comment typos.  Follow spelling
16361         conventions.
16362
16363 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16364
16365         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
16366         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
16367         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
16368         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
16369         config/arm/fpa.md, config/arm/iwmmxt.md,
16370         config/arm/netbsd-elf.h, config/arm/netbsd.h,
16371         config/m68hc11/m68hc11.md, config/mips/iris5.h,
16372         config/mn10300/mn10300.md, config/rs6000/altivec.md,
16373         config/sparc/netbsd-elf.h: Update copyright.
16374
16375 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16376
16377         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16378         for all modes whose size is greater than 8 bytes if ARCH32.
16379         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
16380         by reference if ARCH32.
16381
16382 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
16383
16384         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
16385
16386 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16387
16388         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
16389         to before adddi3 insn patterns.
16390         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
16391         "reload_insi"): Move to before addsi3 insn patterns.
16392
16393 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
16394
16395         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
16396         parameter.  Use it instead of current_function_is_thunk.
16397         * function.h (struct function): Update documentation for is_thunk.
16398         * tree.h (CALL_FROM_THUNK_P): New macro.
16399         * config/alpha/alpha.c (alpha_sa_mask): Do not check
16400         no_new_pseudos when testing current_function_is_thunk.
16401         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
16402
16403 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16404
16405         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
16406         TARGET_SETUP_INCOMING_VARARGS.
16407
16408 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16409
16410         * emit-rtl.c (gen_rtx): Remove.
16411         * genattrtab.c: Don't mention gen_rtx in a comment.
16412         * rtl.h: Remove the prototype for gen_rtx.
16413         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
16414
16415 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16416
16417         * config/arc/arc.h, config/fr30/fr30.h
16418         (SETUP_INCOMING_VARARGS): Remove the target-independent
16419         comments.
16420         * doc/tm.texi: Don't mention deprecated target macros.
16421
16422 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16423
16424         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
16425         target-independent comment.
16426
16427 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16428
16429         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
16430         mention deprecated target macros.
16431
16432 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16433
16434         * config.gcc: Remove obsolete ports and configurations.
16435         * config/linux-aout.h, config/netware.h,
16436         config/t-linux-gnulibc1, config/d30v/abi,
16437         config/d30v/d30v-protos.h, config/d30v/d30v.c,
16438         config/d30v/d30v.h, config/d30v/d30v.md,
16439         config/d30v/libgcc1.asm, config/d30v/t-d30v,
16440         config/dsp16xx/dsp16xx-modes.def,
16441         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
16442         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
16443         config/i370/README, config/i370/i370-c.c,
16444         config/i370/i370-protos.h, config/i370/i370.c,
16445         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
16446         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
16447         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
16448         config/i386/moss.h, config/i386/netware.h,
16449         config/i386/svr3.ifile, config/i386/svr3dbx.h,
16450         config/i386/svr3gas.h, config/i386/svr3z.ifile,
16451         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
16452         config/i960/i960-c.c, config/i960/i960-coff.h,
16453         config/i960/i960-modes.def, config/i960/i960-protos.h,
16454         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
16455         config/i960/rtems.h, config/i960/t-960bare,
16456         config/m68k/hp310.h, config/m68k/hp320.h,
16457         config/m68k/hp320base.h, config/m68k/m68kv4.h,
16458         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
16459         Remove.
16460         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
16461         doc/md.texi: Remove mentions of obsolete ports.
16462
16463 2004-02-04  Jan Hubicka  <jh@suse.cz>
16464
16465         * alias.c (find_base_term, get_addr):  Do not dereference NULL
16466         pointer when all VALUE's locations has been invalidated.
16467         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
16468
16469 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
16470
16471         * doc/invoke.texi (x86 options): Fix spelling/wording.
16472
16473 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
16474
16475         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
16476         put the original string in a comment.
16477         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
16478         * config/mips/mips.c (mips_output_ascii): Likewise.
16479         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
16480
16481 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16482
16483         * system.h (GIV_SORT_CRITERION): Poison.
16484         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
16485         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
16486
16487 2004-02-03  Roger Sayle  <roger@eyesopen.com>
16488
16489         PR target/9348
16490         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
16491         multiplies with a multiplication of the wrong signedness, its the
16492         signedness of the multiplication that we've performed that needs to
16493         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
16494         if expand_mult_highpart_adjust places the result in target.
16495
16496 2004-02-03  Richard Henderson  <rth@redhat.com>
16497
16498         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
16499
16500 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
16501
16502         * config.gcc (sh[234]l): Use little endian fragments.
16503
16504 2004-02-03  Paul Koning  <pkoning@equallogic.com>
16505
16506         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
16507         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
16508         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
16509         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
16510         floating point format.
16511         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
16512         the above functions.
16513         (output_move_quad): Output float values in correct target format.
16514         (legitimate_const_double_p): New function.
16515         * config/pdp11/pdp11.h: Fix typos.
16516         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
16517         (TARGET_FLOAT_FORMAT): Ditto.
16518         (pdp11_f_format, pdp11_d_format): Add external declarations.
16519         (MAX_REGS_PER_ADDRESS): Corrected.
16520         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
16521         (PRINT_OPERAND): Output float literals in target format.
16522
16523 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
16524
16525         PR c++/13975
16526         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
16527         TI_PRIVATE.
16528         (access_public_node): Redefine.
16529         (access_protected_node): Likewise.
16530         (access_private_node): Likewise.
16531         * tree.c (build_common_tree_nodes): Create access_public_node,
16532         access_protected_node, and access_private_node.
16533
16534 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
16535
16536         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
16537         (MASK_INLINE_INT_DIV_THR): Ditto.
16538         (MASK_INLINE_SQRT_LAT): Ditto.
16539         (MASK_INLINE_SQRT_THR): Ditto.
16540         (MASK_DWARF2_ASM): Ditto.
16541         (MASK_EARLY_STOP_BITS): Ditto.
16542
16543 2004-02-02  Paul Brook  <paul@codesourcery.com>
16544
16545         Merge from csl-arm-branch.
16546
16547         2004-01-30  Paul Brook  <paul@codesourcery.com>
16548
16549         * aof.h (REGISTER_NAMES): Add vfp reg names
16550         (ADDITIONAL_REGISTER_NAMES): Ditto.
16551         * aout.h (REGISTER_NAMES): Ditto.
16552         (ADDITIONAL_REGISTER_NAMES): Ditto.
16553         * arm-protos.h: Update/Add Prototypes.
16554         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
16555         Only allow 0.0 for VFP.
16556         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
16557         (values_fp): Rename from values_fpa.  Update Users.
16558         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
16559         Update users.  Only check valid constants for this hardware.
16560         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
16561         Only allow consts for FPA.
16562         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
16563         Only allow consts for FPA.
16564         (use_return_insn): Check for saved VFP regs.
16565         (arm_legitimate_address_p): Handle VFP DFmode addressing.
16566         (arm_legitimize_address): Ditto.
16567         (arm_general_register_operand): New function.
16568         (vfp_mem_operand): New function.
16569         (vfp_compare_operand): New function.
16570         (vfp_secondary_reload_class): New function.
16571         (arm_float_compare_operand): New function.
16572         (vfp_print_multi): New function.
16573         (vfp_output_fstmx): New function.
16574         (vfp_emit_fstm): New function.
16575         (arm_output_epilogue): Output VPF reg restore code.
16576         (arm_expand_prologue): Output VFP reg save code.
16577         (arm_print_operand): Add 'P'.
16578         (arm_hard_regno_mode_ok): Return modes for VFP regs.
16579         (arm_regno_class): Return classes for VFP regs.
16580         (arm_compute_initial_elimination_offset): Include space for VFP regs.
16581         (arm_get_frame_size): Ditto.
16582         * arm.h (FIXED_REGISTERS): Add VFP regs.
16583         (CALL_USED_REGISTERS): Ditto.
16584         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
16585         (FIRST_VFP_REGNUM): Define.
16586         (LAST_VFP_REGNUM): Define.
16587         (IS_VFP_REGNUM): Define.
16588         (FIRST_PSEUDO_REGISTER): Include VFP regs.
16589         (HARD_REGNO_NREGS): Handle VFP regs.
16590         (REG_ALLOC_ORDER): Add VFP regs.
16591         (enum reg_class): Add VFP_REGS.
16592         (REG_CLASS_NAMES): Ditto.
16593         (REG_CLASS_CONTENTS): Ditto.
16594         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
16595         (REG_CLASS_FROM_LETTER): Add 'w'.
16596         (EXTRA_CONSTRAINT_ARM): Add 'U'.
16597         (EXTRA_MEMORY_CONSTRAINT): Define.
16598         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
16599         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
16600         (REGISTER_MOVE_COST): Ditto.
16601         (PREDICATE_CODES): Add arm_general_register_operand,
16602         arm_float_compare_operand and vfp_compare_operand.
16603         * arm.md (various): Rename as above.
16604         (divsf3): Enable when TARGET_VFP.
16605         (divdf3): Ditto.
16606         (movdfcc): Ditto.
16607         (sqrtsf2): Ditto.
16608         (sqrtdf2): Ditto.
16609         (arm_movdi): Disable when TARGET_VFP.
16610         (arm_movsi_insn): Ditto.
16611         (movsi): Only split with general regs.
16612         (cmpsf): Use arm_float_compare_operand.
16613         (push_fp_multi): Restrict to TARGET_FPA.
16614         (vfp.md): Include.
16615         * vfp.md: New file.
16616         * fpa.md (various): Rename as above.
16617         * doc/md.texi: Document ARM w and U constraints.
16618
16619         2004-01-15  Paul Brook  <paul@codesourcery.com>
16620
16621         * config.gcc: Add with_fpu.  Allow with-float=softfp.
16622         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
16623         Break out of loop when we find a float-abi.  Fix typo.
16624         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
16625         Set -mfloat-abi=.
16626         * doc/install.texi: Document --with-fpu.
16627
16628         2003-01-14  Paul Brook  <paul@codesourcery.com>
16629
16630         * config.gcc (with_arch): Add armv6.
16631         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
16632         * config/arm/arm.c (arm_overrride_options): Ditto.
16633
16634         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
16635
16636         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
16637         (FL_ARCH6): Renamed from FL_ARCH6J.
16638         (arm_arch3m): Renamed from arm_fast_multiply.
16639         (arm_arch6): Renamed from arm_arch6j.
16640         * arm.h: Update all uses of above.
16641         * arm-cores.def: Likewise.
16642         * arm.md: Likewise.
16643
16644         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
16645         not arm6j.  Add entry for arch armv6.
16646
16647         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
16648
16649         * arm.c (arm_emit_extendsi): Delete.
16650         * arm-protos.h (arm_emit_extendsi): Delete.
16651         * arm.md (zero_extendhisi2): Also handle zero-extension of
16652         non-subregs.
16653         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
16654         (thumb_zero_extendhisi2): Only match if not v6.
16655         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
16656         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
16657         (thumb_extendqisi2): Likewise.
16658         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
16659         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
16660         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
16661         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
16662         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
16663         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
16664         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
16665         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
16666         (arm_extendqisi2addsi): Likewise.
16667
16668         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
16669
16670         Revert this change:
16671         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16672         + REG addressing modes.
16673
16674         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16675         + REG addressing modes.
16676
16677         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
16678
16679         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
16680         CONSTANT_P_RTX.
16681
16682         2003-30-12  Paul Brook  <paul@codesourcery.com>
16683
16684         * longlong.h: protect arm inlines with !defined (__thumb__)
16685
16686         2003-30-12  Paul Brook  <paul@codesourcery.com>
16687
16688         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
16689
16690         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
16691
16692         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
16693         change.
16694
16695         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16696
16697         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
16698         to the virtual incoming args pointer for downward stacks.
16699
16700         2003-12-29  Paul Brook  <paul@codesourcery.com>
16701
16702         * config/arm/arm-cores.def: Add cost function.
16703         * config/arm/arm.c (arm_*_rtx_costs): New functions.
16704         (arm_rtx_costs): Remove
16705         (struct processors): Add rtx_costs field.
16706         (all_cores, all_architectures): Ditto.
16707         (arm_override_options): Set targetm.rtx_costs.
16708         (thumb_rtx_costs): New function.
16709         (arm_rtx_costs_1): Remove cases handled elsewhere.
16710         * config/arm/arm.h (processor_type): Add COSTS parameter.
16711
16712         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16713
16714         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
16715         (arm926ejs.md): Include it.
16716         * config/arm/arm926ejs.md: New pipeline description.
16717
16718         2003-12-24  Paul Brook  <paul@codesourcery.com>
16719
16720         * config/arm/arm.c (arm_arch6j): New variable.
16721         (arm_override_options): Set it.
16722         (arm_emit_extendsi): New function.
16723         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
16724         * config/arm/arm.h (arm_arch6j): Declare.
16725         * config/arm/arm.md: Add sign/zero extend insns.
16726
16727         2003-12-23  Paul Brook  <paul@codesourcery.com>
16728
16729         * config/arm/arm.c (all_architectures): Add armv6.
16730         * doc/invoke.texi: Document it.
16731
16732         2003-12-19  Paul Brook  <paul@codesourcery.com>
16733
16734         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
16735         insn patterns to match.
16736         * config/arm/arm-generic.md: Ditto.
16737         * config/arm/cirrus.md: Ditto.
16738         * config/arm/fpa.md: Ditto.
16739         * config/amm/iwmmxt.md: Ditto.
16740         * config/arm/arm1026ejs.md: Ditto.
16741         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
16742         for 11_loadb.
16743
16744         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
16745
16746         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
16747         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
16748         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
16749         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
16750         arm_no_early_mul_dep): Correctly deal with conditional execution,
16751         parallels and single shift operations.
16752         (arm_no_early_alu_shift_value_dep): Define.
16753         * arm.md (attr type): Replace 'normal' with 'alu',
16754         'alu_shift' and 'alu_shift_reg'.
16755         (attr core_cycles): Adjust.
16756         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
16757         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
16758         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
16759         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
16760         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
16761         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
16762         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
16763         attribute appropriately.
16764         * config/arm/arm1026ejs.md (alu_op): Adjust.
16765         (alu_shift_op, alu_shift_reg_op): New.
16766         * config/arm/arm1136.md: Add better bypasses for early
16767         registers. Remove load[234] and store[234] bypasses.
16768         (11_alu_op): Adjust.
16769         (11_alu_shift_op, 11_alu_shift_reg_op): New.
16770
16771         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
16772
16773         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
16774         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
16775         * config/arm/arm.c (arm_no_early_store_addr_dep,
16776         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
16777         * config/arm/arm1026ejs.md: Add load-store bypass.
16778         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
16779         Add bypasses between instructions.
16780
16781         2003-12-10  Paul Brook  <paul@codesourcery.com>
16782
16783         * config/arm/arm.c (arm_fpu_model): New variable.
16784         (arm_fload_abi): New variable.
16785         (target_fpe_name): Rename from target_fp_name.
16786         (target_fpu_name): New variable.
16787         (arm_is_cirrus): Remove.
16788         (fpu_desc): New struct.
16789         (all_fpus): Define.
16790         (pf_model_for_fpu): Define.
16791         (all_loat_abis): Define.
16792         (arm_override_options): Set fp arch flags based on -mfpu=
16793         and -float-abi=.
16794         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16795         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16796         (*): Use new TARGET_* flags.
16797         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
16798         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
16799         (TARGET_SOFT_FLOAT): Ditto.
16800         (TARGET_SOFT_FLOAT_ABI): New.
16801         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
16802         TARGET_HARD_FLOAT.
16803         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
16804         (TARGET_OPTIONS): Add -mfpu=.
16805         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16806         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16807         (arm_pf_model): Define.
16808         (arm_float_abi_type): Define.
16809         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
16810         * config/arm/arm.md: Use new TARGET_* flags.
16811         * config/arm/cirrus.md: Ditto.
16812         * config/arm/fpa.md: Ditto.
16813         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
16814         * config/arm/semi.h (ASM_SPEC): Ditto.
16815         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
16816         (FPUTYPE_DEFAULT): Set to VFP.
16817         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
16818
16819         2003-11-22  Phil Edwards  <phil@codesourcery.com>
16820
16821         PR target/12476
16822         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
16823         'bx' instead of 'b' to avoid branch range restrictions.  Output
16824         the thunk immediately before the thunked-to function.
16825         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
16826         .thumb_func if a thunk is being generated.  Emit .code 16 along
16827         with .thumb_func if a thunk is not being generated.
16828
16829         2003-11-15  Nicolas Pitre <nico@cam.org>
16830
16831         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
16832         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
16833         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
16834         (lshrdi3_iwmmxt): Renamed from lshrdi3.
16835         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
16836
16837         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
16838             Ian Lance Taylor  <ian@wasabisystems.com>
16839
16840         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
16841         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
16842
16843         2003-11-05  Phil Edwards  <phil@codesourcery.com>
16844
16845         * config/arm/arm.md (insn):  Add new V6 instruction names.
16846         (generic_sched):  New attr.
16847         * config/arm/arm-generic.md:  Use generic_sched here.
16848         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
16849         stages of pipeline.  Adjust latency counts accordingly.
16850         * config/arm/arm1136jfs.md:  New file.
16851
16852         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
16853
16854         * config/arm/arm.h (processor_type): New enumeration type.
16855         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
16856         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
16857         (CPP_CPU_ARCH_SPEC): Likewise.
16858         * config/arm/arm.c (arm_tune): New variable.
16859         (all_cores): Use cores.def.
16860         (all_architectures): Add representative processor.
16861         (arm_override_options): Restructure way in which tuning
16862         information is deduced.
16863         * arm.md: Update "insn" and "type" attributes throughout.
16864         (insn): New attribute.
16865         (type): Compute "mult" from "insn" attribute.  Add load2,
16866         load3, load4 alternatives.
16867         (arm automaton): Move to arm-generic.md.
16868         * config/arm/arm-cores.def: New file.
16869         * config/arm/arm-generic.md: Likewise.
16870         * config/arm/arm1026ejs.md: Likewise.
16871
16872 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16873
16874         * doc/invoke.texi (SPARC options): Remove -mflat and
16875         all -mxxx (xxx:chip) options.
16876         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
16877         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
16878         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
16879         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
16880         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
16881         * config/sparc/sparc.c: Likewise.
16882         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
16883         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
16884         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
16885         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
16886         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
16887         (sparc_flat_must_save_register_p): Likewise.
16888         (sparc_flat_compute_frame_size): Likewise.
16889         (sparc_flat_save_restore): Likewise.
16890         (sparc_flat_function_prologue): Likewise.
16891         (sparc_flat_function_epilogue): Likewise.
16892         (sparc_flat_epilogue_delay_slots): Likewise.
16893         (sparc_flat_eligible_for_epilogue_delay): Likewise.
16894         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
16895         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
16896         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
16897         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
16898         (CONDITIONAL_REGISTER_USAGE): Likewise.
16899         (FRAME_POINTER_REQUIRED): Likewise.
16900         (INITIAL_ELIMINATION_OFFSET): Likewise.
16901         (BASE_RETURN_VALUE_REG): Likewise.
16902         (BASE_OUTGOING_VALUE_REG): Likewise.
16903         (BASE_PASSING_ARG_REG): Likewise.
16904         (BASE_INCOMING_ARG_REG): Likewise.
16905         (INCOMING_REGNO): Likewise.
16906         (OUTGOING_REGNO): Likewise.
16907         (LOCAL_REGNO): Likewise.
16908         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
16909         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
16910         (EPILOGUE_USES): Likewise.
16911         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
16912         ("flat" attribute): Delete.
16913         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
16914         handling.
16915         (call followed by jump define_peephole's): Delete.
16916         (exception_receiver): Likewise.
16917         (builtin_setjmp_receiver): Likewise.
16918         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
16919
16920 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
16921
16922         PR c/11658
16923         PR c/13994
16924         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
16925         on langhooks.h.
16926         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
16927         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
16928         Include langhooks.h.  Replace c_common_truthvalue_conversion
16929         with the truthvalue_conversion language hook throughout.
16930         (expr_no_commas): Call default_conversion before save_expr
16931         for the first term of the production 'x ? : y'.
16932         * c-common.c (c_common_truthvalue_conversion): Remove
16933         obsolete block.  Invoke recursively the hook instead
16934         of this function.
16935         * c-convert.c (convert): handle ERROR_MARK_NODE.
16936         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
16937         returned by the truthvalue_conversion language hook.
16938         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16939         c_objc_common_truthvalue_conversion.
16940         * c-objc-common.c (c_objc_common_truthvalue_conversion):
16941         New function.
16942         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
16943         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16944         c_objc_common_truthvalue_conversion.
16945
16946 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16947
16948         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
16949         of gen_rtx.
16950         (LIBCALL_VALUE): Likewise.
16951         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
16952         gen_rtx_CC0 instead of gen_rtx.
16953         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
16954         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
16955         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
16956         gen_rtx.
16957         (m68hc11_emit_logical): Likewise.
16958
16959 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16960
16961         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
16962         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
16963         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
16964         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
16965         config/mips/mips.md, config/mmix/mmix.c,
16966         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
16967         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
16968         config/rs6000/altivec.md, config/s390/s390.c,
16969         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
16970         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
16971         Use const0_rtx instead of GEN_INT (0).  Do the same for other
16972         constants that are readily available.
16973
16974 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16975
16976         * doloop.c, optabs.c, regmove.c, sched-deps.c,
16977         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
16978         instead of GEN_INT (0).  Do the same for other constants that
16979         are readily available.
16980
16981 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16982
16983         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
16984         gen_rtx.
16985         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
16986         instead of gen_rtx.
16987         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
16988         gen_rtx.
16989         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
16990         gen_rtx_ASHIFT instead of gen_rtx.
16991         (udivmodqi4): Likewise.
16992
16993 2004-02-02  Richard Henderson  <rth@redhat.com>
16994
16995         PR target/13789
16996         * expr.c (store_expr): Use force_operand before emit_move_insn.
16997
16998 2004-02-02  Jeff Law  <law@redhat.com>
16999             Roger Sayle  <roger@eyesopen.com>
17000
17001         * tree.c (commutative_tree_code, associative_tree_code): New
17002         functions.
17003         (iterative_hash_expr): Use commutative_tree_code.
17004         * tree.h (commutative_tree_code, associative_tree_code): Declare.
17005         * fold-const.c (operand_equal_p): Use commutative_tree_code
17006         rather than inlining the commutativity check.
17007         (fold): Likewise.
17008
17009 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
17010
17011         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
17012         * config/frv/frv-protos.h: Remove the prototype for
17013         frv_function_arg_keep_as_reference.
17014         * config/frv/frv.c (frv_function_arg_keep_as_reference):
17015         Remove.
17016         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
17017         * config/stormy16/stormy16.h: Remove the commented-out
17018         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
17019
17020 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
17021
17022         PR target/13914
17023         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
17024         for retaddr_column.
17025
17026 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
17027
17028         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
17029         gen_rtx.
17030
17031 2004-02-02  Eric Christopher  <echristo@redhat.com>
17032             Zack Weinberg  <zack@codesourcery.com>
17033
17034         * c-opts.c (c_common_handle_option): Add -finput-charset.
17035         * c.opt: Ditto.
17036         * cppcharset.c (one_iso88591_to_utf8): Remove.
17037         (convert_iso88591_utf8): Ditto.
17038         (conversion_tab): Remove 8859-1 converter.
17039         (_cpp_input_to_utf8): Remove.
17040         (_cpp_init_iconv_buffer): Ditto.
17041         (_cpp_close_iconv_buffer): Ditto.
17042         (_cpp_convert_input): New function.
17043         (_cpp_default_encoding): Ditto.
17044         * cpphash.h: Add/remove prototypes for above.
17045         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
17046         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
17047         for narrow execution and input character sets.
17048         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
17049         * doc/cppopts.texi: Document -finput-charset.
17050
17051 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
17052
17053         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
17054         against FIRST_PSEUDO_REGISTER.
17055
17056 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
17057
17058         * doc/invoke.texi (SPARC options): Further improve.
17059
17060 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
17061
17062         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
17063         config/h8300/h8300.c, config/ip2k/ip2k.md,
17064         config/iq2000/iq2000.c, config/mips/mips.c,
17065         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
17066         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
17067         config/v850/v850.md: Fix indentation.
17068
17069 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
17070
17071         * config/sparc/sparc.c (function_arg_slotno): Align TImode
17072         arguments on a 16-byte boundary in the parameter array if ARCH64.
17073         Split handling of TFmode.
17074
17075 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
17076
17077         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
17078         Don't test CONSTANT_P (x).
17079         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
17080         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
17081         Fix misindentation.
17082
17083 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
17084
17085         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
17086
17087 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
17088
17089         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
17090         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
17091         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
17092         config/iq2000/iq2000.c, config/m32r/m32r.c,
17093         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
17094         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
17095         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
17096         config/stormy16/stormy16.c, config/v850/v850.md,
17097         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
17098
17099 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17100
17101         * config/mcore/mcore.c (block_move_sequence): Replace
17102         gen_rtx_CONST_INT with GEN_INT.
17103
17104 2004-02-02  Jan Hubicka  <jh@suse.cz>
17105
17106         * alias.c (record_set): Use hard_regno_nregs.
17107         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
17108         * builtins.c (apply_args_size): Likewise.
17109         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
17110         mark_set_regs, add_stored_regs, mark_referenced_regs,
17111         insert_restore, insert_save, insert_one_insn): Likewise.
17112         * cfgcleanup.c: Include regs.h
17113         (mark_effect, mentions_nonequal_regs): Likewise.
17114         * cfgrtl.c (mark_killed_regs): Likewise
17115         * combine.c (update_table_tick, record_value_for_reg,
17116         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
17117         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
17118         reg_bitfield_target_p, distribute_notes): Likewise.
17119         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
17120         exp_equiv_p, cse_insn): Likewise.
17121         * cselib.c (cselib_lookup): Likewise.
17122         (cselib_invalidate_regno, cselib_record_set): Likewise.
17123         * df.c (df_ref_record): Likewise.
17124         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
17125         Likewise.
17126         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
17127         count_or_remove_death_notes_bb): Likewise.
17128         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
17129         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
17130         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
17131         * integrate.c (mark_stores): Likewise.
17132         * jump.c (delete_prior_computation): Likewise.
17133         * lcm.c (reg_dies, reg_becomes_live): Likewise.
17134         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
17135         * loop.c (LOOP_REGNO_NREGS): Likewise.
17136         * postreload.c (reload_combine, reload_combine_note_store,
17137         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
17138         * ra-colorize.c (combine, color_usable_p, get_free_reg,
17139         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
17140         try_recolor_web, insert_coalesced_conflicts, check_colors,
17141         break_precolored_alias): Likewise.
17142         * ra-debug.c: Include regs.h
17143         (ra_print_rtx_object): Likewise.
17144         * ra-rewrite (choose_spill_colors): Likewise.
17145         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
17146         * ra.c (init_ra): Likewise.
17147         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
17148         peep2_find_free_register): Likewise.
17149         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
17150         * regclass.c (hard_regno_nregs): New array.
17151         (init_reg_modes_once): Initialize it.
17152         (choose_hard_reg_mode): Use it.
17153         (record_reg_classes): Likewise.
17154         * regmove.c (mark_flags_life_zones): Likewise.
17155         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
17156         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
17157         copy_value, maybe_mode_change, find_oldest_value_reg,
17158         copyprop_hardreg_forward_1):
17159         * regs.h (hard_regno_nregs): Declare.
17160         * realod.c (reload_inner_reg_of_subreg): Use it.
17161         (push_reload, combine_reloads, find_dummy_reload,
17162         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
17163         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
17164         reload_adjust_reg_for_mode): Likewise.
17165         * reload1.c (compute_use_by_pseudos, count_pseudo,
17166         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
17167         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
17168         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
17169         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
17170         delete_output_reload): Likewise.
17171         * resource.c (update_live_status, mark_referenced_resources,
17172         mark_set_resources, mark_target_live_regs): Likewise.
17173         * rtlanal.c:  Include regs.h
17174         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
17175         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
17176         subreg_regno_offset, subreg_offset_representable_p,
17177         hoist_test_store): Likewise.
17178         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
17179         * sched-rgn.c (check_live_1, update_live_1): Likewise.
17180         * stmt.c: Include regs.h
17181         (decl_conflicts_with_clobbers_p): Likewise.
17182         * varasm.c (make_decl_rtl): Likewise.
17183         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
17184
17185 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17186
17187         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
17188         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
17189         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
17190         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
17191         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
17192         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
17193         config/iq2000/iq2000.h, config/m32r/m32r.c,
17194         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
17195         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
17196         config/mcore/mcore.c, config/mcore/mcore.h,
17197         config/mcore/mcore.md, config/mips/mips.c,
17198         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
17199         config/rs6000/rs6000.c, config/s390/s390.c,
17200         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
17201         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
17202         "gen_rtx (FOO, " with "gen_rtx_FOO (".
17203
17204 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17205
17206         * config/h8300/h8300.md (two peephole2's): New.
17207
17208 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
17209
17210         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
17211         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
17212         (ASM_CPU_SPEC): Likewise
17213         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
17214         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
17215
17216 2004-02-01  Roger Sayle  <roger@eyesopen.com>
17217
17218         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
17219         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
17220         (expand_builtin): Always call expand_builtin_pow.
17221
17222 2004-02-01  Roger Sayle  <roger@eyesopen.com>
17223
17224         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
17225         BUILT_IN_SIGNBITL): New GCC builtins.
17226         * builtins.c (expand_builtin_signbit): New function to RTL expand
17227         calls to signbit, signbitf and signbitl as inline intrinsics.
17228         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
17229         (fold_builtin_signbit): New function to perform constant folding
17230         of signbit, signbitf and signbitl.
17231         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
17232
17233         * doc/extend.texi: Document new signbit{,f,l} builtins.
17234
17235 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
17236
17237         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
17238
17239 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
17240
17241         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
17242         "mips_const_double_ok" and "simple_memory_operand", which were
17243         removed from the MIPS port with the mips-3_4-rewrite branch merge.
17244         * config/mips/mips.c (mips16_lay_out_constants): Update comment
17245         for removal of simple_memory_operand.
17246
17247 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17248
17249         * config/c4x/c4x.md: Use GEN_INT instead of
17250         gen_rtx (CONST_INT, ...).
17251
17252 2004-01-31  Richard Henderson  <rth@redhat.com>
17253
17254         * varasm.c (output_constant_pool): Don't zap the pool.
17255
17256 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17257
17258         * genrecog.c (decision_type): Add DT_const_int.
17259         (write_cond) [DT_const_int]: Print a comparison against small
17260         constant.
17261         (write_node): Simplify comparisons against small constants
17262         before printing tests.
17263
17264 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17265
17266         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
17267         instead of gen_rtx_CONST_INT.
17268
17269 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17270
17271         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
17272         instead of gen_rtx_CONST_INT.
17273
17274 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17275
17276         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
17277         hook_bool_CUMULATIVE_ARGS_false.
17278         * targhooks.c (default_strict_argument_naming): Rename to
17279         hook_bool_CUMULATIVE_ARGS_false.
17280         * targhooks.h: Update the prototype for
17281         default_strict_argument_naming.
17282
17283 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17284
17285         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17286         * config/sh/sh.h: Likewise.
17287         * config/sh/sh.md: Likewise.
17288
17289 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
17290
17291         * doc/invoke.texi (SPARC options): Restructure and update.
17292
17293 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17294
17295         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
17296         STRICT_ARGUMENT_NAMING): Poison.
17297         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
17298         hook_bool_tree_false.
17299         * targhooks.c (default_promote_function_args): Remove.
17300         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
17301         Don't check incoming.
17302         (default_strict_argument_naming): Don't use
17303         STRICT_ARGUMENT_NAMING.
17304         * targhooks.h: Remove the prototype for
17305         default_promote_function_args.
17306
17307 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17308
17309         * config/i386/i386-protos.h: Remove the prototype for
17310         ix86_setup_incoming_varargs.
17311         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
17312         (ix86_setup_incoming_varargs): Make it static.
17313         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
17314
17315 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17316
17317         * alloc-pool.c: Fix comment typos.
17318         * builtin-types.def: Likewise.
17319         * builtins.def: Likewise.
17320         * c-pretty-print.c: Likewise.
17321         * df.h: Likewise.
17322         * reload1.c: Likewise.
17323
17324 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17325
17326         * doc/invoke.texi: Follow spelling conventions.
17327         * doc/tm.texi: Likewise.
17328
17329 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17330
17331         * doc/install.texi: Fix typos.
17332         * doc/invoke.texi: Likewise.
17333
17334 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
17335
17336         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
17337         registers as pointers.
17338         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
17339
17340 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
17341
17342         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
17343         and restore it to gen_lowpart_general on exit.
17344         (gen_lowpart_for_combine): Adjust all callers to go through
17345         gen_lowpart.
17346         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
17347         and restore it to gen_lowpart_general on exit.
17348         (gen_lowpart_if_possible): Adjust all callers to go through
17349         gen_lowpart.
17350         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
17351         (gen_lowpart): Declare as pointer to function, initialized to
17352         gen_lowpart_general.
17353         * rtl.h (gen_lowpart): Declare as pointer to function.
17354
17355 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17356
17357         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17358         * calls.c: Likewise.
17359         * emit-rtl.c: Likewise.
17360         * function.c: Likewise.
17361         * reload1.c: Likewise.
17362         * config/i386/cygming.h: Likewise.
17363         * config/i386/i386.c: Likewise.
17364         * config/i386/winnt.c: Likewise.
17365
17366 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
17367
17368         PR bootstrap/9249
17369         * doc/install.texi: document --enable-__cxa_atexit option.
17370         * configure.ac: Disable __cxa_atexit if not supported.
17371         * configure: Regenerate.
17372
17373 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
17374
17375         * ggc-zone.c (ggc_free): New function.
17376
17377 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17378
17379         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
17380         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
17381         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
17382         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
17383         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
17384         config/alpha/alpha.c, config/alpha/alpha.h,
17385         config/alpha/alpha.md, config/alpha/unicosmk.h,
17386         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
17387         config/c4x/c4x-protos.h, config/c4x/c4x.md,
17388         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
17389         config/frv/frvend.c, config/i386/cygming.h,
17390         config/i386/djgpp.h, config/i386/emmintrin.h,
17391         config/i386/gthr-win32.c, config/i386/i386-interix.h,
17392         config/i386/i386-protos.h, config/i386/openbsd.h,
17393         config/i386/winnt.c, config/i386/xm-mingw32.h,
17394         config/i386/xmmintrin.h, config/ia64/ia64.md,
17395         config/iq2000/iq2000.md, config/m32r/m32r.md,
17396         config/m68k/m68k.md, config/mcore/mcore-elf.h,
17397         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
17398         config/mips/iris5gas.h, config/mips/iris6.h,
17399         config/mips/iris6gas.h, config/mips/linux.h,
17400         config/mips/mips.md, config/mips/netbsd.h,
17401         config/mips/openbsd.h, config/mips/windiss.h,
17402         config/pa/fptr.c, config/rs6000/aix.h,
17403         config/rs6000/altivec.h, config/rs6000/darwin.h,
17404         config/rs6000/xcoff.h, config/s390/s390-protos.h,
17405         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
17406         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
17407         config/sparc/sol2.h: Update copyright.
17408
17409 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17410
17411         * Makefile.in (abs_docdir, abs_srcdir): Define.
17412         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
17413
17414 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17415
17416         * genconfig.c (main): Have CC0_P check its operand even on a
17417         target without cc0.
17418
17419 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17420
17421         * config/alpha/alpha.c: Remove mentions of deprecates macros
17422         in comments, remove some target-independent comments about target
17423         macros, and/or add minimal function comments for target hook
17424         implementations.
17425         * config/avr/avr.c: Likewise.
17426         * config/ia64/ia64.h: Likewise.
17427         * config/ip2k/ip2k.c: Likewise.
17428         * config/iq2000/iq2000.c: Likewise.
17429         * config/m32r/m32r.h: Likewise.
17430         * config/m68hc11/m68hc11.c: Likewise.
17431         * config/mcore/mcore.c: Likewise.
17432         * config/mmix/mmix.c: Likewise.
17433         * config/mn10300/mn10300.c: Likewise.
17434         * config/pa/pa.c: Likewise.
17435         * config/pdp11/pdp11.c: Likewise.
17436         * config/rs6000/rs6000.h: Likewise.
17437         * config/sh/sh.c: Likewise.
17438         * config/sh/sh.h: Likewise.
17439         * config/sparc/sparc.c: Likewise.
17440         * config/sparc/sparc.h: Likewise.
17441         * config/stormy16/stormy16.c: Likewise.
17442         * config/xtensa/xtensa.c: Likewise.
17443
17444 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17445
17446         PR optimization/12147
17447         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
17448         RELOAD_FOR_OPADDR_ADDR.
17449         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
17450         might be reused as RELOAD_FOR_OPADDR_ADDR register.
17451
17452 2004-01-30  Jan Hubicka  <jh@suse.cz>
17453
17454         * reload.c (get_secondary_mem): Fix updating of
17455         secondary_memlocs_elim_used.
17456
17457 2004-01-30  Richard Henderson  <rth@redhat.com>
17458
17459         * varasm.c (struct rtx_const, struct pool_constant): Remove.
17460         (MAX_RTX_HASH_TABLE): Remove.
17461         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
17462         (first_pool, last_pool, pool_offset): Remove.
17463         (struct rtx_constant_pool): Split out from ...
17464         (struct varasm_status): ... here.  Reference one via pointer.
17465         (struct constant_descriptor_rtx): Merge struct pool_constant.
17466         (SYMHASH): Remove.
17467         (decode_rtx_const): Remove.
17468         (const_hash_rtx, compare_constant_rtx): Remove.
17469         (record_constant_rtx): Remove.
17470         (const_desc_rtx_hash, const_desc_rtx_eq): New.
17471         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
17472         (const_rtx_hash_1, const_rtx_hash): New.
17473         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
17474         (simplify_subtraction): Use simplify_rtx.
17475         (force_const_mem): Rewrite to use new data structures.
17476         (find_pool_constant): Likewise.
17477         (get_pool_constant, get_pool_constant_mark,
17478         get_pool_constant_for_function, get_pool_mode,
17479         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
17480         (output_constant_pool_2): Split out from output_constant_pool.
17481         (output_constant_pool_1): Likewise.  Use new pool datastructures.
17482         (output_constant_pool): Zap entire pool datastructure.
17483         (mark_constant): Use new pool datastructures.
17484         (mark_constants): Use for_each_rtx.
17485         (mark_constant_pool): Use new pool datastructures.
17486
17487 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
17488
17489         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
17490         Copy operands[1] to pseudo for simplify_gen_subreg.
17491
17492 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17493
17494         * gcse.c (bypass_block): Fix a typo in the previous check-in
17495         to the file.
17496
17497 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
17498
17499         * toplev.c: Include alloc-pool.h.
17500         * Makefile.in (toplev.c): Update dependencies.
17501
17502 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17503
17504         * combine.c (simplify_shift_const, case XOR): Be careful when
17505         commuting XOR with ASHIFTRT.
17506
17507 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17508             Eric Botcazou  <ebotcazou@libertysurf.fr>
17509
17510         * config/sparc/sparc-protos.h: Remove the prototype for
17511         sparc_builtin_saveregs.
17512         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17513         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17514         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17515         (TARGET_STRUCT_VALUE_RTX): Likewise.
17516         (TARGET_RETURN_IN_MEMORY): Likewise.
17517         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17518         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17519         (sparc_builtin_saveregs): Make it static.
17520         (sparc_promote_prototypes): New.
17521         (sparc_struct_value_rtx): Likewise.
17522         (sparc_return_in_memory): Likewise.
17523         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
17524         (PROMOTE_FUNCTION_RETURN): Likewise.
17525         (RETURN_IN_MEMORY): Likewise.
17526         (STRUCT_VALUE): Likewise.
17527         (STRUCT_VALUE_INCOMING): Likewise.
17528         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17529         (STRICT_ARGUMENT_NAMING): Likewise.
17530         (PROMOTE_PROTOTYPES): Likewise.
17531
17532         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
17533
17534 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17535
17536         PR c/12818
17537         * varasm.c (const_hash_1) <STRING_CST>: Use the
17538         address to compute the hash value if flag_writable_strings.
17539         (compare_constant) <STRING_CST>: Compare the addresses
17540         if flag_writable_strings.
17541         (build_constant_desc): Do not copy the expression for a
17542         STRING_CST if flag_writable_strings.
17543
17544 2004-01-30  Jan Hubicka  <jh@suse.cz>
17545
17546         * alloc-pool.c: Include hashtab.h
17547         (alloc_pool_descriptor): New structure
17548         (alloc_pool_hash): New global variable.
17549         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
17550         (create_alloc_pool): Update statistics.
17551         (free_alloc_pool): Likewise.
17552         (pool_alloc): Likewise.
17553         (output_info): New structure
17554         (print_statistics, dump_alloc_pool_statistics): New function.
17555         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
17556         (dump_alloc_pool_statistics): Declare.
17557         * toplev.c (finalize):  Dump statistics.
17558
17559         * reload.c (secondary_memlocs_elim_used): New static variable.
17560         (get_secondary_mem): Update it.
17561         (find_reloads): Use it.
17562
17563 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
17564
17565         * toplev.c: Fix broken checkin of 2003-12-30, again.
17566
17567 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17568
17569         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
17570         s390*-*-* targets by specifying a 'nop' insn.
17571         * configure: Regenerate.
17572
17573 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17574
17575         PR target/11475
17576         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
17577
17578 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17579
17580         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
17581         of addr when creating MEM copy.
17582
17583 2004-01-29  Devang Patel  <dpatel@apple.com>
17584
17585         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
17586
17587 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17588
17589         PR inline-asm/6162
17590         * reload.c (find_reloads): Only support one pair of commutative
17591         operands.
17592
17593 2004-01-29  Roger Sayle  <roger@eyesopen.com>
17594
17595         PR java/13824
17596         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
17597         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
17598         recursion.
17599
17600 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17601
17602         * config/frv/frv.c: Don't mention deprecated macros in
17603         comments.  Remove some target-independent comments about
17604         target macros.
17605         * config/frv/frv.h: Likewise.
17606
17607 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17608
17609         * cfghooks.c (split_block): Set probability and count of the
17610         new edge.
17611
17612 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
17613
17614         * dwarf2out.c (struct die_struct): Added field decl_id.
17615         (decl_die_table): Changed to hash table.
17616         (decl_die_table_allocated): Deleted.
17617         (decl_die_table_in_use): Deleted.
17618         (DECL_DIE_TABLE_INCREMENT): Deleted.
17619         (decl_die_table_hash): New function.
17620         (decl_die_table_eq): New function.
17621         (lookup_decl_die): Lookup in a hash table.
17622         (equate_decl_number_to_die): Insert into a hash table.
17623         (dwarf2out_init): Init hash table decl_die_table.
17624
17625 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17626
17627         PR optimization/13424
17628         * expr.c (store_constructor): Revert 2003-12-03 change.
17629
17630         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
17631         expected before returning early.  Avoid sharing RTL if they
17632         need to be changed.
17633
17634         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
17635         handling so that memory attributes are preserved.  Don't call
17636         ix86_set_move_mem_attrs.
17637         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
17638         (ix86_expand_clrstr): Rename src argument to
17639         dst.  Rework rep_stos and strset handling so that memory attributes
17640         are preserved.
17641         (ix86_expand_strlen): Pass src argument to
17642         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
17643         memory attributes are preserved.
17644         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
17645         change_address instead of gen_rtx_MEM.
17646         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
17647         expanders.
17648         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
17649         strmovqi, strmovqi_rex64): Remove.
17650         (rep_mov*, strmov*): Prefix insn names with *.
17651         (strset, strset_singleop, rep_stos): New expanders.
17652         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
17653         strsetqi, strsetqi_rex64): Remove.
17654         (rep_stos*, strset*): Prefix insn names with *.
17655         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
17656         to SImode.
17657         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
17658         are preserved.
17659         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
17660         Prefix insn names with *.
17661         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
17662         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
17663         (strlenqi_1): New expander.
17664         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
17665
17666 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17667
17668         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
17669         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
17670         verify_flow_info): Declaration removed.
17671         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
17672         (debug_bb, debug_bb_n): Add argument to dump_bb call.
17673         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
17674         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
17675         instead of delete_block.
17676         * cfghooks.c: Include timevar.h and toplev.h.
17677         (cfg_hooks): Define here.
17678         (verify_flow_info, dump_bb): Moved from cfg.c.
17679         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17680         split_block, split_block_after_labels, move_block_after,
17681         delete_basic_block, split_edge, create_basic_block,
17682         create_empty_bb, can_merge_blocks_p, merge_blocks,
17683         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17684         New functions.
17685         * cfghooks.h (struct cfg_hooks): Added fields name,
17686         make_forwarder_block, tidy_fallthru_edge and
17687         move_block_after. Changed type of verify_flow_info, dump_bb,
17688         split_block fields. Renamed cfgh_split_edge and delete_block
17689         fields.
17690         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17691         split_block, delete_block, split_edge, create_basic_block,
17692         can_merge_blocks_p, merge_blocks): Macros removed.
17693         (cfg_hooks): Do not export.
17694         (verify_flow_info, dump_bb, redirect_edge_and_branch,
17695         redirect_edge_and_branch_force, split_block, split_block_after_labels,
17696         move_block_after, delete_basic_block, split_edge, create_basic_block,
17697         create_empty_bb, can_merge_blocks_p, merge_blocks,
17698         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17699         Declare.
17700         (cfg_layout_rtl_cfg_hooks): Declare.
17701         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
17702         New functions.
17703         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
17704         (redirect_edge_with_latch_update): Removed.
17705         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
17706         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
17707         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
17708         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
17709         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
17710         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
17711         cfghooks.c.
17712         (rtl_create_basic_block): Coding style fix.
17713         (rtl_tidy_fallthru_edge, rtl_move_block_after,
17714         rtl_make_forwarder_block): New functions.
17715         (update_cfg_after_block_merging): Removed.
17716         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
17717         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
17718         to dump_bb.
17719         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
17720         find_if_case_2): Don't update dominators.
17721         * timevar.def (TV_CFG_VERIFY): New.
17722         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
17723         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
17724         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
17725         (remove_bbs): Don't call remove_bbs.
17726         (create_preheader): Use make_forwarder_block.
17727         (mfb_keep_just, mfb_update_loops): New static functions.
17728
17729 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17730
17731         * config/avr/avr.h: Remove target-independent comments about
17732         target macros.
17733
17734 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
17735
17736         * timevar.c (timevar_print): Mention when checking is enabled.
17737
17738 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
17739
17740         * c-lex.c (c_lex): Rename to...
17741         (c_lex_with_flags): Add new parameter to get CPP flags.
17742         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
17743         * c-pragma.h (c_lex_with_flags): Declare.
17744
17745 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17746
17747         * config/mcore/mcore.c (mcore_external_libcall): Add a
17748         comment.
17749         (mcore_return_in_memory): Likewise.
17750
17751 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17752
17753         * config/mcore/mcore-protos.h: Remove the prototype for
17754         mcore_setup_incoming_varargs.
17755         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17756         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
17757         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17758         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17759         (TARGET_STRUCT_VALUE_RTX): Likewise.
17760         (TARGET_RETURN_IN_MEMORY): Likewise.
17761         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17762         (mcore_setup_incoming_varargs): Make it static.  Receive the
17763         first argument by reference.  Add argument second_time.
17764         (mcore_external_libcall): New.
17765         (mcore_return_in_memory): Likewise.
17766         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
17767         (PROMOTE_FUNCTION_RETURN): Likewise.
17768         (STRUCT_VALUE): Likewise.
17769         (RETURN_IN_MEMORY): Likewise.
17770         (SETUP_INCOMING_VARARGS): Likewise.
17771         (PROMOTE_PROTOTYPES): Likewise.
17772         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17773
17774 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17775
17776         * config/m32r/m32r-protos.h: Remove the prototype for
17777         m32r_setup_incoming_varargs.
17778         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
17779         (TARGET_STRUCT_VALUE_RTX): Likewise.
17780         (TARGET_RETURN_IN_MEMORY): Likewise.
17781         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17782         (m32r_return_in_memory): New.
17783         (m32r_setup_incoming_varargs): Make it static.
17784         * config/m32r/m32r.h: Remove #undef of
17785         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
17786         definitions of PROMOTE_FUNCTION_ARGS and
17787         PROMOTE_FUNCTION_RETURN.
17788         (PROMOTE_PROTOTYPES): Remove.
17789         (RETURN_IN_MEMORY): Likewise.
17790         (STRUCT_VALUE): Likewise.
17791
17792 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17793
17794         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
17795         (TARGET_STRUCT_VALUE_RTX): Likewise.
17796         (m68k_struct_value_rtx): Likewise.
17797         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
17798         STRUCT_VALUE_REGNUM.
17799         (PROMOTE_PROTOTYPES): Remove.
17800         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
17801         STRUCT_VALUE_REGNUM.
17802         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
17803         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
17804
17805 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17806
17807         * config/stormy16/stormy16.c
17808         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
17809         TARGET_BUILD_BUILTIN_VA_LIST.
17810
17811 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17812
17813         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
17814         (TARGET_STRUCT_VALUE_RTX): Likewise.
17815         (TARGET_RETURN_IN_MEMORY): Likewise.
17816         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17817         (v850_return_in_memory): Likewise.
17818         (v850_setup_incoming_varargs): Likewise.
17819         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
17820         (SETUP_INCOMING_VARARGS): Likewise.
17821         (RETURN_IN_MEMORY): Likewise.
17822         (STRUCT_VALUE): Likewise.
17823
17824 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17825
17826         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
17827         (fr30_setup_incoming_varargs): Don't use
17828         STRICT_ARGUMENT_NAMING.
17829         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
17830         (STRICT_ARGUMENT_NAMING): Likewise.
17831
17832 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17833
17834         * config/frv/frv-protos.h: Remove the prototype for
17835         frv_expand_builtin_saveregs.
17836         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
17837         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17838         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
17839         STRUCT_VALUE_REGNUM.
17840         (frv_expand_builtin_saveregs): Make it static.
17841         (frv_struct_value_rtx): New.
17842         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
17843
17844 2004-01-29  Jan Hubicka  <jh@suse.cz>
17845
17846         PR c++/12850
17847         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
17848         initial pointers.
17849         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
17850         for functions that will be only inlined.
17851         (cgraph_mark_function_to_output): Likewise.
17852         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
17853         do not clear function body.
17854         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
17855         (tree_rest_of_compilation): Reorganize the logic releasing function
17856         body to use callgraph datastructure.
17857
17858 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17859
17860         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
17861         to register_operand.
17862
17863 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17864
17865         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
17866         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
17867         match_operand expressions so that all match_dups appear
17868         lexically after their corresponding match_operands.
17869
17870 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17871
17872         * config/h8300/h8300.c (WORD_REG_USED): Use
17873         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
17874         (compute_saved_regs): Likewise.
17875         (h8300_expand_prologue): Likewise.  Allocate locals after
17876         saving registers.
17877         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
17878         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
17879         registers.
17880         (h8300_initial_elimination_offset): Adjust for the new frame
17881         layout, which swaps flips the order of locals and saved
17882         registers.
17883         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
17884         (HARD_FRAME_POINTER_REGNUM): New.
17885         (ELIMINABLE_REGS): Add an elimination rule from
17886         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
17887         (REGISTER_NAMES): Add fp.
17888         * config/h8300/h8300.md (FP_REG): Change to 11.
17889         (HFP_REG): New.
17890
17891 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17892
17893         * genrecog.c (write_node): Remove a useless local variable.
17894
17895 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17896
17897         * Makefile.in (options.c options.h): Use stamp file s-options to
17898         avoid unnecessary rebuilds.
17899         (options.o): New target listing dependencies.
17900         (gtyp-gen.h): Use stamp file s-gtyp-gen.
17901         (STAGESTUFF): Add s-gtyp-gen.
17902
17903 2004-01-28  Richard Henderson  <rth@redhat.com>
17904
17905         * ggc.h (ggc_free): Declare.
17906         * ggc-common.c (ggc_realloc): Use it.
17907         * ggc-page.c: Remove lots of inline markers.
17908         (globals): Add free_object_list.
17909         (ggc_alloc): Tidy.
17910         (ggc_free, validate_free_objects): New.
17911         (poison_pages): Provide default.
17912         (ggc_collect): Call validate_free_objects; emit markers to
17913         the debug file.
17914
17915 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17916             Jim Wilson  <wilson@specifixinc.com>
17917
17918         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
17919         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
17920         scratch pointer.
17921         (ia64_secondary_reload_class): Delete case GR_REGS.
17922         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
17923         Do not allocate a scratch register.
17924         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
17925
17926 2004-01-28  Jan Hubicka  <jh@suse.cz>
17927
17928         * gcse.c (bypass_block): Prevent edges to be unified when we are
17929         about to emit compenstation code.
17930
17931 2004-01-28  Nick Clifton  <nickc@redhat.com>
17932
17933         * config/arm/arm.c (arm_expand_builtin): Force second argument of
17934         the setcwx insn into a register.
17935
17936 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
17937
17938         * config/fp-bit.c (pack_d): When using paired doubles to implement
17939         a long double, round the high part separately.
17940         (unpack_d): Fix the case in which the high part is a power of two
17941         and the low part is a nonzero value of the opposite sign.
17942
17943 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17944
17945         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17946         (TARGET_STRUCT_VALUE_RTX): Likewise.
17947         (c4x_external_libcall): Likewise.
17948         (c4x_struct_value_rtx): Likewise.
17949         * config/c4x/c4x.h: Remove.
17950         (STRUCT_VALUE_REGNUM): Likewise.
17951         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17952
17953 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17954
17955         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
17956         (TARGET_STRUCT_VALUE_RTX): Likewise.
17957         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
17958         (STRUCT_VALUE): Likewise.
17959         (PROMOTE_PROTOTYPES): Likewise.
17960
17961 2004-01-27  Roger Sayle  <roger@eyesopen.com>
17962
17963         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
17964         CONST_INT before using INTVAL.
17965
17966 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
17967
17968         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
17969         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
17970         frame if !TARGET_BACKCHAIN.
17971         * config/s390/s390.md ("allocate_stack"): Use pattern only if
17972         TARGET_BACKCHAIN.
17973         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
17974
17975 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17976
17977         * ia64.c (ia64_function_arg): When placing HFAs in integer
17978         registers, do not special case the mode used for complex
17979         types.  Do not advance int_regs until the current register
17980         is full.
17981
17982 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
17983
17984         PR target/7297
17985         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
17986
17987 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17988
17989         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
17990         slow, unaligned loads and stores while debugging.  Fix formatting.
17991
17992 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17993
17994         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
17995         of computing wmode.
17996         (restore_stack_nonlocal): Same.
17997
17998 2004-01-27  Devang Patel <dpatel@apple.com>
17999
18000         * Makefile.in (dwarf2out.o): Depend on input.h
18001         * dbxout.c (dbx_debug_hooks): Add new empty hook for
18002         imported_module_or_decl.
18003         (xcoff_debug_hooks): Same.
18004         * sdbout.c (sdb_debug_hooks): Same.
18005         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
18006         * debug.c (do_nothing_debug_hooks): Same.
18007         (debug_nothing_tree_tree): New function.
18008         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
18009         * dwarf2out.c: Include input.h.
18010         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
18011         (remove_child_TAG): New function.
18012         (dwarf_tag_name): Handle DW_TAG_imported_module.
18013         (gen_subprogram_die): Equate decl number to declaration die. Do not
18014         remove all children dies while reusing declaration die for definition.
18015         Instead, selectively remove only formal parameters.
18016         (gen_variable_die): Equate variable decl to declaration die.
18017         (gen_field_die): Equate field decl to line number.
18018         (force_namespace_die): Replace it with ...
18019         (force_decl_die): ... this.
18020         (force_type_die): New function.
18021         (setup_namespace_context): Replace use of force_namespace_die() with
18022         force_decl_die().
18023         (gen_namespace_die): Same.
18024         (dwarf2out_imported_module_or_decl): New function.
18025
18026 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
18027
18028         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
18029         on CQImode and CHImode incoming arguments in register a7.
18030         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
18031         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
18032         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
18033         xtensa_copy_incoming_a7 before reload.
18034
18035 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
18036
18037         * coverage.c (get_coverage_counts): Give a different message
18038         if flag_guess_branch_prob is set.
18039         * predict.c (counts_to_freqs): Return an int.
18040         (estimate_bb_frequencies): If counts_to_freqs returns zero,
18041         calculate estimates.
18042
18043 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
18044
18045         * config/iq2000/iq2000-protos.h: Remove the prototype for
18046         iq2000_setup_incoming_varargs.
18047         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18048         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18049         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18050         (TARGET_STRUCT_VALUE_RTX): Likewise.
18051         (TARGET_RETURN_IN_MEMORY): Likewise.
18052         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18053         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18054         (iq2000_return_in_memory): Likewise.
18055         (iq2000_setup_incoming_varargs): Make it static.  Receive the
18056         first argument by reference.
18057         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
18058         (PROMOTE_FUNCTION_RETURN): Likewise.
18059         (PROMOTE_PROTOTYPES): Likewise.
18060         (RETURN_IN_MEMORY): Likewise.
18061         (STRUCT_VALUE): Likewise.
18062         (SETUP_INCOMING_VARARGS): Likewise.
18063         (STRICT_ARGUMENT_NAMING): Likewise.
18064
18065 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
18066
18067         * fixinc/fixinc.c (test_test): Initialize res.
18068         (start_flexer): Initialize pz_cmd_save.
18069
18070 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
18071
18072         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
18073         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
18074
18075 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
18076
18077         PR 7198
18078         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
18079         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
18080         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
18081         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
18082         Possibly rename pattern for consistency.
18083         Remove ??? comments suggesting that this be done.
18084         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
18085         New patterns.
18086         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
18087         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
18088         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
18089         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
18090         Update to match.
18091
18092 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
18093
18094         * config/arm/arm.c (output_return_instruction): Only restore IP
18095         into SP if frame_pointer_needed.
18096
18097 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
18098
18099         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
18100         for SCmode and DCmode if ARCH32.
18101         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
18102         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
18103         if ARCH32.
18104         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
18105         if ARCH32.
18106         (BASE_OUTGOING_VALUE_REG): Likewise.
18107
18108 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
18109
18110         PR target/10904
18111         PR target/13058
18112         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
18113         Forbid mode changes from SImode for lower FP regs if ARCH64.
18114
18115 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
18116
18117         * Makefile.in (bt-load.o): Depend on except.h.
18118         * bt-load.c (except.h): #include.
18119         (compute_defs_uses_and_gen): If insn at end of BB can throw
18120         within this function, consider registers used by it unavailable for
18121         btr migration.
18122         (move_btr_def): If insn at end of BB can throw, insert before rather
18123         than after.
18124
18125         * flags.h (flag_btr_bb_exclusive): Declare.
18126         * toplev.c (flag_btr_bb_exclusive): New variable.
18127         (f_options): Add btr-bb-exclusive.
18128         * bt-load.c (augment_live_range): Restore old behaviour if
18129         flag_btr_bb_exclusive is set.
18130         * common.opt: Add entry for -fbtr-bb-exclusive.
18131         * opts.c (common_handle_options): Same.
18132         * doc/invoke.texi: Document -fbtr-bb-exclusive.
18133
18134         * bt-load.c (btrs_live_at_end): New variable.
18135         (compute_defs_uses_and_gen): Compute its pointed-to array.
18136         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
18137         (augment_live_range): When augmenting with a new dominator,
18138         use only its btrs_live_at_end set, but also add in the full set
18139         of the old dominator.
18140         (btr_def_live_range): Use btrs_live_at_end.
18141         (move_btr_def): Set other_btr_uses_before_def, and move new set
18142         to the end of the basic block, if appropriate.
18143         (migrate_btr_defs): Allocate and free btrs_live_at_end.
18144
18145         * bt-load.c (basic_block_freq): Remove outdated comment.
18146
18147 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
18148
18149         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
18150         (PREDICATE_CODES): Remove duplicate.
18151         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
18152         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
18153         (MASK_PROFILE_KERNEL): Adjust define.
18154
18155 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
18156
18157         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
18158         of long string literals from 32 bytes to sizeof (void *) when !-Os
18159         and to 1 with -Os.
18160
18161 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18162
18163         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
18164         constant addresses in the normal mode.
18165
18166 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18167
18168         * system.h (CHAR_BITFIELD): Delete.
18169         (BOOL_BITFIELD): New.
18170         * c-decl.c (c_scope): Use BOOL_BITFIELD.
18171         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
18172
18173 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18174
18175         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18176         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18177         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18178         (TARGET_STRUCT_VALUE_RTX): Likewise.
18179         (TARGET_RETURN_IN_MEMORY): Likewise.
18180         (arc_return_in_memory): Likewise.
18181         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
18182         (PROMOTE_FUNCTION_RETURN): Likewise.
18183         (RETURN_IN_MEMORY): Likewise.
18184         (STRUCT_VALUE): Likewise.
18185
18186 2004-01-26  Richard Henderson  <rth@redhat.com>
18187
18188         * c-parse.in (extension): Use itype.
18189         (SAVE_EXT_FLAGS): Don't allocate a tree.
18190         (RESTORE_EXT_FLAGS): Don't read a tree.
18191
18192 2004-01-26  Jan Hubicka  <jh@suse.cz>
18193
18194         * cselib.c (discard_useless_values):  Clear out value pointer pointing
18195         to datastructure to be recycled.
18196
18197 2004-01-25  Jan Hubicka  <jh@suse.cz>
18198
18199         * genextract.c (main): Do not output the memset when not checking.
18200
18201 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18202
18203         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
18204         switch statement instead of a chain of if statements.
18205
18206 2004-01-26  Jeff Law  <law@redhat.com>
18207
18208         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
18209         acute accents for Petur Runolfsson's entry.
18210
18211 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18212
18213         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
18214         (TARGET_RETURN_IN_MEMORY): Likewise.
18215         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
18216         (RETURN_IN_MEMORY): Likewise.
18217
18218 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18219
18220          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
18221          unaligned load/store into smaller loads and stores.
18222
18223 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18224
18225         * function.c (assign_parms): Do not assign
18226         long long argument to memory in prologue if
18227         is it loaded into register.
18228
18229 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18230
18231          PR middle-end/13779
18232          * expr.c (emit_group_load): split constant
18233          correctly into register components of PARALLEL insn.
18234
18235 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18236
18237         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
18238         Use adjust_address_nv directly with appropriate mode.
18239         (restore_stack_nonlocal): Ditto.
18240
18241 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18242
18243         * config/xtensa/xtensa-protos.h: Remove the prototype for
18244         xtensa_builtin_saveregs.
18245         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18246         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18247         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18248         (TARGET_STRUCT_VALUE_RTX): Likewise.
18249         (TARGET_RETURN_IN_MEMORY): Likewise.
18250         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18251         (xtensa_builtin_saveregs): Make it static.
18252         (xtensa_return_in_memory): New.
18253         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
18254         (PROMOTE_FUNCTION_RETURN): Likewise.
18255         (PROMOTE_PROTOTYPES): Likewise.
18256         (STRUCT_VALUE): Likewise.
18257         (RETURN_IN_MEMORY): Likewise.
18258         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18259
18260 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18261
18262         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
18263         (arm_setup_incoming_varargs): Likewise.
18264         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
18265
18266 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18267
18268         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
18269         (cris_setup_incoming_varargs): Likewise.
18270         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
18271
18272 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18273
18274         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
18275         (ns32k_struct_value_rtx): Likewise.
18276         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
18277         NS32K_STRUCT_VALUE_REGNUM.
18278
18279 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18280
18281         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18282         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18283         (TARGET_STRUCT_VALUE_RTX): Likewise.
18284         (arm_struct_value_rtx): Likewise.
18285         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
18286         (STRUCT_VALUE): Likewise.
18287         (STRUCT_VALUE_REGNUM): Likewise.
18288         (PROMOTE_PROTOTYPES): Likewise.
18289
18290 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18291
18292         * config/ia64/ia64-protos.h: Remove the prototype for
18293         ia64_setup_incoming_varargs and ia64_return_in_memory.
18294         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
18295         (TARGET_RETURN_IN_MEMORY): Likewise.
18296         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18297         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18298         (ia64_setup_incoming_varargs): Adjust the arguments to meet
18299         the requirement of TARGET_SETUP_INCOMING_VARARGS.
18300         (ia64_return_in_memory): Make it static.  Change the return
18301         type to bool from int.  Add an argument.
18302         (ia64_struct_value_rtx): New.
18303         * config/ia64/ia64.h: Remove commented-out definitions of
18304         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
18305         PROMOTE_PROTOTYPES.
18306         (RETURN_IN_MEMORY): Remove.
18307         (STRUCT_VALUE_REGNUM): Likewise.
18308         (STRICT_ARGUMENT_NAMING): Likewise.
18309
18310 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
18311
18312         PR target/13666
18313         * config/sparc/sparc.c (function_arg_union_value): New function.
18314         (function_arg): Use it to deal with unions.
18315         (function_value): Likewise.  Define 'regbase' only for ARCH64.
18316         Replace a conditional statement by a simpler one.
18317
18318 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
18319
18320         * config/mips/mips.c (mips16_optimize_gp): Delete.
18321         (mips_reorg): Don't call it.
18322
18323 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18324
18325         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
18326         (floatunsqihf2): Remove operand 6.
18327         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
18328         fix patterns.
18329         (ldi_conditional, ldf_conditional): Validate operands.
18330
18331 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18332
18333         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
18334         (HAVE_GAS_HIDDEN): Undefine as interim measure.
18335
18336 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18337
18338         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
18339         memory references if TARGET_EXPOSE_LDP nonzero.
18340
18341 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18342
18343         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
18344
18345 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18346
18347         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
18348         invalid operand combinations.
18349
18350 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18351
18352         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
18353         c4x_legitimate_address_p.  Fix post_modify check.
18354
18355         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
18356         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
18357
18358 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18359
18360         * config/pa/pa-protos.h: Remove the prototype for
18361         hppa_builtin_saveregs.  Add a prototype for
18362         pa_return_in_memory.
18363         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
18364         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18365         (TARGET_STRUCT_VALUE_RTX): Likewise.
18366         (TARGET_RETURN_IN_MEMORY): Likewise.
18367         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18368         (pa_struct_value_rtx): Likewise.
18369         (pa_return_in_memory): Likewise.
18370         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
18371         PA_STRUCT_VALUE_REGNUM.
18372         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
18373         (EXPAND_BUILTIN_SAVEREGS): Remove.
18374         (PROMOTE_PROTOTYPES): Likewise.
18375         (PROMOTE_FUNCTION_RETURN): Likewise.
18376
18377 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18378
18379         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
18380         (TARGET_STRUCT_VALUE_RTX): Likewise.
18381         (vax_struct_value_rtx): Likewise.
18382         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
18383         VAX_STRUCT_VALUE_REGNUM.
18384         (PROMOTE_PROTOTYPES): Remove.
18385
18386 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18387
18388         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
18389
18390 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
18391
18392         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
18393         and MIPS64 have HI/LO interlocks.  Update comment.
18394
18395 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18396
18397         * config/stormy16/stormy16-protos.h: Remove the prototype for
18398         xstormy16_setup_incoming_varargs.
18399         * config/stormy16/stormy16.c
18400         (xstormy16_setup_incoming_varargs): Remove.
18401         (xstormy16_return_in_memory): New.
18402         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
18403         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18404         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18405         (TARGET_STRUCT_VALUE_RTX): Likewise.
18406         (TARGET_RETURN_IN_MEMORY): Likewise.
18407         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
18408         (PROMOTE_FUNCTION_RETURN): Likewise
18409         (PROMOTE_PROTOTYPES): Likewise
18410         (RETURN_IN_MEMORY): Likewise
18411         (STRUCT_VALUE): Likewise
18412         (SETUP_INCOMING_VARARGS): Likewise
18413
18414 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18415
18416         * config/mips/mips.c (mips_offset_within_object_p): New function.
18417         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
18418         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
18419         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
18420
18421 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18422
18423         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
18424         (PROMOTE_FUNCTION_RETURN): Likewise.
18425
18426 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18427
18428         * config/mn10300/mn10300-protos.h: Remove the prototype for
18429         mn10300_builtin_saveregs.
18430         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
18431         (TARGET_STRUCT_VALUE_RTX): Likewise.
18432         (TARGET_RETURN_IN_MEMORY): Likewise.
18433         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18434         (mn10300_return_in_memory): Likewise.
18435         (mn10300_builtin_saveregs): Make it static.
18436         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
18437         (RETURN_IN_MEMORY): Likewise.
18438         (STRUCT_VALUE): Likewise.
18439         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18440
18441 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
18442
18443         PR bootstrap/13853
18444         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
18445
18446 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18447
18448         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
18449         using ccr.
18450
18451 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18452
18453         * config/i860/i860-protos.h: Remove the prototype for
18454         i860_saveregs.
18455         * config/i860/i860.c (i860_saveregs): Make it static.
18456         (i860_struct_value_rtx): New.
18457         (TARGET_STRUCT_VALUE_RTX): Likewise.
18458         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18459         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
18460         I860_STRUCT_VALUE_REGNUM.
18461         (EXPAND_BUILTIN_SAVEREGS): Remove.
18462
18463 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18464
18465         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
18466         (TARGET_RETURN_IN_MEMORY): Likewise.
18467         (m68hc11_struct_value_rtx): Likewise.
18468         (m68hc11_return_in_memory): Likewise.
18469         * config/m68hc11/m68hc11.h: Remove a commented-out definition
18470         of PROMOTE_PROTOTYPES.
18471         (RETURN_IN_MEMORY): Remove.
18472         (STRUCT_VALUE_REGNUM): Likewise.
18473
18474 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18475
18476         * config/mmix/mmix-protos.h: Remove the prototype for
18477         mmix_setup_incoming_varargs.
18478         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18479         (TARGET_STRUCT_VALUE_RTX): Likewise.
18480         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18481         (mmix_setup_incoming_varargs): Make it static.
18482         (mmix_struct_value_rtx): New.
18483         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
18484         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
18485         (STRUCT_VALUE_REGNUM): Remove.
18486         (SETUP_INCOMING_VARARGS): Likewise.
18487
18488 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18489
18490         * config/mips/mips-protos.h: Remove the prototypes for
18491         mips_setup_incoming_varargs and mips_return_in_memory.
18492         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18493         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18494         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18495         (TARGET_STRUCT_VALUE_RTX): Likewise.
18496         (TARGET_RETURN_IN_MEMORY): Likewise.
18497         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18498         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18499         (mips_setup_incoming_varargs): Match the prototype for
18500         TARGET_SETUP_INCOMING_VARARGS.
18501         (mips_return_in_memory): Make it static.  Add argument fntype.
18502         (mips_strict_argument_naming): New.
18503         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
18504         (PROMOTE_FUNCTION_ARGS): Likewise.
18505         (PROMOTE_FUNCTION_RETURN): Likewise.
18506         (STRUCT_VALUE): Likewise.
18507         (RETURN_IN_MEMORY): Likewise.
18508         (SETUP_INCOMING_VARARGS): Likewise.
18509         (STRICT_ARGUMENT_NAMING): Likewise.
18510
18511 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18512
18513         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
18514         (TARGET_RETURN_IN_MEMORY): Likewise.
18515         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18516         (ip2k_return_in_memory): Likewise.
18517         (ip2k_setup_incoming_varargs): Likewise.
18518         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
18519         (STRUCT_VALUE): Likewise.
18520         (STRUCT_VALUE_INCOMING): Likewise.
18521         (SETUP_INCOMING_VARARGS): Likewise.
18522
18523 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18524
18525         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
18526         (TARGET_RETURN_IN_MEMORY): Likewise.
18527         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18528         (avr_return_in_memory): Remove.
18529         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
18530         (STRUCT_VALUE): Likewise.
18531         (STRUCT_VALUE_INCOMING): Likewise.
18532         (STRICT_ARGUMENT_NAMING): Likewise.
18533
18534 2004-01-25  Jan Hubicka  <jh@suse.cz>
18535
18536         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
18537
18538 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18539
18540         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
18541         (mips_regno_mode_ok_for_base_p): Declare.
18542         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
18543         (FRAME_POINTER_REGNUM): Renumber to 78.
18544         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
18545         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
18546         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
18547         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
18548         (REG_MODE_OK_FOR_BASE_P): Likewise.
18549         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
18550         entry for 77 to "$arg" and entry for 78 to "$frame".
18551         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
18552         (mips_reg_mode_ok_for_base_p): Remove.
18553         (mips_regno_mode_ok_for_base_p): New function, derived from old
18554         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
18555         restrictions unless we're being strict.
18556         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
18557
18558 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18559
18560         * c-common.h: Fix comment typos.
18561         * c-decl.c: Likewise.
18562         * cgraphunit.c: Likewise.
18563         * combine.c: Likewise.
18564         * et-forest.c: Likewise.
18565         * flow.c: Likewise.
18566         * function.c: Likewise.
18567         * ifcvt.c: Likewise.
18568         * integrate.c: Likewise.
18569         * jump.c: Likewise.
18570         * postreload.c: Likewise.
18571         * varray.c: Likewise.
18572
18573 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18574
18575         * doc/frontends.texi: Update copyright.
18576         * doc/gcov.texi: Likewise.
18577         * doc/gty.texi: Likewise.
18578         * doc/sourcebuild.texi: Likewise.
18579         * doc/standards.texi: Likewise.
18580
18581 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
18582
18583         PR target/12978
18584         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
18585         Remove movstrqi_small because it conflicts with movstrqi_large.
18586
18587 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18588
18589         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18590         (TARGET_STRUCT_VALUE_RTX): Likewise.
18591         (cris_struct_value_rtx): Likewise.
18592         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
18593         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
18594         STRUCT_VALUE_REGNUM.
18595         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
18596
18597 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
18598
18599         PR bootstrap/13848
18600         * cse.c (cse_cc_succs): Change the mode of the source expression
18601         as soon as decide we need a new mode.  Don't permit changing modes
18602         if we found a match in a successor block.
18603         (cse_condition_code_reg): Save original mode of source expression
18604         so that we know whether we have to change the mode in other
18605         insns.
18606
18607 2004-01-24  Jan Hubicka  <jh@suse.cz>
18608
18609         * emit-rtl.c (change_address, adjust_address_1, offset_address,
18610         widen_memory_access):  Return early when there is nothing to change.
18611
18612 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
18613
18614         * simplify-rtx.c (simplify_relational_operation): Don't
18615         simplify address == constant into address + -constant == 0.
18616
18617 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18618
18619         * gcc.c (process_command): Don't internationalize the
18620         Copyright message.
18621         * mips-tfile.c (main): Likewise.
18622
18623 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
18624
18625         * cse.c: (cse_cc_succs) Fix comparison warning.
18626
18627 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18628
18629         * config/h8300/h8300.md: Remove extraneous USE in expanders.
18630
18631 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18632
18633         * config/h8300/h8300-protos.h: Provide prototypes for
18634         h8300_legitimate_constant_p and h8300_legitimate_address_p.
18635         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
18636         (h8300_rtx_ok_for_base_p): Likewise.
18637         (h8300_legitimate_address_p): Likewise.
18638         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
18639         h8300_legitimate_constant_p.
18640         (RTX_OK_FOR_BASE_P): Remove.
18641         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
18642
18643 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18644
18645         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
18646         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
18647         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
18648         (REG_OK_FOR_BASE_STRICT_P): Likewise.
18649         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
18650         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
18651         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
18652         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
18653
18654 2004-01-24  Jan Hubicka  <jh@suse.cz>
18655
18656         * cselib.c (remove_useless_values):  Do not access discarded values.
18657
18658 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
18659
18660         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
18661         arrays.
18662
18663 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18664
18665         * recog.c: Fix a typo in copyright.
18666
18667 2004-01-23  Andrew Pinski  <apinski@apple.com>
18668
18669         * config/rs6000/rs6000.md (call): Fix misappiled patch.
18670         (call_value): Likewise.
18671
18672 2004-01-23  Richard Henderson  <rth@redhat.com>
18673
18674         PR opt/12941
18675         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
18676         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
18677         if SHIFT_COUNT_TRUNCATED is set.
18678
18679 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
18680
18681         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
18682         separate real and imaginary parts.
18683         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
18684
18685 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
18686
18687         PR target/13674
18688         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
18689         loading into GPR.
18690
18691 2004-01-23  Jan Hubicka  <jh@suse.cz>
18692
18693         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
18694         change.
18695
18696         * alloc-pool.c (align_four): Kill.
18697         (create_alloc_pool): Align size to eight.
18698         (free_alloc_pool, free_pool): Invalidate deallocated data.
18699
18700 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
18701
18702         PR gcc/1532
18703         * cse.c (cse_change_cc_mode): New static function.
18704         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
18705         (cse_condition_code_reg): New function.
18706         * rtl.h (cse_condition_code_reg): Declare.
18707         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
18708         * target.h (struct gcc_target): Add fixed_condition_code_regs and
18709         cc_modes_compatible.
18710         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18711         (TARGET_CC_MODES_COMPATIBLE): Define.
18712         (TARGET_INITIALIZER): Add new initializers.
18713         * targhooks.c (default_cc_modes_compatible): New function.
18714         * targhooks.c (default_cc_modes_compatible): Declare.
18715         * hooks.c (hook_bool_intp_intp_false): New function.
18716         * hooks.h (hook_bool_intp_intp_false): Declare.
18717         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18718         (TARGET_CC_MODES_COMPATIBLE): Define.
18719         (ix86_fixed_condition_code_regs): New static function.
18720         (ix86_cc_modes_compatible): Likewise.
18721         * doc/tm.texi (Condition Code): Document new hooks.
18722
18723 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18724
18725         * fixinc/inclhack.def (bad_lval): Renamed to ...
18726         (alpha_bad_lval): ... this.
18727         Removed file list.
18728         Restrict to alpha*-dec-osf*.
18729         * fixinc/fixincl.x: Regenerate.
18730         * fixinc/tests/base/dirent.h: Remove, moving test ...
18731         * fixinc/tests/base/testing.h: ... here, reflecting new name.
18732
18733 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
18734
18735         PR c/13814
18736         * c-decl.c (diagnose_mismatched_decls): Also discard a
18737         built-in if we encounter an old-style definition with the
18738         same name.
18739
18740 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
18741
18742         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
18743         set to default{32,64}.
18744
18745 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18746
18747         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
18748         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
18749
18750 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
18751             Olivier Hainque  <hainque@act-europe.fr>
18752
18753         * fold-const.c (fold_binary_op_with_conditional_arg): Only
18754         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
18755
18756 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
18757
18758         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
18759         size for minipool references.
18760
18761 2004-01-23  Roger Sayle  <roger@eyesopen.com>
18762
18763         * real.c (real_floor, real_ceil): Tweak to allow input and output
18764         arguments to overlap.
18765         (real_round): New function to implement round(3m) semantics.
18766         * real.h (real_round): Prototype here.
18767         * builtins.c (fold_builtin_round): New function to constant fold
18768         round, roundf and roundl.
18769         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
18770
18771 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
18772
18773         PR optimization/13819
18774         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
18775         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
18776         (sh_handle_sp_switch_attribute): Remove warning.
18777
18778 2004-01-23  Jan Hubicka  <jh@suse.cz>
18779
18780         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
18781
18782 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
18783
18784         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
18785         may or may not return non-NIL.
18786         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
18787         check CANNOT_CHANGE_MODE_CLASS
18788
18789 2004-01-23  Jan Hubicka  <jh@suse.cz>
18790
18791         * basic-block.h (PROP_POSTRELOAD): New macro.
18792         (CLEANUP_LOG_LINKS): New.
18793         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
18794         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
18795
18796         * cselib.c (value_pool): New.
18797         (new_cselib_val): Use pool.
18798         (cselib_init): Initialize value_pool
18799         (cselib_finish): Free pool.
18800
18801 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
18802
18803         * config/sparc/sparc.c (scan_record_type): New function.
18804         (function_arg_slotno): Use it to determine which kinds of
18805         registers the record can be passed in.
18806
18807 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
18808
18809         * config/pa/fptr.c: Fix old-style definition.
18810
18811 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
18812
18813         PR optimization/13724
18814         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
18815         represents the zero bits produced by a ZERO_EXTEND operation.
18816
18817 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18818
18819         PR optimization/13821
18820         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
18821         correctly calculate the lowpart offset of the contracted subreg.
18822
18823 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
18824
18825         * doc/invoke.texi (Optimize Options): Note that --param arguments
18826         are subject to change without notice.
18827
18828 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18829
18830         * config.gcc (mips-sgi-irix6*o32): Removed.
18831         * config/mips/iris6-o32-as.h: Likewise.
18832         * config/mips/iris6-o32-gas.h: Likewise.
18833         * config/mips/iris6-o32.h: Likewise.
18834
18835 2004-01-22  Jan Hubicka  <jh@suse.cz>
18836
18837         * cfgcleanup.c (first_pass): New static variable.
18838         (try_forward_edges):  Add work limiting check for threading.
18839         (try_crossjump_bb):  Add work limiting check for crossjumping.
18840         (try_optimize_cfg):  Maintain first pass variable.
18841
18842 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
18843
18844         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
18845         handles complex and vector modes.
18846
18847 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18848
18849         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
18850         (REG_OK_FOR_BASE_P_STRICT): Likewise.
18851         (STRICT): Likewise.
18852
18853 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18854
18855         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
18856         (genrtl_for_stmt): Remove emit_nop calls.
18857
18858 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18859
18860         PR target/13713
18861         PR target/13324
18862         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
18863         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
18864         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
18865
18866 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18867
18868         * config/arm/arm.c: Include "debug.h".
18869         (thumb_pushpop): Take two new arguments.  Add some commentary.
18870         Output frame information when pushing.
18871         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
18872         thumb_pushpop.
18873         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
18874         offset, and pass it to thumb_pushpop.  Output CFI information.
18875         (thumb_expand_prologue): Add some frame-related markers and notes.
18876
18877 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
18878
18879         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
18880         for TARGET_64BIT.
18881         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
18882         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
18883
18884 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18885             Paolo Bonzini  <bonzini@gnu.org>
18886
18887         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
18888         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
18889         * rtl.h (subreg_lsb_1): Prototype here.
18890         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
18891         sign extensions.
18892
18893 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18894
18895         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
18896         macro need not be defined if jump-tables should contain
18897         relative addresses only when -fPIC or -fPIC is in effect.
18898
18899 2004-01-22  Jan Hubicka  <jh@suse.cz>
18900
18901         * alias.c (reg_base_value): Turn into varray.
18902         (reg_base_value_size): Kill.
18903         (old_reg_base_value): New deletable varray.
18904         (alias_invariant_size): New variable.
18905         (REG_BASE_VALUE): Update to use varray.
18906         (find_base_value): Likewise.
18907         (record_set): Likewise.
18908         (record_base_value): Likewise.
18909         (memrefs_conflict_p): Likewise.
18910         (record_set): Likewise
18911         (record_base_value): Likewise.
18912         (memrefs_conflict_p): Use alias_invariant_size.
18913         (init_alias_analysis): Use varray; set alias_invariant_size;
18914         rescale other arrays to be sized by maxreg.
18915         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
18916
18917 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18918
18919         * config/sparc/sparc.c (function_arg_slotno): Use
18920         FLOAT_TYPE_P to detect FP fields in structures.
18921         (function_arg_record_value_1): Likewise.
18922         (function_arg_record_value_2): Likewise.
18923
18924 2004-01-22  Jan Hubicka  <jh@suse.cz>
18925
18926         * function.c (allocate_struct_function): Do not initialize expr, emit
18927         and varasm.
18928         (prepare_function_start): Do it here.
18929         * c-parse.in (maybe_type_qual): Do not produce line number notes.
18930
18931 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18932
18933         PR target/13559
18934         * config/sparc/sparc.c (function_arg_record_value_3): Revert
18935         to 'word_mode' once the first slot has been filled.
18936
18937 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
18938
18939         * config/sparc/sparc.c (function_arg_record_value_1): Fix
18940         computation of the number of integer registers required.
18941
18942 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18943
18944         * config/i386/i386.md: Simplify certain comparisons of
18945         const_int.
18946
18947 2004-01-21  Andrew Pinski  <apinski@apple.com>
18948
18949         PR target/13785
18950         * config/rs6000/rs6000.md (call_value): Force operand
18951         1 not operand 0 into a register.
18952
18953 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18954
18955         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
18956         unwind-dw2-fde.h: Update copyright.
18957
18958 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18959
18960         * pa-protos.h: Update copyright.
18961         * pa.h: Likewise.
18962         * pa.md: Likewise.
18963
18964 2004-01-21  Caroline Tice  <ctice@apple.com>
18965
18966         PR target/12308
18967         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
18968         flags register.
18969         (fix_truncdfdi2): Likewise.
18970         (fix_truncsfdi2): Likewise.
18971         (*fix_truncdi_1): Likewise.
18972         (fix_truncxfsi2): Likewise.
18973         (fix_truncdfsi2): Likewise.
18974         (fix_truncsfsi2): Likewise.
18975         (*fix_truncsi_1): Likewise.
18976         (fix_truncxfhi2): Likewise.
18977         (fix_truncdfhi2): Likewise.
18978         (fix_truncsfhi2): Likewise.
18979         (*fix_trunchi_1): Likewise.
18980
18981 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18982
18983         * alias.c, basic-block.h, c-common.c, c-common.h,
18984         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
18985         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
18986         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
18987         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
18988         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
18989         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
18990         genautomata.c, genconditions.c, genemit.c, genflags.c,
18991         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
18992         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
18993         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
18994         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
18995         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
18996         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
18997         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
18998         unwind.h, varray.c, varray.h: Update copyright.
18999
19000 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
19001
19002         * config/h8300/coff.h: Update copyright.
19003         * config/h8300/elf.h: Likewise.
19004         * config/h8300/h8300-protos.h: Likewise.
19005         * config/h8300/h8300.c: Likewise.
19006         * config/h8300/h8300.h: Likewise.
19007         * config/h8300/h8300.md: Likewise.
19008
19009 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19010
19011         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
19012         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
19013         ultrix_unistd): New hacks.
19014         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
19015         ULTRIX_CONST2_CHECK): Add checks.
19016         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
19017         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
19018         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
19019         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
19020         * fixinc/tests/base/locale.h: New file.
19021         * fixinc/fixincl.x: Rebuilt.
19022
19023 2004-01-21  Andreas Jaeger  <aj@suse.de>
19024             Michael Matz  <matz@suse.de>
19025
19026         * doc/extend.texi (Extended Asm): Clarify memory clobber.
19027
19028 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
19029
19030         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
19031         _Jv_RegisterClasses through a function pointer.
19032
19033 2004-01-21  Falk Hueffner  <falk@debian.org>
19034
19035         PR target/12898
19036         * config/alpha/alpha.c (alpha_emit_set_const_1): If
19037         no_new_pseudos, use gen_rtx_SET directly for SImode constants
19038         which need multiple instructions to emit.
19039
19040 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
19041
19042         * config/m32r/m32r.h (CPP_SPEC): Define.
19043
19044 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
19045
19046         * c-decl.c (merge_decls): Kill different_binding_level and
19047         different_tu arguments; simplify throughout.
19048         (duplicate_decls): Likewise.
19049         (pushdecl, merge_translation_unit_decls): Update calls to
19050         duplicate_decls.
19051
19052 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19053
19054         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
19055         $(SYSTEM_H).
19056         (print-rtl1.o): Depend on $(SYSTEM_H).
19057
19058 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
19059
19060         PR bootstrap/12730
19061         * configure.ac: Delete definition and subsitution of docdir.
19062         Add info, man, srcman and srcinfo to target hooks. Create doc/
19063         directory.
19064         * configure: Regenerate.
19065         * Makefile.in: Don't substitute docdir and delete all references
19066         throughout.
19067         (MAKEINFOFLAGS): Define.
19068         (stmp-docobjdir): Delete.
19069         (INFOFILES, MANFILES): Define.
19070         (info): Call lang.info, srcinfo and lang.srcinfo.
19071         (generated-manpages): Call lang.man, srcman and lang.srcman.
19072         (srcinfo, srcman): New rules to copy back files to source directory.
19073         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
19074         (install-man): Revamp rule.
19075         (clean): Update dvi directory.
19076         (distclean): Delete TAGS from front end directorys.
19077         (maintainer-clean): Delete all document files in source directory.
19078
19079         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
19080         (objc.srcman, objc.srcinfo): Likewise.
19081
19082 2004-01-20  Bruce Korb  <bkorb@gnu.org>
19083
19084         * fixinc/inclhack.def(math_exception): bypass only for glibc.
19085         (matherr_decl): rename & relocate as exception_structure.
19086         This fix must precede the math_exception fix.
19087
19088 2004-01-20  Roger Sayle  <roger@eyesopen.com>
19089
19090         * fold-const.c (fold_convert): Rename to fold_convert_const.
19091         (fold_convert_const): Change arguments to take a tree_code,
19092         a type and the operand/expression to be converted.  Return
19093         NULL_TREE if no simplification is possible.  Add support for
19094         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
19095         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
19096         Adjust call to fold_convert to match new fold_convert_const.
19097         Avoid modifying the tree passed to fold in-place.
19098
19099 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
19100
19101         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
19102         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
19103         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
19104
19105 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19106
19107         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
19108         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
19109         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
19110         (emit_move_sequence): Check scratch_reg first in various if statements.
19111         Extend source simplification to handle all 64-bit CONST_INTs.
19112         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
19113         frame size.
19114         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
19115         frame offset calculations.
19116         * pa.h (NEW_HP_ASSEMBLER): Add comment.
19117         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
19118         LEGITIMATE_64BIT_CONST_INT_P): Define.
19119         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
19120         any CONST_INT as legitimate during and after reload.
19121         (VAL_32_BITS_P, INT_32_BITS): Define.
19122         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
19123
19124 2004-01-20  Jan Hubicka  <jh@suse.cz>
19125
19126         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
19127         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
19128         containing hard regs are shared.
19129         (gen_hard_reg_clobber): New function.
19130         (hard_reg_clobbers): New array.
19131         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
19132         (copy_rtx): Do not copy clobbers containing hard regs.
19133         * rtl.h (gen_hard_reg_clobber): Declare.
19134
19135 2004-01-20  Jan Hubicka  <jh@suse.cz>
19136
19137         * varray.c:  Include hashtab.h
19138         (varray_descriptor): New structure.
19139         (hash_descriptor, eq_descriptor, varray_descriptor,
19140         print_statistics): New static functions
19141         (varray_init, varray_grow): Update statistics
19142         (dump_varray_statistics): New function.
19143         * varray.h (dump_varray_statistics): Declare.
19144         * toplev.c (finalize): Call it.
19145         * Makefile.in (varray.o): Add dependency.
19146
19147 2004-01-20  Jan Hubicka  <jh@suse.cz>
19148
19149         * cselib.c: Include alloc-pool.h
19150         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
19151         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
19152         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
19153         unchain_one_elt_loc_list_pool, unchain_one_value,
19154         new_cselib_val): Simplify using allocpool.
19155         (cselib_init): Initialize allocpools.
19156         (cselib_finish): Finish allocpools.
19157         * Makefile.in (cselib.o): Depend on alloc-pool.h
19158
19159 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
19160
19161         * config/mips/mips.c (mips_load_call_address): Make the call insn
19162         use $gp if it could be calling a lazy binding stub.
19163
19164 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
19165
19166         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
19167         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
19168         (TARGET_STRUCT_VALUE_RTX): Likewise.
19169         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
19170         (PROMOTE_FUNCTION_RETURN): Remove.
19171         (STRUCT_VALUE): Remove.
19172
19173 2004-01-20  Denis Chertykov  <denisc@overta.ru>
19174
19175         PR bootstrap/13735
19176         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
19177         register as pointer after reload.
19178
19179 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19180
19181         PR optimization/12440
19182         * loop.c: Include ggc.h.
19183         (loop_optimize): Run garbage collector between optimization of loops.
19184         * Makefile.in (loop.o): Add GGC_H dependency.
19185
19186 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
19187
19188         * gcc/config/rs6000/rs6000.c (function_arg) Handle
19189         vector register special in function without prototype.
19190         (function_arg_advance): Vector parameters get always
19191         GPRs allocated for the linux64 target.
19192
19193 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19194
19195         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
19196         not TARGET_M32RX_MASK.
19197
19198 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
19199
19200         PR target/13557
19201         * config/sparc/sparc.c (function_arg): Reorder the cases.
19202
19203 2004-01-19  Per Bothner  <per@bothner.com>
19204
19205         Move cpp_reader's line_maps field to a shared global.
19206         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
19207         and change the type to a pointer rather than a struct.
19208         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
19209         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
19210         Likewise.
19211         * cppfiles.c (validate_pch):  Likewise.
19212         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
19213         Likewise.
19214         * cpperror.c (print_location):  Likewise.
19215         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
19216         * cppinit.c (cpp_create_reader):  Handle new parameter.
19217         (cpp_destroy):  Don't free line_maps - that's no longer our job.
19218         * input.h (line_table):  New variable.
19219         * toplev.c (line_table):  Declare variable.
19220         (general_init):  Initialize line_table.
19221         * c-opts.c (c_common_init_options):  Pass line_table to
19222         cpp_create_reader.
19223         * fix-header.c (read_scan_file):  New local variable line_table.
19224         Initialize, and pass it to cpp_create_reader.
19225         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
19226         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
19227
19228 2004-01-19  Per Bothner  <per@bothner.com>
19229
19230         Implement a cache for linemap_lookup.
19231         * line-map.h (struct_line_maps):  Add cache field.
19232         * line-map.c (linemap_init):  Zero cache field.
19233         (linemap_add):  Set cache field to offset of newly allocated map.
19234         (linemap_lookup):  Use and set cache field.
19235
19236 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19237
19238         PR optimization/13567
19239         * cse.c (cse_basic_block): Call cse_insn with a non-null
19240         libcall_insn for the last SET insn of a no-confilict block.
19241
19242 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
19243
19244         * Makefile.in (target_noncanonical, program_transform_name): Use
19245         immediate define instead of deferred.
19246         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
19247         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
19248         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
19249         deferred backquote.
19250
19251 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
19252
19253         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
19254         true unconditionally.
19255         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
19256         Remove.
19257         (build_unary_op, build_modify_expr): Don't handle extended
19258         lvalues.
19259         (build_component_ref, build_conditional_expr): Call non_lvalue
19260         instead of pedantic_non_lvalue.
19261         (build_c_cast): Don't condition use of non_lvalue on pedantic.
19262         * fold-const.c (fold): Don't check pedantic directly for
19263         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
19264         passed to pedantic_non_lvalue.
19265         * doc/extend.texi: Remove documentation of extended lvalues.
19266
19267 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19268
19269         PR optimization/5263
19270         * simplify-rtx.c (associative_constant_p): Delete.
19271         (simplify_associative_operation): Rewrite to linearize terms, and
19272         attempt to simplify new term against both left and right subterms.
19273         (simplify_binary_operation): Call swap_commutative_operands_p on
19274         op0 and op1, not trueop0 and trueop1.  Move the initialization of
19275         trueop0 and trueop1 down to where first needed.
19276         (simplify_relational_operation): Likewise.
19277         * rtlanal.c (commutative_operand_precedence): Also order constant
19278         operands using avoid_constant_pool_reference.
19279
19280 2004-01-19  Richard Henderson  <rth@redhat.com>
19281
19282         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
19283         don't check memory mode.
19284         (unaligned_memory_operand): Likewise.
19285         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
19286         abort for op0 not MEM.
19287
19288         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
19289         is not a reg, copy to a scratch first.
19290         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
19291         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
19292         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
19293         (reload_inqi, reload_inhi): Fix mode of op0.
19294         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
19295         reload_outhi_help): Likewise.  Use define_insn_and_split.
19296
19297         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
19298         as well as $29 dead.
19299
19300 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
19301
19302         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
19303         "tls_object" for thread-local objects.
19304         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
19305         "#tls" for thread-local sections.
19306         * configure.ac (thread-local checks): Specify --fatal-warnings in
19307         every binutils-specific checks.  For sparc*-*-*, test whether the
19308         OS is Solaris and the tools are native and act accordingly.
19309         * configure: Rebuild.
19310
19311 2004-01-19  Jeff Law  <law@redhat.com>
19312
19313         * contrib.texi: Update Paolo Carlini's entry.  New entries for
19314         Jerry Quinn and Petur Runolfsson.
19315
19316 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19317
19318         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
19319         size, don't use the larger zero-extending loads.
19320
19321 2004-01-19  Richard Henderson  <rth@redhat.com>
19322
19323         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
19324         * alpha.md (UNSPEC_NT_LDA): Remove.
19325         (UNSPEC_CVTLQ, cvtlq): New.
19326         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
19327         (extendsidi2_fix): Remove.
19328         (extendsidi2 splitter): Use cvtlq.
19329         (extendsidi2 fp peepholes): Remove.
19330         (cvtql): Use SFmode instead of SImode.
19331         (fix_trunc?fsi): Update to match.
19332         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
19333         (movsi): Rename from movsi_nofix, remove f alternatives.
19334         (movsi_nt_vms): Similarly.
19335         (movsi_fix, movsi_nt_vms_fix): Remove.
19336         (nt_lda): Remove.
19337         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
19338
19339 2004-01-19  Jan Hubicka  <jh@suse.cz>
19340
19341         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
19342         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
19343         list.
19344         (cgraph_remove_unreachable_nodes): New function
19345         (cgraph_decide_inlining_of_small_function): Fix pasto.
19346         (cgraph_decide_inlining_incrementally): Fix pasto.
19347         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
19348
19349 2004-01-19  Steven Bosscher  <stevenb@suse.de>
19350
19351         * gengtype.c (header_file): Make it static.
19352         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
19353         * gengtype.h (header_file): No longer extern.
19354
19355 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19356
19357         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
19358         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
19359         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
19360
19361 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19362
19363         * stmt.c (HAVE_casesi): Define it not already defined.
19364         (HAVE_tablejump): Likewise.
19365         (expand_end_case_type): Resort to the binary tree method if
19366         neither casesi or tablejump is available.
19367
19368 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
19369
19370         * final.c (final_scan_insn): Make non-static again.
19371         * output.h (final_scan_insn): Re-add prototype.
19372         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
19373         to final_scan_insn call.
19374         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
19375         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
19376         * config/pa/pa.c (output_lbranch, output_call): Likewise.
19377         * config/sh/sh.c (print_slot): Likewise.
19378         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
19379         (output_sibcall, sparc_flat_function_epilogue): Likewise.
19380
19381 2004-01-18  Jan Hubicka  <jh@suse.cz>
19382
19383         * basic-block.h (try_redirect_by_replacing_jump): Declare.
19384         * cfgcleanup.c (try_optimize_cfg): Use it.
19385         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
19386         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
19387         Kill hack.
19388         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
19389
19390         Revert:
19391         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19392
19393                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19394                 even after reload, just don't remove the actual jump tables.
19395
19396 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19397
19398         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
19399
19400 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19401
19402         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
19403         the size of a pointer in bytes.
19404
19405 2004-01-18  Roger Sayle  <roger@eyesopen.com>
19406
19407         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
19408         live "next" variable, which could lead to an infinite loop.
19409
19410 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
19411
19412         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
19413         block.
19414
19415         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19416         Check for NULL in the chain and remove repeated code.
19417
19418 2004-01-18  Jan Hubicka  <jh@suse.cz>
19419
19420         * coverage.c (checksum_string): Rename to ...
19421         (coverage_checksum_string): ... this one, Use crc32_string; recognize
19422         names containing random number and zero the number out in order to get
19423         match.
19424
19425 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19426
19427         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
19428
19429 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19430
19431         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
19432         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
19433         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
19434         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
19435         doc/trouble.texi: Remove trailing whitespace.
19436
19437 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19438
19439         PR target/7618
19440         * config/mips/mips.c: Include cfglayout.h.
19441         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
19442         (mips_unspec_offset_high): Add temporary register argument.
19443         (mips_load_call_address): New function, split out from...
19444         (mips_expand_call): ...here.
19445         (mips_output_cplocal): New function.
19446         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
19447         (mips_emit_loadgp): New function, split out from...
19448         (mips_expand_prologue): ...here.
19449         (mips_output_mi_thunk): New function.
19450
19451 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
19452
19453         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
19454         mcpu32): Remove redundant checks for implied target predefines.
19455
19456 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
19457
19458         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19459         Return type is unsigned int not int.
19460         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19461         Likewise.
19462
19463 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19464
19465         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
19466         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
19467         "GNU/Linux" and "Microsoft Windows" terminology.
19468
19469 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19470
19471         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
19472         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
19473         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
19474         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
19475         @smallexample instead of @example.
19476
19477 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
19478
19479         * objc/objc-act.c (build_objc_method_call): Use target
19480         hooks instead of macros to determine if ..._stret
19481         dispatchers should be used (NeXT runtime only).
19482
19483 2004-01-17  Roger Sayle  <roger@eyesopen.com>
19484
19485         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
19486         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
19487
19488 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19489
19490         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
19491         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
19492         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
19493         macros.
19494         * reload1.c (emit_reload_insns): Use them.
19495         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
19496         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
19497         for NULL PATTERN.
19498
19499 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19500
19501         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
19502         (final_scan_insn): Update to take an additional SEEN argument.  Emit
19503         a line note after the prologue.  Make static.
19504         (line_note_exists): Remove.
19505         (final): Don't initialize line_note_exists.  Update call to
19506         final_scan_insn.
19507         * output.h (final_scan_insn): Remove prologue.
19508         * function.c (set_insn_locators): Update comment.
19509         (thread_prologue_and_epilogue_insns): Add a comment.
19510
19511 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
19512
19513         PR target/10781
19514         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19515         Prototype.
19516         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19517         New function.
19518         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
19519         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
19520         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
19521
19522 2004-01-17  Jan Hubicka  <jh@suse.cz>
19523
19524         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
19525         commit.
19526
19527         * toplev.c (HAVE_conditional_execution): Provide default.
19528         (rest_of_handle_reorder_blocks): For conditional_execution target
19529         update liveness once after all transformations
19530         (rest_of_compilation): Do crossjumping before ce3.
19531
19532 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
19533
19534         * alias.c (new_alias_set): Mark last_alias_set for PCH.
19535         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
19536         for PCH.
19537         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
19538         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
19539         (get_TOC_alias_set): Mark 'set' for PCH.
19540
19541 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19542
19543         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19544         even after reload, just don't remove the actual jump tables.
19545
19546 2004-01-17  J. Brobecker  <brobecker@gnat.com>
19547
19548         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
19549         Remove checks for is_ada() and TREE_UNSIGNED.
19550         (subrange_type_die): Emit a byte_size attribute if the subrange
19551         type size is different from the base type size.
19552         (modified_type_die): Replace call to is_ada_subrange_type() by
19553         call to is_subrange_type().
19554
19555 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
19556
19557         * config/sh/sh.c: Include ggc.h.
19558
19559 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19560
19561         * Makefile.in (MD5_H): New.
19562         (fold-const.o): Depend on md5.h.
19563         (dwarf2out.o): Likewise.
19564         (cppfiles.o): Likewise.
19565         * cppfiles.c: Include md5.h.
19566         (should_stack_file): Check against list read from PCH file.
19567         (struct pchf_data): New.
19568         (pchf): New variable.
19569         (struct pchf_adder_info): New.
19570         (pchf_adder): New.
19571         (pchf_save_compare): New.
19572         (_cpp_save_file_entries): New.
19573         (_cpp_read_file_entries): New.
19574         (struct pchf_compare_data): New.
19575         (pchf_compare): New.
19576         (check_file_against_entries): New.
19577         * cpphash.h (_cpp_save_file_entries): Prototype.
19578         (_cpp_read_file_entries): Prototype.
19579         * cpppch.c (cpp_write_pch_state): Write the list of headers.
19580         (cpp_read_state): Read the list of headers.
19581
19582 2004-01-17  Jan Hubicka  <jh@suse.cz>
19583
19584         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
19585         builtin_expect specially.
19586         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
19587         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
19588         * invoke.texi (max-inline-insns-single): Set to 100.
19589         (large-function-insns): Set to 3000.
19590
19591 2004-01-16  Eric Christopher  <echristo@redhat.com>
19592             Chandrakala Chavva <cchavva@redhat.com>
19593
19594         * cppcharset.c (one_iso88591_to_utf8): New function.
19595         (convert_iso88591_utf8): Ditto. Use.
19596         (conversion_tab): Use.
19597         (_cpp_input_to_utf8): New function.
19598         (_cpp_init_iconv_buffer): Ditto.
19599         (_cpp_close_iconv_buffer): Ditto.
19600         * cpphash.h: Prototype new functions.
19601         (cpp_buffer): Add input_cset_desc.
19602         * cppinit.c: Add input_charset default.
19603         * cpplib.c (cpp_push_buffer): Support init and
19604         close of iconv.
19605         * cpplib.h (cpp_options): Add input_charset.
19606
19607 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19608
19609         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
19610         * config/alpha/unicosmk.h: Remove a commented-out definition
19611         of ASM_OUTPUT_SECTION_NAME.
19612         * config/stormy16/stormy16.h: Likewise.
19613
19614 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19615
19616         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
19617         (alpha___extern_prefix_sys_stat): ... this.
19618         Apply to <sys/mount.h>, too.
19619         Tweak to match more variations.
19620         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
19621
19622         * fixinc/inclhack.def (alpha___extern_prefix,
19623         alpha___extern_prefix_standards): New hacks to obey
19624         __PRAGMA_EXTERN_PREFIX.
19625         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
19626         test.
19627         * fixinc/tests/base/standards.h: Likewise.
19628
19629         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
19630         variations.
19631         New testcase.
19632         * fixinc/tests/base/pthread.h: Handle it.
19633
19634         * fixincl/inclhack.def (bad_lval): Sort file list.
19635         Add many missing files up to Tru64 UNIX V5.1B.
19636         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
19637         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
19638         order.
19639
19640         * fixinc/fixincl.x: Regenerate.
19641
19642 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
19643
19644         * version.c (version_string): Change to 3.5.0.
19645         * doc/include/gcc-common.texi (version-GCC): Likewise.
19646
19647 2004-01-16  Jan Hubicka  <jh@suse.cz>
19648
19649         * i386.md (load_tp_di): Fix pasto.
19650
19651         PR opt/13608
19652         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
19653
19654         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
19655         pp_c_character_constant, pp_c_floating_constant,
19656         pp_c_additive_expression, pp_c_shift_expression,
19657         pp_c_equality_expression, pp_c_and_expression,
19658         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
19659         pp_c_logical_and_expression): Remove inline modifier.
19660         * dwarf2out.c (get_AT): Likewise.
19661         * et-forest.c (et_splay): Likewise.
19662         * ra.h (ra_alloc, ra_calloc): Likewise
19663
19664 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19665
19666         * config/frv/frv-protos.h: Fix comment formatting.
19667         * config/frv/frv.c: Likewise.
19668         * config/frv/frv.h: Likewise.
19669         * config/frv/frv.md: Likewise.
19670         * config/frv/frvbegin.c: Likewise.
19671         * config/frv/frvend.c: Likewise.
19672
19673 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19674
19675         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
19676         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
19677         LINKER_DOES_NOT_WORK_WITH_DWARF2.
19678         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
19679
19680 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
19681
19682         PR 11864
19683         * postreload.c (reload_cse_simplify_operands): Don't remove
19684         implicit extension from LOAD_EXTEND_OP.
19685
19686 2004-01-16  Jan Hubicka  <jh@suse.cz>
19687
19688         PR opt/11350
19689         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
19690         after reload.
19691         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
19692         rtl_try_redirect_by_replacing_branch): Likewise.
19693
19694 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
19695
19696         PR pch/13689
19697         * alias.c (struct alias_set_entry): Mark for GC.
19698         (alias_sets): Make static, mark for GC.
19699         (record_alias_subset): Use GC to allocate alias structures.
19700         * varray.c (element): Make generic varrays GCed.
19701
19702         PR pch/13361
19703         * c-typeck.c (constructor_asmspec): Delete.
19704         (struct initializer_stack): Delete field 'asmspec'.
19705         (start_init): Delete saving of asmspec.
19706         (finish_init): Don't update constructor_asmspec.
19707         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
19708         * stmt.c (expand_asm): Duplicate strings from tree.
19709         (expand_asm_operands): Likewise.
19710         * tree.c (tree_size): Update computation of size of STRING_CST.
19711         (make_node): Don't make STRING_CST nodes.
19712         (build_string): Allocate string with tree node.
19713         * tree.def (STRING_CST): Update comment.
19714         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
19715         (tree_string): Place contents of string in tree node.
19716         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
19717         from tree.
19718
19719         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
19720         altivec operands.
19721
19722 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19723
19724         * c-common.h: Fix comment formatting.
19725         * c-cppbuiltin.c: Likewise.
19726         * c-pragma.c: Likewise.
19727         * calls.c: Likewise.
19728         * collect2.c: Likewise.
19729         * cppcharset.c: Likewise.
19730         * cpptrad.c: Likewise.
19731         * dbxout.c: Likewise.
19732         * defaults.h: Likewise.
19733         * dwarf2out.c: Likewise.
19734         * fold-const.c: Likewise.
19735         * genautomata.c: Likewise.
19736         * genconditions.c: Likewise.
19737         * genflags.c: Likewise.
19738         * gengtype.c: Likewise.
19739         * integrate.c: Likewise.
19740         * loop.c: Likewise.
19741         * predict.c: Likewise.
19742         * sdbout.c: Likewise.
19743
19744 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
19745
19746         * config/ia64/ia64.md (*movti_internal): C output template
19747         extracted to ia64.c.
19748         (*movti_internal_reg): Delete.
19749         (reload_inti, reload_outti): Use the correct mode on operand 2
19750         in the first place, don't fix it up in the output template.
19751         (movtf, reload_ointf, reload_outtf): New expanders.
19752         (*movtf_internal): New define_insn_and_split.
19753         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
19754         make static; do not hand TFmode CONST_DOUBLEs to split_double.
19755         (ia64_split_tmode_move): New function, body mostly pulled
19756         from ia64.md:*movti_internal.
19757         (ia64_function_arg_words): New function, extracted common
19758         logic from ia64_function_arg et seq.
19759         (ia64_function_arg_offset): Likewise.  Handle correctly the
19760         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
19761         (ia64_function_arg, ia64_function_arg_partial_nregs)
19762         (ia64_function_arg_advance): Use ia64_function_arg_words and
19763         ia64_function_arg_offset.
19764         (ia64_function_value): TCmode does not go in float regs.
19765         (ia64_secondary_reload_class): Also handle TFmode.
19766         * config/ia64/ia64-protos.h: Remove prototype for
19767         ia64_split_timode; add prototype for ia64_split_tmode_move.
19768
19769 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19770
19771         * Makefile.in (MAINT): Make it an immediate assignment.
19772
19773 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19774
19775         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
19776
19777 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19778
19779         * config/h8300/coff.h: Replace Hitachi with Renesas.
19780         * config/h8300/elf.h: Likewise.
19781         * config/h8300/h8300-protos.h: Likewise.
19782         * config/h8300/h8300.c: Likewise.
19783         * config/h8300/h8300.h: Likewise.
19784         * config/h8300/h8300.md: Likewise.
19785         * config/h8300/lib1funcs.asm: Likewise.
19786
19787 2004-01-15  Andrew Pinski  <apinski@apple.com>
19788
19789         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
19790         around it.
19791
19792 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19793
19794         * config/h8300/h8300.c (h8300_return_in_memory): New.
19795         (TARGET_STRUCT_VALUE_RTX): Likewise.
19796         (TARGET_RETURN_IN_MEMORY): Likewise.
19797         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
19798         (RETURN_IN_MEMORY): Likewise.
19799
19800 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19801
19802         PR optimization/13375
19803         * gcse.c (handle_avail_expr): Just return if the source is not a
19804         single set.
19805
19806 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19807             Daniel Jacobowitz  <drow@mvista.com>
19808
19809         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
19810         (EQUIV): Define.
19811         (ARM_FUNC_ALIAS): New macro.
19812         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
19813         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
19814
19815 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19816
19817         PR optimization/12372
19818         * calls.c (expand_call): Add call_fusage data for stack arguments in
19819         constant calls.
19820
19821 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
19822
19823         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
19824         (rs6000_elf_declare_function_name): Formatting.
19825         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
19826
19827 2004-01-15  Jan Hubicka  <jh@suse.cz>
19828
19829         PR bootstrap/13692
19830         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
19831         previous patch.
19832
19833 2004-01-15  Richard Henderson  <rth@redhat.com>
19834
19835         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
19836         integer regs of the same call-savedness.
19837
19838 2004-01-15  Andreas Schwab  <schwab@suse.de>
19839
19840         PR bootstrap/13562
19841         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
19842         status for NOTB/NOTW/NEGW methods.
19843
19844 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19845
19846         * doc/invoke.texi: Update dump file names.  Fix a typo.
19847
19848 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19849
19850         * builtins.c (expand_builtin_va_end): Don't use
19851         EXPAND_BUILTIN_VA_END.
19852         * system.h (EXPAND_BUILTIN_VA_END): Poison.
19853         * config/d30v/d30v.h: Remove a commented-out definition of
19854         EXPAND_BUILTIN_VA_END.
19855         * config/stormy16/stormy16.h: Likewise.
19856
19857 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19858
19859         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
19860         * targhooks.c (default_struct_value_rtx): Don't use
19861         STRUCT_VALUE_INCOMING_REGNUM.
19862
19863 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19864
19865         PR bootstrap/12744
19866         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
19867         GENINSRC and not parsedir.  Define srcextra as a langhook.
19868         * configure: Regenerate.
19869         * Makefile.in: Suppress default .l.c rule.  Don't substitute
19870         parsedir and delete all references throughout.  Conditionally define
19871         rule for srcextra dependent on GENINSRC.
19872         (stmp-docobjdir): Delete.
19873         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
19874         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
19875         and gengtype-yacc.h back to source directory.
19876         (maintainer-clean): Delete all parse files in source directory.
19877         (distclean): Delete generated files.
19878
19879         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
19880         (objc-parse.c, objc-parse.y): Don't use parsedir.
19881         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
19882         directory if requested.
19883         (po-generated): Don't use parsedir.
19884         (objc.maintainer-clean): Delete above files from source directory.
19885
19886 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19887
19888         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
19889
19890 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19891
19892         * doc/tm.texi: Replace RETURN_IN_MEMORY with
19893         TARGET_RETURN_IN_MEMORY.
19894
19895 2004-01-15  Jan Hubicka  <jh@suse.cz>
19896
19897         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
19898         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
19899         functions accepting SSE arguments
19900         (function_arg): Warn only when asked to warn.
19901         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
19902
19903 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
19904
19905         * c-parse.in (stmts_and_decls): Make label at end of compound
19906         statement a hard error.
19907
19908 2004-01-14  Jan Hubicka  <jh@suse.cz>
19909
19910         * cgraph.c (create_edge): Use local.redefined_extern_inline.
19911         * cgraph.h (cgraph_local_info): Sort fields by size; add
19912         redefined_extern_inline
19913         (cgraph_global_info): Sort fields by size.
19914         (cgraph_node): Likewise.
19915         * cgraphunit.c (cgraph_finalize_function): Se
19916         local.redefined_extern_inline on redefinition.
19917         (cgraph_analyze_function): Use it; fix formating.
19918
19919 2004-01-14  Jan Hubicka  <jh@suse.cz>
19920
19921         PR c++/10776
19922         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
19923         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
19924         bitmaps
19925         (cache_size): New variable
19926         (add_dependence): Update use; canonize early memory locations
19927         (sched_analyze_1): Likewise.
19928         (sched_analyze_2): Likewise.
19929         (init_dependency_caches): Initialize bitmaps.
19930         (free_dependency_caches): Free bitmaps
19931
19932 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19933
19934         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
19935         targetm.calls.strict_argument_naming().
19936         * target.h: Likewise.
19937
19938 2004-01-14  Richard Henderson  <rth@redhat.com>
19939
19940         PR debug/13231
19941         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
19942         instructions.
19943
19944 2004-01-14  Richard Henderson  <rth@redhat.com>
19945
19946         PR c++/12491
19947         * except.c (struct eh_region): Add u.fixup.resolved.
19948         (resolve_one_fixup_region): Split out from ...
19949         (resolve_fixup_regions): ... here.
19950
19951 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19952
19953         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
19954
19955 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19956
19957         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
19958         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
19959         (STRUCT_VALUE): Remove.
19960
19961 2004-01-14  Steven Bosscher  <stevenb@suse.de>
19962
19963         * system.h: Poison PROMOTED_MODE
19964         * integrate.c (expand_inline_function): Don't mention the
19965         PROMOTED_MODE.
19966         * loop.c (update_giv_derive): Same.
19967         * tree.h (DECL_RTL): Same.
19968
19969 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
19970
19971         PR target/9365
19972         * sh.c (gen_block_redirect): Add special handling of RETURN.
19973         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
19974         far branch target (i.e. it's a return).
19975
19976 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19977
19978         * regrename.c (find_oldest_value_reg): Fix a warning.
19979
19980 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19981
19982         PR bootstrap/12527
19983         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
19984         Move linux-gas.h and linux-elf.h before aout.h.
19985         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
19986         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
19987
19988 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19989
19990         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
19991         (CONST_INT, VOIDmode, ...).
19992
19993 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19994
19995         * regrename.c (find_oldest_value_reg): If the replacement uses
19996         multiple hard registers, check that all of them are in CLASS.
19997
19998 2004-01-14  Jan Hubicka  <jh@suse.cz>
19999
20000         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
20001         impossible.
20002
20003 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
20004
20005         * Makefile.in: Define MAINT from --enable-maintainer-mode.
20006
20007 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
20008
20009         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
20010         Calculate always vrsave_mask if TARGET_ALTIVEC.
20011         (rs6000_emit_prologue): Emit code for vrsave
20012         only if TARGET_ALTIVEC_VRSAVE.
20013         (rs6000_emit_epilogue): Likewise.
20014
20015 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
20016
20017         * config/sparc/sparc.md (tie_add32): Fix pasto.
20018         (tie_add64): Likewise.
20019
20020 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20021
20022         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
20023
20024 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
20025
20026         * config/iq2000/iq2000-protos.h: Fix comment formatting.
20027         * config/iq2000/iq2000.c: Likewise.
20028         * config/iq2000/iq2000.md: Likewise.
20029
20030 2004-01-14  J. Brobecker  <brobecker@gnat.com>
20031
20032         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
20033         (subrange_type_die): Add handle for nameless subrange types.
20034
20035 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
20036
20037         * config/h8300/h8300-protos.h: Replace do_movsi with
20038         h8300_expand_movsi.
20039         * config/h8300/h8300.c (do_movsi): Change to
20040         h8300_expand_movsi.
20041         * config/h8300/h8300.md (movsi): Replace do_movsi with
20042         h8300_expand_movsi.
20043         (movsf): Likewise.
20044
20045 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
20046
20047         * config/h8300/h8300.c (dosize): Change to
20048         h8300_emit_stack_adjustment.  Update callers.
20049
20050 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
20051
20052         * config/h8300/h8300.md (movstrictqi): Add an alternative with
20053         the source being post_inc.  Tighten the predicate for the
20054         destination to register_operand.
20055         (movstricthi): Likewise.
20056
20057 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
20058
20059         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
20060         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
20061         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
20062
20063 2004-01-14  Jan Hubicka  <jh@suse.cz>
20064
20065         Partial fix PR c++/12850
20066         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
20067         at zero nest level.
20068
20069 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
20070
20071         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
20072         pseudo-register.
20073
20074 2004-01-13  Devang Patel <dpatel@apple.com
20075
20076         PR debug/7078
20077         * dbxout.c (dbxout_symbol_name): Emit mangled names for
20078         NAMESPACE_DECL memebers.
20079
20080 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
20081
20082         PR c++/12709
20083         * c-common.c (finish_fname_decls): Use the chain only if the
20084         tree is an expr_stmt.
20085
20086 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
20087
20088         * rtl.def: Add comment about new option in automata_option.
20089
20090         * genautomata.c (PROGRESS_OPTION): New macro.
20091         (progress_flag): New global variable.
20092         (gen_automata_option): Process `progress'.
20093         (transform_insn_regexps, check_unit_distributions_to_automata,
20094         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
20095         expand_automata, write_automata): Print about the progress only if
20096         progress_flag.  Remove fflush.
20097         (initiate_automaton_gen): Process command line flag `-progress'.
20098
20099         * doc/md.texi: Describe the new option.
20100
20101 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20102
20103         * cfg.c (dump_bb): Dump entry edges.
20104
20105 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
20106
20107         * arm.c (thumb_legitimate_address_p): Only allow constant pool
20108         references from SImode.
20109         * arm.md (thumb_movhi_insn): Don't allow minipool references.
20110
20111 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
20112
20113         * system.h (TEXT_SECTION): Poison.
20114         * varasm.c (text_section): Don't use TEXT_SECTION.
20115         * config/sh/sh.c (sh_file_start): Fix a comment typo.
20116         * doc/tm.texi (TEXT_SECTION): Remove.
20117
20118 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
20119
20120         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
20121
20122 2004-01-12  James E Wilson  <wilson@specifixinc.com>
20123
20124         * unwind-libunwind.c: Delete.
20125
20126 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
20127
20128         PR 13656
20129         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
20130         oldtype is set, set *newtypep or *oldtypep too.  Do not set
20131         them at the very end.
20132         (validate_proto_after_old_defn): Restructure for comprehensibility;
20133         make error messages clearer.
20134
20135 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
20136
20137         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
20138         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
20139         * varray.c: No need to prototype error.
20140         (varray_check_failed): Wrap long string onto two lines.
20141         (varray_underflow): New function.
20142
20143 2004-01-13  Steven Bosscher  <stevenb@suse.de>
20144
20145         PR c++/13376
20146         * function.h (struct function): Kill `name' field.
20147         (current_function_name): Make it an extern function.
20148         * function.c (current_function_name): New function.
20149         * graph.c: Update all uses of current_function_name.
20150         * gcse.c: Likewise.
20151         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
20152         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
20153         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
20154         instead of a strcmp with "main".
20155
20156 2004-01-13  Jan Hubicka  <jh@suse.cz>
20157
20158         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
20159
20160         * cgraphunit.c (cgraph_optimize_function):  Always do
20161         optimize_inline_calls when there is always_inline callee.
20162         (cgraph_decide_inlining): Fix formating.
20163         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
20164         functions.
20165         (expand_call_inline): Likewise.
20166         * toplev.h (sorry): Fix prototype.
20167
20168 2004-01-12  Roger Sayle  <roger@eyesopen.com>
20169
20170         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
20171         conditional jumps that drop through to unconditional jumps or the
20172         end of the sequence.
20173
20174 2004-01-13  Jan Hubicka  <jh@suse.cz>
20175
20176         * alias.c (new_alias_set): Construct the alias_set varray.
20177         (init_alias_once): Don't do it here.
20178
20179 2004-01-12  Marc Espie <espie@openbsd.org>
20180
20181         * system.h: handle YYBYACC like YYBISON.
20182
20183 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
20184
20185         PR target/10847
20186         * config.gcc: No longer includes conflicting header sparc/sol2.h when
20187         building on sparc64-*-openbsd*.
20188
20189 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
20190
20191         PR debug/13539
20192         * dbxout.c (dbxout_type): Protected inheritance is not
20193         private but protected.
20194
20195 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
20196
20197         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
20198
20199 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
20200
20201         PR optimization/12508.
20202         * combine.c (try_combine): Remove a dead set in a parallel
20203         even if its destination is a subreg.
20204
20205         Revert:
20206         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
20207         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
20208         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
20209
20210 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
20211
20212         * real.c: Update copyright date.
20213         * emit-rtl.c: Likewise.
20214         * rtl.h: Likewise.
20215         * dwarf2out.c: Likewise.
20216         * config/rs6000/darwin-ldouble.c: Likewise.
20217         * config/rs6000/rs6000.md: Likewise.
20218
20219 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
20220
20221         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
20222         TFmode to SImode libfuncs.
20223
20224 2004-01-12  Roger Sayle  <roger@eyesopen.com>
20225
20226         PR middle-end/11397
20227         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
20228
20229 2004-01-12  Jan Hubicka  <jh@suse.cz>
20230
20231         PR opt/12826
20232         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
20233         stored.
20234
20235         PR opt/12863
20236         * cfgcleanup.c (label_is_jump_target_p): Move to...
20237         * rtlanal.c (label_is_jump_target_p): ... here.
20238         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
20239         edges unified with branch edges.
20240
20241 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
20242
20243         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
20244         high word of an integral CONST_DOUBLE.
20245
20246 2004-01-12  Paul Brook  <paul@codesourcery.com>
20247
20248         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
20249
20250 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
20251
20252         PR target/13585
20253         * sh-protos.h (check_use_sfunc_addr): Declare.
20254         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
20255         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
20256
20257 2004-01-12  Jan Hubicka  <jh@suse.cz>
20258
20259         * alias.c:  Invlude varray.h
20260         (alias_sets): Turn into varray.
20261         (get_alias_set_entry): Use VARRAY; mark inline.
20262         (mems_in_disjoint_alias_sets_p): Mark inline.
20263         (record_alias_subset): Use varray.
20264         (init_alias_once): Initialize varray.
20265         (new_alias_set): Grow array.
20266         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
20267
20268 2004-01-12  Jan Hubicka  <jh@suse.cz>
20269
20270         Partial fix for PR opt/10776 II
20271         * cselib.c: Include params.h
20272         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
20273         locations.
20274         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
20275         * Makefile.in (cselib.o): Depend on params.h
20276
20277 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
20278
20279         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
20280         simplify_unary_operation if the operand has a known mode.
20281
20282 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
20283
20284         PR target/13534
20285         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
20286         predicate to handle 'ld' conform addresses.
20287         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
20288         contraint.
20289         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
20290         are memory contraints.
20291         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
20292         New prototype.
20293         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
20294         Change 'o' to 'Y' constraint.
20295         (*movdf_softfloat64): Ditto.
20296
20297 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
20298
20299         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
20300         brace-enclosed syntax in all C output statements.
20301
20302 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
20303
20304         PR target/13401
20305         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
20306         Objective-C language type value is 14.
20307
20308 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
20309
20310         PR c/12148
20311         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
20312         `int' in a number of places to make sure we always have a SImode
20313         and not a HImode.  Add a 'L' suffix to a number of constants.
20314
20315 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20316
20317         * pa.c: Don't include obstack.h.
20318
20319         * pa.md: Correct constraint in pattern for loading PIC label address.
20320
20321 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20322
20323         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
20324          before defining.
20325
20326 2004-01-11  Steven Bosscher  <stevenb@suse.de>
20327
20328         PR fortran/9972
20329         * toplev.c (rest_of_handle_inline): Also consider functions
20330         for deferral if the language is GNU F77.
20331
20332 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
20333
20334         * c-decl.c (diagnose_arglist_conflict): Add missing space to
20335         diagnostic messages.
20336
20337 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
20338
20339         PR middle-end/13392
20340         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
20341         to drop through label.  Don't fall back to SCC even when conditional
20342         jump has not been found.
20343
20344 2004-01-11  Jan Hubicka  <jh@suse.cz>
20345
20346         * invoke.texi: Fix syntax error in previous patch.
20347
20348         Partial fix for PR opt/10776
20349         * Makefile.in (reload.o): Include param.h
20350         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
20351         * reload.c: Include params.h.
20352         (find_equiv_reg): Work limiting check.
20353         * invoke.texi: Document.
20354
20355 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20356
20357         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
20358         out-of-bounds accesses to string constants.  Simplify mips16
20359         case accordingly.
20360
20361 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20362
20363         PR optimization/13469
20364         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
20365         reload_cse_regs (-fnon-call-exceptions only).
20366
20367 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
20368
20369         * config/mcore/lib1.asm: Fix comment formatting.
20370         * config/mcore/mcore-elf.h: Likewise.
20371         * config/mcore/mcore.c: Likewise.
20372         * config/mcore/mcore.h: Likewise.
20373         * config/mcore/mcore.md: Likewise.
20374
20375 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20376
20377         * c-decl.c (duplicate_decls): Break apart into...
20378         (diagnose_arglist_conflict, validate_proto_after_old_defn)
20379         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
20380         ... these new functions.  Restructure for comprehensibility.
20381         Remove various archaic special cases.  Always report the
20382         location of the previous declaration when a diagnostic is issued.
20383         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
20384         (match_builtin_function_types): Delete unnecessary forward declaration.
20385
20386 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20387
20388         * genautomata.c (make_automaton, NDFA_to_DFA):
20389         Print progress bars with '.' characters instead of '*'.
20390         (build_automaton): Change notes to match.
20391
20392 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20393
20394         * config/m32r/m32r.md: Use define_constants for unspec and
20395         unspec_volatile.
20396
20397 2004-01-10  Jan Hubicka  <jh@suse.cz>
20398
20399         PR opt/11635
20400         * expr.c (expand_expr_real):  More curefully expand union casts.
20401
20402 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20403
20404         * config/m32r/m32r.md (flush_icache): Use 1 for
20405         unspec_volatile.
20406
20407 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
20408             James E Wilson  <wilson@specifixinc.com>
20409
20410         PR debug/12860
20411         * dbxout.c (dbxout_symbol): Remove initialization of
20412         current_sym_code, current_sym_value, and current_sym_addr.
20413         (dbxout_symbol_location): Same.
20414         (dbxout_prepare_symbol): Zero current_sym_code,
20415         current_sym_value, and current_sym_addr.
20416
20417 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
20418
20419         * tree.c (get_unwidened): Reorder conditions so that the null pointer
20420         check is done first.
20421
20422 2004-01-09  Eric Christopher  <echristo@redhat.com>
20423
20424         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
20425         if we're running mark_constant_function.
20426
20427 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
20428
20429         PR target/12561
20430         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
20431
20432 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
20433
20434         PR debug/11231
20435         * dbxout.c (dbxout_type_fields): Return if any item is
20436         error_mark_node or the type is error_mark_node.
20437
20438 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
20439
20440         * config/rs6000/darwin-ldouble.c: Add big comment explaining
20441         exactly what is expected as a 'long double'.
20442         (_xlqadd): When a value to be returned is representable as a
20443         'double', just return it directly, do not construct it using a union.
20444         Also, correct final fixup.
20445         (_xlqmul): Likewise.
20446         (_xlqdiv): Likewise.
20447         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
20448
20449         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
20450
20451 2004-01-09  Richard Henderson  <rth@redhat.com>
20452
20453         * recog.c (constrain_operands): Validate mem operands.
20454
20455 2004-01-09   James E Wilson  <wilson@specifixinc.com>
20456
20457         * gcc.c (init_spec): Remove -lunwind from shared case.
20458         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
20459
20460 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
20461
20462         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
20463         * configure: Regenerate
20464
20465 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
20466
20467         PR c/11234
20468         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
20469         between function and object pointers.
20470         (digest_init): When comparing a pointer to function type to the
20471         target type, only apply TREE_TYPE once to the pointer to function
20472         type.
20473         * except.c (for_each_eh_label_1): Treat data as a pointer to a
20474         function pointer rather than casting it to a function pointer.
20475         (for_each_eh_label): Update caller.
20476         * recog.h (struct insn_data): Use a struct or union for output.
20477         * genoutput.c (output_insn_data): Update.
20478         * final.c (get_insn_template): Update.
20479
20480 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20481
20482         * expr.h (expand_expr): Make it a macro, not a function.
20483         (expand_expr_real): New function.
20484         * expr.c (store_expr): Adjust logic for deciding whether or not to
20485         copy the value returned by expand_expr.
20486         (expand_expr): Rename to ...
20487         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
20488         calls to language hooks.
20489         * c-common.h (c_expand_expr): Adjust prototype.
20490         * c-common.c (c_expand_expr): Add alt_rtl parameter.
20491         * langhooks-def.h (lhd_expand_expr): Change prototype.
20492         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
20493         * langhooks.h (lang_hooks): Change type of expand_expr.
20494         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
20495         (last_expr_alt_rtl): Likewise.
20496         (expand_expr_stmt_value): Set last_expr_alt_rtl.
20497         (clear_last_expr): Clear it.
20498         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
20499         (expand_end_bindings): Save and restor last_expr_alt_rtl.
20500         * tree.def (RTL_EXPR): Give it an additional operand.
20501         * tree.h (RTL_EXPR_ALT_RTL): New macro.
20502
20503 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20504
20505         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
20506         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
20507
20508 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20509
20510         PR target/13380.
20511         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
20512         or (ne:SI (reg:CC 17) (const_int 0)).
20513         Be specific about modes wherever possible.
20514
20515 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20516
20517         * config/m32r/m32r.c (m32r_expand_block_move): Call
20518         gen_movestrsi_internal with two more arguments.
20519         (m32r_output_block_move): Adjust operand numbers.
20520         Properly update the source and destination pointers.
20521         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
20522         'r+'.  Change the set detinations to match_operand.
20523
20524 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20525
20526         * final.c (FIRST_INSN_ADDRESS): Remove.
20527         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
20528         * system.h (FIRST_INSN_ADDRESS): Poison.
20529         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
20530         * config/m32r/m32r-protos.h: Remove the prototype for
20531         m32r_first_insn_address.
20532         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
20533         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
20534         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
20535
20536 2004-01-09  J. Brobecker  <brobecker@gnat.com>
20537
20538         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
20539         we just created.
20540         (is_ada_subrange_type): DIEs for enumeration subtypes should be
20541         emitted as subrange types too.
20542         (subrange_type_die): Add handling of enumeration subtypes.
20543
20544 2004-01-08  Richard Henderson  <rth@redhat.com>
20545
20546         PR opt/12441
20547         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
20548         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
20549         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
20550         (ix86_address_cost): Be prepared for SUBREGed registers.
20551         (legitimate_address_p): Accept SUBREGed registers.
20552
20553 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
20554
20555         * Makefile.in: Rename configure.in to configure.ac
20556         * doc/sourcebuild.texi: Likewise.
20557         * configure: Regenerate.
20558         * config.in: Regenerate.
20559
20560 2004-01-08  Stuart Hastings  <stuart@apple.com>
20561
20562         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
20563
20564 2004-01-08  Jan Hubicka  <jh@suse.cz>
20565
20566         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
20567
20568 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
20569
20570         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
20571         (UNSPEC_FIX_TRUNC_TF): New constant.
20572         (movtf_internal): Make splitter active only when insn is active.
20573         (extenddftf2): Rewrite to properly load zero into low part.
20574         (extenddftf2_internal): New.
20575         (extendsftf2): Rewrite.
20576         (truncdftf2): Correct length.
20577         (floatditf2): Delete.
20578         (fix_trunc_helper): New.
20579         (fix_trunctfdi2): Use fix_trunc_helper.
20580         (fix_trunctfsi2): Likewise.fix_trunc
20581         (fix_trunctfsi2_internal): New.
20582
20583         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
20584         addresses are legitimate on Darwin even when flag_pic.
20585         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
20586         non-offsettable addresses for loads of TFmode constants.
20587
20588 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20589
20590         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
20591         variables in the appropriate bss section.
20592
20593 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
20594
20595         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
20596         target_flags has MASK_POWERPC64 when -m64.
20597         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
20598         to 620, 630, power3, power4 and rs64a entries.
20599         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
20600
20601 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
20602
20603         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
20604         floating-point constants.
20605
20606 2004-01-08  J. Brobecker  <brobecker@gnat.com>
20607
20608         * dwarf2out.c (subrange_type_die): Add context_die parameter.
20609         Create the subrange_type DIE using the given context DIE.
20610         (modified_type_die): Update call to subrange_type_die.
20611
20612 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
20613
20614         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
20615         Add multiple-include guard.
20616
20617 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
20618
20619         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
20620         all vector constant loadable by vsplt*.
20621         (output_vec_const_move): Likewise.
20622
20623 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20624
20625         PR c/6024
20626         * c-typeck.c (comptypes): Only treat enumerated types in the same
20627         translation unit as compatible with each other when they are the
20628         same type.
20629         * doc/extend.texi: Update.
20630
20631 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20632
20633         PR c/12165
20634         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
20635         array type from the array element type.
20636
20637 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
20638
20639         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
20640         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
20641         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
20642         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
20643         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
20644
20645 2004-01-06  Eric Christopher  <echristo@redhat.com>
20646
20647         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
20648         (DWARF2_DEBUGGING_INFO): Define.
20649         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
20650         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
20651         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
20652         for irix as.
20653         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
20654         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
20655         * config/mips/iris5gas.h: Ditto.
20656         (DBX_DEBUGGING_INFO): Remove.
20657         (DWARF2_DEBUGGING_INFO): Ditto.
20658         (MIPS_DEBUGGING_INFO): Ditto.
20659         (PREFERRED_DEBUGGING_TYPE): Ditto.
20660         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
20661         (PREFERRED_DEBUGGING_TYPE): Ditto.
20662         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
20663         * config/mips/elf64.h: Ditto.
20664
20665 2004-01-06  Jan Hubicka  <jh@suse.cz>
20666
20667         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
20668         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
20669
20670 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
20671
20672         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
20673         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
20674         * config/rs6000/darwin-ldouble.c: New.
20675
20676         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
20677         for constants.
20678         (constant_subword): Delete.
20679         * rtl.h (constant_subword): Delete prototype.
20680         (immed_double_const): Is not in varasm.c.
20681         * simplify-rtx.c (simplify_immed_subreg): New.
20682         (simplify_subreg): Use simplify_immed_subreg.
20683
20684         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
20685         than trying to generate RTL directly.
20686         (fix_trunctfsi2): Use expand_fix rather than trying to generate
20687         RTL directly.
20688
20689         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
20690
20691 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
20692
20693         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
20694         function into a separate macro.
20695         (read_only_data_section): Add void argument.
20696         (private_data_section): Same.
20697         (read_only_private_data_section): Same.
20698         (toc_section): Same.
20699
20700 2004-01-06  Jan Hubicka  <jh@suse.cz>
20701
20702         * invoke.texi:  Remove typo in last change.
20703
20704         PR target/10301
20705         * config.gcc: Accept opteron and athlon-64 as variants
20706         of k8.
20707         * i386.c (override_options): Likewise.
20708         * invoke.texi (i386 -mtune): Expand documentation.
20709
20710 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20711
20712         * alias.c: Fix comment typos.
20713         * builtins.c: Likewise.
20714         * cfg.c: Likewise.
20715         * df.c: Likewise.
20716         * dominance.c: Likewise.
20717         * dwarf2out.c: Likewise.
20718         * emit-rtl.c: Likewise.
20719         * expr.c: Likewise.
20720         * final.c: Likewise.
20721         * fold-const.c: Likewise.
20722         * gcse.c: Likewise.
20723         * genattrtab.c: Likewise.
20724         * genrecog.c: Likewise.
20725         * gensupport.c: Likewise.
20726         * ggc-zone.c: Likewise.
20727         * integrate.c: Likewise.
20728         * local-alloc.c: Likewise.
20729         * loop.c: Likewise.
20730         * recog.c: Likewise.
20731         * regmove.c: Likewise.
20732         * reg-stack.c: Likewise.
20733         * reorg.c: Likewise.
20734         * rtlanal.c: Likewise.
20735         * rtl.h: Likewise.
20736         * sched-ebb.c: Likewise.
20737         * simplify-rtx.c: Likewise.
20738         * toplev.c: Likewise.
20739         * varasm.c: Likewise.
20740
20741 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20742
20743         * doc/install.texi: Fix typos.
20744         * doc/invoke.texi: Likewise.
20745         * doc/md.texi: Likewise.
20746
20747 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20748
20749         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
20750
20751 2004-01-06  Jan Hubicka  <jh@suse.cz>
20752
20753         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
20754         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
20755         of MMX_REGPARM.
20756         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
20757         add MMX_REGPARM.
20758         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
20759         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
20760         (MMX_REGPARM_MAX): Similarly for -mmmx.
20761
20762 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20763
20764         * config/sh/linux.h: Fix comment formatting.
20765         * config/sh/netbsd-elf.h: Likewise.
20766         * config/sh/sh.c: Likewise.
20767         * config/sh/sh.h: Likewise.
20768         * config/sh/vxworks.h: Likewise.
20769
20770 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20771
20772         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
20773         * toplev.c (output_file_directive): Don't use
20774         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
20775
20776 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
20777
20778         * toplev.c: Fix broken checkin of 2003-12-30.
20779
20780 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
20781
20782         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
20783         (USING_MMAP): We don't support non-mmap.
20784         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
20785         large objects.
20786         (struct page_entry): Remove bytes_free.
20787         (struct page_table_chain): Remove.
20788         (struct globals): Remove page_table member.
20789         (loookup_page_table_entry): Function deleted.
20790         (set_page_table_entry): Ditto.
20791         (ggc_allocated_p): No longer need page table lookups.
20792         (ggc_marked_p): Ditto.
20793         (alloc_small_page): Don't care about bytes_free anymore.
20794         (alloc_large_page): Round up size.
20795         (ggc_alloc_zone_1): Mark large objects as such, and calculate
20796         their size the new way.
20797         Remove page table lookups and setting.
20798         (ggc_get_size): Calculate large object size the new way.
20799         (sweep_pages): Redo to account for fact that we no longer have
20800         bytes_free.
20801         (ggc_collect): No longer need to reincrement bytes_free.
20802         (ggc_pch_alloc_object): Handle new large objects properly.
20803         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
20804
20805 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20806
20807         * doc/invoke.texi: Remove a page break.
20808
20809 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20810
20811         * config/avr/avr.c (avr_output_function_prologue): Remove an
20812         extra pair of curly braces.
20813
20814 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20815
20816         * config/mn10300/mn10300.c: Fix comment formatting.
20817         * config/mn10300/mn10300.h: Likewise.
20818
20819 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20820
20821         * tree.h: Update documentation on nothrow_flag.
20822         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
20823         types.
20824
20825 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20826
20827         * doc/invoke.texi: Remove traces of dead ports.
20828
20829 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20830
20831         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
20832         option.
20833
20834 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20835
20836         PR target/12945
20837         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
20838         counter labels.
20839         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
20840         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
20841         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
20842         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
20843         (mips_symbol_insns): Don't trust the local/global classification.
20844         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
20845         (override_options): Make -mabicalls -fno-unit-at-a-time imply
20846         -mno-explicit-relocs.
20847         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
20848         between local and global symbols.
20849
20850 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20851
20852         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
20853         (mips_preferred_reload_class): Declare.
20854         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
20855         (EXTRA_CONSTRAINT): Update accordingly.
20856         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
20857         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
20858         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
20859         mips_dangerous_for_la25_p.
20860         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
20861         if mips_dangerous_for_la25_p.
20862
20863 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
20864
20865         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
20866         warning.
20867
20868 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
20869
20870         * configure.ac: Use AC_PROG_CPP_WERROR.
20871         * configure: Regenerate.
20872
20873 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
20874
20875         * .cvsignore: Add autom4te.cache.
20876
20877 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
20878
20879         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
20880         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
20881         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
20882         then architecture options, then ABI options.  General rewording.
20883
20884 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
20885
20886         PR c/3414
20887         * doc/extend.texi: Clarify definition of malloc attribute.
20888
20889 2004-01-04  Jan Hubicka  <jh@suse.cz>
20890
20891         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
20892         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
20893         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
20894         (cgraph_inline_p): Add extra argument reason.
20895         * cgraphunit.c: Minor formating fixes.
20896         cgraph_first_inlined_callee): New functions.
20897         (record_call_1): Record builtins too.
20898         (cgraph_analyze_function): Update inline_failed messages.
20899         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
20900         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
20901         (cgraph_check_inline_limits): Likewise; Add argument reason.
20902         (cgraph_set_inline_failed): New static function.
20903         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
20904         reasons.
20905         (cgraph_inline_p): Add new argument reason.
20906         * tree-inline.c (expand_call_inline):  Update warning.
20907
20908 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
20909
20910         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
20911         with modern equivalents.
20912         * configure: Regenerate.
20913
20914         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
20915         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
20916         * configure: Regenerate.
20917
20918         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
20919
20920         * configure.in: Rename to configure.ac.
20921         * configure.ac: Renamed from configure.in; make minimum necessary
20922         changes for autoconf 2.5x.
20923         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
20924         * configure: Regenerate with autoconf 2.57.
20925
20926 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
20927
20928         * config/mips/linux.h: Fix comment formatting.
20929         * config/mips/mips.c: Likewise.
20930         * config/mips/mips.h: Likewise.
20931         * config/mips/mips.md: Likewise.
20932         * config/mips/netbsd.h: Likewise.
20933         * config/mips/windiss.h: Likewise.
20934
20935 2004-01-02  Richard Henderson  <rth@redhat.com>
20936
20937         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
20938         for sse and 387; add suppression for mmx.
20939
20940 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
20941
20942         * loop.c (loop_optimize): Free all loops_info's mems.
20943
20944         * c-typeck.c (finish_init): Free spelling_base before
20945         setting it again.
20946
20947         * cfgloop.c (flow_loops_find): Always free the sbitmap
20948         headers.
20949
20950         * predict.c (estimate_probability): Free bbs after being
20951         done with it.
20952
20953 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20954
20955         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
20956         const_8bit_operand and call_address_operand.
20957
20958 2004-01-02  Jan Hubicka  <jh@suse.cz>
20959
20960         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
20961         when there is nothing to inline but warnings are requested.
20962         (cgraph_decide_inlining):  Fix memory leak.
20963
20964 2004-01-02  Jan Hubicka  <jh@suse.cz>
20965
20966         * expr.c (store_constructor):  Fix pasto in previous patch.
20967
20968 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20969
20970         * config/i386/cygming.h: Fix comment formatting.
20971         * config/i386/djgpp.h: Likewise.
20972         * config/i386/gthr-win32.c: Likewise.
20973         * config/i386/i386-interix.h: Likewise.
20974         * config/i386/i386.c: Likewise.
20975         * config/i386/i386.h: Likewise.
20976         * config/i386/openbsd.h: Likewise.
20977         * config/i386/winnt.c: Likewise.
20978         * config/i386/xm-mingw32.h: Likewise.
20979
20980 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
20981
20982         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
20983         copyright and last modification dates.
20984
20985 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
20986
20987         * doc/install.texi (Specific): Mention x86_64.
20988
20989 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20990
20991         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
20992         Call force_operand on plus_constant result.
20993
20994 2004-01-01  Jan Hubicka  <jh@suse.cz>
20995
20996         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
20997         * expr.c (store_constructor): Use vec_init pattern.
20998         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
20999         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
21000         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
21001         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
21002         New patterns.
21003         (sse2_unpc?pd): Fix pattern.
21004         (sse2_movlpd): Kill.
21005         (sse2_movsd): Deal with movlpd too.
21006         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
21007         (ix86_expand_vector_init): New.
21008         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
21009         * md.texi (vec_set, vec_extract): Document
21010
21011 2003-12-31  Jan Hubicka  <jh@suse.cz>
21012
21013         PR opt/13473
21014         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
21015         ASM input operands
21016
21017         PR opt/12617
21018         * toplev.c (dump_file_index): Reorder ce3 and bbro.
21019         (dump_file): Likewise.
21020         (rest_of_compilation): Likewise.
21021
21022         PR debug/13367
21023         * cgraph.c (cgraph_function_possibly_inlined):  Even with
21024         flag_really_no_inline we inline always_inline functions.
21025         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
21026         for non-always_inline functions when there is flag_really_no_inline.
21027         (cgraph_decide_inlining): Limit work done when not inlining.
21028         (cgraph_decide_inlining_incrementally): Likewise.
21029         (cgraph_optimize_function): Check whether something got inlined.
21030         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
21031         extern inline functions when not inlining.
21032
21033         * opts.c (decode_options):  Disable crossjumping at -O1
21034         * invoke.texi (-O1): Document change.
21035
21036 See ChangeLog.10 for earlier changes.