OSDN Git Service

* c-common.h (check_function_format): Remove first parameter.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         * c-common.h (check_function_format): Remove first parameter.
4         * c-format.c (format_check_context): Remove status.
5         (check_format_info, check_format_info_main,
6         maybe_read_dollar_number, avoid_dollar_number,
7         finish_dollar_format_checking, check_format_types,
8         check_function_format): Remove first parameter.  Don't use
9         status_warning.
10         (check_format_arg): Don't use status_warning.
11         (status_warning): Remove.
12         * c-common.c (check_function_arguments): Update call to
13         check_function_format.
14
15 2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
16
17         * config/sparc/sparc-protos.h (output_cbranch): Constify return
18         value.
19         (output_v9branch): Likewise.
20         (sparc_v8plus_shift): Likewise.  Rename into output_v8plus_shift.
21         * config/sparc/sparc.c (output_cbranch): Constify return value.
22         Prettify output for delay slots.
23         (output_v9branch): Likewise.
24         (sparc_v8plus_shift): Constify return value.  Rename into
25         output_v8plus_shift.
26         * config/sparc/sparc.md (ashldi3_v8plus): Adjust call to
27         sparc_v8plus_shift.
28         (ashrdi3_v8plus): Likewise.
29         (lshrdi3_v8plus): Likewise.
30         (call_address_struct_value_sp32): Prettify output for delay slots.
31         (call_symbolic_struct_value_sp32): Likewise.
32         (call_address_untyped_struct_value_sp32): Likewise.
33         (call_symbolic_untyped_struct_value_sp32): Likewise.
34
35 2004-06-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
36
37         * common.opt (ftree-loop-optimize): New flag.
38         * tree-flow.h (kill_redundant_phi_nodes): Declare.
39         * tree-optimize.c (init_tree_optimization_passes): Add pass_loop.
40         * tree-pass.h (pass_loop_init, pass_loop_done): Declare.
41         * tree-ssa-loop.c (current_loops): New variable.
42         (tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init,
43         tree_ssa_loop_done): New functions.
44         (pass_loop, pass_loop_init, pass_loop_done): New passes.
45         * tree-ssa.c (kill_redundant_phi_nodes): Export.
46         * doc/invoke.texi (-ftree-loop-optimize): Document.
47
48 2004-06-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
49
50         * tree-ssa-loop-ch.c: New file.
51         * Makefile.in (tree-ssa-loop-ch.o): Add.
52         (tree-into-ssa.o): Add GGC_H dependency.
53         * tree-cfg.c (tree_duplicate_bb): Copy virtual arguments.
54         * tree-flow.h (rewrite_into_ssa): Declaration changed.
55         (rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name):
56         Declare.
57         * tree-into-ssa.c: Include ggc.h.
58         (struct def_blocks_d): Add phi_blocks field.
59         (struct mark_def_sites_global_data): Add names_to_rename field.
60         (struct ssa_name_info): New.
61         (compute_global_livein): Export.
62         (set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block,
63         insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for,
64         register_new_def, get_reaching_def, def_blocks_free,
65         get_def_blocks_for, rewrite_into_ssa): Modified to work with
66         rewrite_ssa_into_ssa.
67         (get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def,
68         set_current_def, ssa_mark_def_sites_initialize_block,
69         ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name,
70         ssa_register_new_def, ssa_rewrite_initialize_block,
71         ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block,
72         ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New
73         functions.
74         (pass_build_ssa): Call rewrite_all_into_ssa.
75         * tree-optimize.c (execute_todo, execute_one_pass,
76         tree_rest_of_compilation): Allocate vars_to_rename only once.
77         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter
78         to rewrite_into_ssa.
79         * tree-ssa-loop.c (should_duplicate_loop_header_p,
80         mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p,
81         copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c.
82         Use rewrite_ssa_into_ssa.
83         * tree-ssa-operands.c (copy_virtual_operands): New function.
84         * tree-ssa-operands.h (copy_virtual_operands): Declare.
85         * tree.h (struct tree_ssa_name): Add aux field.
86         (SSA_NAME_AUX): New macro to access it.
87
88 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
89
90         * prefix.c (lookup_key): Cast buffer to LPBYTE.
91
92 2004-06-30  Per Bothner  <per@bothner.com>
93
94         Conditionally compile support for --enable-mapped_location.
95         * input.h:  #include line-map.h for source_location typedef.
96         (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location,
97         LOCATION_FILE, LOCATION_LINE):  New macros and functions.
98         (expanded_location, source_locus):  New typedefs.
99         (push_srcloc):  Change parameter list if USE_MAPPED_LOCATION.
100         * rtl.def (NOTE, ASM_OPERANDS):  Modify specifcation, if
101         USE_MAPPED_LOCATION.
102         * rtl.h (NOTE_DELETED_LABEL_NAME):  New macro.
103         (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED):
104         New conditional macros.
105         (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE):  Replace
106         by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION.
107         * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION,
108         EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO,
109         DECL_IS_BUILTIN):  New macros, most depending on USE_MAPPED__LOCATION.
110         (tree_exp):  Change type of locus to use new source_locus typedef.
111         * tree.c (build1_stat):  Use SET_EXPR_LOCATION.
112         (annotate_with_locus, annotate_with_file_line):  Conditionalize.
113         (expand_location):  New function.
114         * toplev.c (unknown_location):  New static, when USE_MAPPED_LOCATION.
115         (push_srcloc, pop_loc):  Adjust parameter handling.
116         (process_options):  Don't set input_filename by itself.
117         (lang_dependent_init):  Save, set input_location to <built-in>.
118         (warn_deprecated_use):  Use expand_location.
119
120         * basic-block.h (struct edge_def):  Use new source_locus typedef.
121         * c-common.c (fname_decl):  Update save/clear/store of input_location.
122         (c_do_switch_warnings):  Update for USE_MAPPED_LOCATION case.
123         * c-decl.c:  Likewise.
124         * c-dump.c (dump_stmt):  Likewise.
125         * c-gimplify.c (c-gimplify.c):  Generalize using SET_EXPR_LOCATION.
126         * c-lex.c (cb_line_change):  If USE_MAPPED_LOCATION use token's src_loc
127         to set input_location direction, rather than using linemap_lookup.
128         (fe_file_change, cb_def_pragma):  Again use source_location directly.
129         * c-opts.c (saved_lineno):  Remove static variable.
130         (c_common_post_options, c_common_init):  Don't bothner to save,
131         clear and restore input_Location - now handled by lang_dependent_init.
132         * function.c (init_function_start):  Use new DECL_IS_BUILTIN macro.
133         * xcoffout.c (xcoff_assign_fundamental_type_number):  Likewise.
134         * tree-mudflap.c (mf_file_function_line_tree):  Take a location_t
135         rather than a pointer to one.  Use expand_location.
136         (mf_varname_tree):  Use expand_location.
137         * tree-dump.c:  Use expand_location on DECL_SOURCE_LOCATION.
138         * coverage.c:  Likewise.
139         * print-tree.c:  Likewise.
140         * c-aux-info.c (gen_aux_info_record):  Likewise.
141         * c-parse.in:  Use SET_EXPR_LOCATION macro.
142         * gimple-low.c:  Likewise.
143         * tree-mudflap.c:  Likewise.
144         * gimplify.c:  Likewise.  Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
145         * c-ppoutput.c:  Use new source_location typedef instead of fileline.
146         * c-semantics.c:  Use new macros.
147         * c-typeck.c:  Likewise.
148         * cfgexpand.c:  Handle USE_MAPPED_LOCATION case for function_end_locus.
149         * cfglayout.c (insn_locators_initialize):  Const cleanup.  New macros.
150         * cfgrtl.c (delete_insn):  Use new NOTE_DELETED_LABEL_NAME macro.
151         * print-rtl.c (print_rtx):  Likewise.
152         * emit-rtl.c:  Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION.
153         * combine.c:  Use new SET_INSN_DELETED macro.
154         * flow.c:  Likewise.
155         * haifa-sched.c:  Likewise.
156         * ifcvt.c:  Likewise.
157         * recog.c:  Likewise.
158         * reload1.c:  Likewise.
159         * diagnostic.c:  Use expand_location macro.
160         * pretty-print.c (pp_base_format_text):  Likewise.
161         * profile.c:  Likewise.
162         * dwarf2out.c:  Likewise.  Also use expand_location, DECL_IS_BUILTIN.
163         * dwarf2out.c (dwarf2out_decl:  Use BUILTINS_LOCATION.
164         * emit-rtl.c (emit_line_note):  Simplify if USE_MAPPED_LOCATION.
165         (force_next_line_note, insn_emit):  Handle USE_MAPPED_LOCATION case.
166         * final.c (final):  Likewise.
167         * haifa-sched.c:  Likewise.
168         * integrate.c:  Likewise.
169         * jump.c:  Likewise.
170         * rtl-error.c:  Likewise.
171         * stmt.c (check_seenlabel):  Likewise.
172         * tree-pretty-print.c:  Likewise.
173         * gengtype-lex.l:  Temporary kludge to avoid duplicate typedef.
174         * gengtype.c:  Update for now typdefs in input.h.  More kludges.
175         * modulo-sched.c (sms_schedule):  Use NOTE_EXPANDED_LOCATION macro.
176         * ra-debug.c (ra_print_rtl):  Likewise.
177         * sched-rgn.c:  Likewise.
178         * sched-vis.c:  Likewise.
179         * rtl.h (gen_rtx_ASM_OPERANDS):  Redefine if USE_MAPPED_LOCATION.
180         * stmt.c (expand_asm_operands):  Adjust calls to gen_rtx_ASM_OPERANDS.
181         * tree-cfg.c:  Use new macros and typedefs.
182         * tree-flow-inline.h:  Likewise.
183
184 2004-06-30  Richard Sandiford  <rsandifo@redhat.com>
185             Eric Christopher  <echristo@redhat.com>
186
187         * config/mips/3000.md: Improve description.
188
189 2004-06-30  Paul Brook  <paul@codesourcery.com>
190
191         * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
192         cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.
193
194 2004-06-30  Sebastian Pop  <pop@cri.ensmp.fr>
195
196         * Makefile.in (OBJS-common): Add tree-chrec.o.
197         (tree-chrec.o): New rule.
198         (GTFILES): Add tree-chrec.h.
199         * gengtype.c (open_base_files): Add tree-chrec.h.
200         * tree-chrec.c: New file.
201         * tree-chrec.h: New file.
202         * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes.
203
204 2004-06-30  Roger Sayle  <roger@eyesopen.com>
205
206         * combine.c: Include "output.h" to define dump_file.
207         (uid_insn_cost, last_insn_cost): New global variables.
208         (combine_insn_cost): New function to estimate cost of an insn.
209         (combine_validate_cost): New function to determine whether a
210         try_combine replacement sequence is cheaper than the original.
211         (combine_instructions): Allocate and populate uid_insn_cost
212         array at the start of the combine pass, and deallocate it after.
213         (try_combine): Check combine_validate_cost to determine whether
214         a "recombination" should be rejected as being more expensive.
215         * Makefile.in (combine.o): Add dependency upon output.h.
216
217 2004-06-30  Roger Sayle  <roger@eyesopen.com>
218
219         * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle
220         subtractions identically to additions, always COSTS_N_INSNS (1).
221
222 2004-06-30  J"orn Rennecke <joern.rennecke@superh.com>
223
224         * expmed.c (expand_smod_pow2): Fix sign of mask.
225
226 2004-06-29  Diego Novillo  <dnovillo@redhat.com>
227
228         * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant
229         to check for constants.
230         (set_remove): Likewise.
231         (value_replace_in_set): Likewise.
232         (find_leader): Likewise.
233         * tree-vn.c (set_value_handle): Likewise.
234         (vn_lookup): Likewise.
235         (vn_lookup_or_add): Likewise.
236
237 2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
238
239         RTL prologue/epilogue for SPARC
240         * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
241         (sparc_skip_caller_unimp): Likewise.
242         (load_pic_register): Likewise.
243         (leaf_return_peephole_ok): Likewise.
244         (compute_frame_size): Rename into sparc_compute_frame_size.
245         (sparc_expand_prologue): New prototype.
246         (sparc_expand_epilogue): Likewise.
247         (output_return): Likewise.
248         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
249         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
250         compute_frame_size.  Move comment up.
251         (DELAY_SLOTS_FOR_EPILOGUE): Delete.
252         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
253         (EPILOGUE_USES): Return true for %g1 if the function uses EH return.
254         * config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
255         (type attribute): Add 'return' and 'savew'.
256         (eligible_for_return_delay): New attribute.
257         (return): New delay_slot.
258         (sibcall_epilogue): Call sparc_expand_epilogue.
259         (prologue): Likewise.  Move up.
260         (save_register_window): New expander.
261         (save_register_windowsi): New pattern.
262         (save_register_windowdi): Likewise.
263         (epilogue): New expander.
264         (return_internal): New pattern.
265         (Return peepholes): Delete.
266         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
267         (sparc_emitting_epilogue): Delete.
268         (sparc_skip_caller_unimp): Likewise.
269         (sparc_sr_alias_set): New global variable.
270         (frame_base_name): Delete.
271         (frame_base_reg): New global variable.
272         (sparc_override_options): Get new alias set for save/restore.
273         (leaf_return_peephole_ok): Delete.
274         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
275         Factor out code into eligible_for_restore_insn_delay.
276         (eligible_for_restore_insn_delay): New function extraced from above.
277         Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
278         (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
279         Factor out code into eligible_for_restore_insn_delay.
280         (load_pic_register): Make static.  Remove check.
281         (save_regs): Delete.
282         (restore_regs): Likewise.
283         (compute_frame_size): Rename into sparc_compute_frame_size.
284         Rename leaf_function into leaf_function_p.
285         (build_big_number): Delete.
286         (save_or_restore_regs): New function.
287         (emit_save_regs): Likewise.
288         (emit_restore_regs): Likewise.
289         (emit_stack_pointer_increment ): Likewise.
290         (emit_stack_pointer_decrement): Likewise.
291         (sparc_expand_prologue): Likewise.
292         (sparc_function_prologue): Rename into sparc_asm_function_prologue.
293         Remove all code to emit instructions.
294         (sparc_expand_epilogue): New function.
295         (sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
296         Remove all code to emit instructions.
297         (output_restore): New function.
298         (output_return): Likewise.
299         (output_sibcall): Factor out code into output_restore.
300         (print_operand): Adjust for frame_base_reg.
301         * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
302         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
303         (TARGET_INITIALIZER): Add it.
304         * passes.c (rest_of_compilation): Set the conditional predicate
305         'current_function_uses_only_leaf_regs' before sched2.  If target
306         has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
307         before sched2.
308         * reorg.c (return_insn_p): New predicate.
309         (find_end_label): Use it.
310         (relax_delay_slots): Do not thread an unconditional jump that points
311         to the end return label.
312         * doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
313         domain of 'current_function_uses_only_leaf_regs'.
314         (Stack and Calling) <Function Entry>: Document new target hook
315         TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
316
317 2004-06-30  Jakub Jelinek  <jakub@redhat.com>
318
319         * simplify-rtx.c (simplify_binary_operation): Simplify
320         ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
321         N has at least all bits in M set as well.
322
323         PR tree-optimization/15310
324         * expr.c (expand_assignment): Optimize += or -= on a bit field in
325         most significant bits.
326
327 2004-06-30  Steven Bosscher  <stevenb@suse.de>
328
329         * config/c4x/c4x.md: Fix comment.
330
331 2004-06-30  Akos Kiss  <akiss@inf.u-szeged.hu>
332
333         * arm.md (cond_return_inverted): Add "length" attribute.
334
335 2004-06-29  Per Bothner  <per@bothner.com>
336
337         * config/i386/winnt.c (i386_pe_encode_section_info):  Smash rtlname's
338         XSTR in place, so we don't lose SYMBOL_REF_DECL info.
339
340 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
341
342         * config/ia64/hpux.h: Target does too support thread-local storage.
343
344 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
345
346         * combine.c (distribute_notes): Don't look at global_regs for
347         pseudos.
348
349 2004-06-29  Richard Henderson  <rth@redhat.com>
350
351         * gimplify.c (gimplify_modify_expr_rhs): Move immediately before
352         gimplify_modify_expr.
353         (gimplify_init_constructor): Likewise.  Gimplify the null
354         CONSTRUCTOR assignment.
355         (gimplify_modify_expr_to_memcpy): New.
356         (gimplify_modify_expr_to_memset): New.
357         (gimplify_modify_expr): Use them.
358
359 2004-06-29  Roman Zippel <zippel@linux-m68k.org>
360
361         * web.c (union_defs): use all defs of an instruction to create a
362         union with a read/write use
363
364 2004-06-29  Richard Henderson  <rth@redhat.com>
365
366         PR middle-end/16216
367         * builtins.c (gimplify_va_arg_expr): Check for valist being
368         an error_mark_node.
369
370 2004-06-29  Jakub Jelinek  <jakub@redhat.com>
371
372         PR target/16195
373         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
374         r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC.
375         (first_reg_to_save): Pretend call_used_regs[30] is 0 if
376         TARGET_TOC && TARGET_MINIMAL_TOC.
377         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
378
379 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
380
381         Fix gcc.dg/builtin-apply2.c failures:
382         * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
383         * sh.c (extra_push): Delete.
384         (sh_expand_prologue): Don't do extra stack adjustment for
385         current_function_pretend_args_size if it comes from varargs setup.
386         Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
387         (sh_expand_epilogue): Don't use extra_push.
388         (sh_setup_incoming_varargs): Set pretend_arg_size when necessary.
389
390 2004-06-29  Roger Sayle  <roger@eyesopen.com>
391
392         * expmed.c (expand_smod_pow2): Provide alternate implementations
393         that avoid conditional jumps, and choose between them based upon
394         the target's rtx_costs.
395
396 2004-06-29  Andrew Pinski  <apinski@apple.com>
397
398         * tree-sra.c: Include expr.h for definition of MOVE_RATIO.
399         * Makefile.in (tree-sra.c): Update dependencies.
400
401 2004-06-29  Richard Henderson  <rth@redhat.com>
402
403         * tree-sra.c: Rewrite from scratch.  Handle nested aggregates.
404
405 2004-06-29  Nathan Sidwell  <nathan@codesourcery.com>
406
407         * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when
408         size_t is bigger than int.
409
410 2004-06-29  Paul Brook  <paul@codesourcery.com>
411
412         * target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
413         TARGET_CXX_COOKIE_HAS_SIZE): Define.
414         (TARGET_CXX): Use them.
415         * target.h (struct gcc_target): Add cxx.get_cookie_size and
416         cxx.cookie_has_size.
417         * targhooks.c (default_cxx_get_cookie_size): New fucntion.
418         * targhooks.h (default_cxx_get_cookie_size): Add prototype.
419         * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
420         TARGET_CXX_COOKIE_HAS_SIZE): Define.
421         (arm_get_cookie_size, arm_cookie_has_size): New functions.
422         * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
423         * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
424         TARGET_CXX_COOKIE_HAS_SIZE.
425
426 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
427
428         * cfglayout.c (fixup_reorder_chain): Don't do anything for
429         e_fall->dest == EXIT_BLOCK_PTR.
430
431 2004-06-28  Richard Henderson  <rth@redhat.com>
432
433         * tree-cfg.c (verify_stmt): Add last_in_block parameter.  Verify
434         that eh stmts can throw.
435         (verify_stmts): Update verify_stmt call.
436         (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
437         * tree-eh.c (remove_stmt_from_eh_region): New.
438         (lower_eh_constructs): Fix throw_stmt_table delete routine.
439         (tree_could_trap_p): Match may_trap_p.
440         (maybe_clean_eh_stmt): New.
441         * tree-flow.h: Update decls.
442         * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
443         (substitute_and_fold): Clean eh edges.
444         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
445         empty basic blocks.
446         * tree-ssa-dom.c (need_eh_cleanup): New.
447         (tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
448         (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
449
450 2004-06-29  Alan Modra  <amodra@bigpond.net.au>
451
452         * function.c (assign_parms): Don't abort with zero size stack
453         parm failing the PARM_BOUNDARY check.
454
455 2004-06-28  Diego Novillo  <dnovillo@redhat.com>
456
457         * common.opt (ftree-fre): New flag.
458         * flags.h (flag_tree_fre): Declare.
459         * opts.c (decode_options): Set.
460         * timevar.def (TV_TREE_FRE): Define.
461         * tree-flow-inline.h (may_propagate_copy): Re-arrange for
462         readability.  Handle destinations that are not SSA_NAMEs.
463         * tree-flow.h (struct ptr_info_def): Move from tree.h
464         (cprop_into_stmt, cprop_into_successor_phis): Remove.
465         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
466         vuse_optype parameter.
467         * tree-pass.h (pass_fre): Declare.
468         * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
469         (cprop_into_stmt): Likewise.
470         (cprop_into_successor_phis): Likewise.
471         * tree-ssa-dom.c (eliminate_redundant_computations): Fix
472         argument ordering in call to may_propagate_copy.
473         * tree-ssa-pre.c (is_undefined_value): Assume hard registers
474         to be always defined.
475         (add_to_sets): New local function.
476         (create_value_expr_from): New local function.
477         (compute_avail): Call them.
478         (eliminate): Don't ignore statements with virtual operands.
479         (init_pre): New local function.
480         (fini_pre): New local function.
481         (execute_pre): Call them.
482         Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
483         (do_pre): New function.
484         (do_fre): New function.
485         (gate_fre): New function.
486         (pass_fre): Declare.
487         * tree-ssa.c (init_tree_ssa): Don't call vn_init.
488         (delete_tree_ssa): Don't call vn_delete.
489         * tree-vn.c (val_expr_pair_d): Add documentation.
490         (vn_compute): Add VUSES argument to incorporate in computing
491         hash values.  Update all callers.
492         (expressions_equal_p): Call operand_equal_p with
493         OEP_PURE_SAME.
494         (vn_add): Add VUSES argument.  Update all callers.
495         (vn_lookup): Likewise.
496         (vn_lookup_or_add): Likewise.
497         * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
498
499 2004-06-28  Steven Bosscher  <stevenb@suse.de>
500
501         * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
502         m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
503         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
504         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
505         * config/m32r/m32r.md: Rewrite the pipeline description as a DFA.
506
507 2004-06-28  Richard Henderson  <rth@redhat.com>
508
509         * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
510         * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
511         IMAGPART_EXPR.
512         * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
513         IMAGPART_EXPR explicitly.
514         * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
515         and IMAGPART_EXPR specially.
516         * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
517
518 2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>
519
520         * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
521
522 2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>
523
524         * builtins.def (execl, execlp, execle, execv, execvp, execve,
525         fork): Change to DEF_EXT_LIB_BUILTIN.
526
527 2004-06-28  Roger Sayle  <roger@eyesopen.com>
528
529         * expmed.c (expand_smod_pow2): New function to expand signed
530         remainder by a constant power of 2, such as "x % 16".
531         (expand_divmod): Call new expand_smod_pow2 when appropriate.
532         Minor corrections to comments, e.g. wrapping long lines.
533
534 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
535
536         * Makefile.in (vec.o): Fix dependencies.
537
538 2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>
539
540         * Makefile.in: Fix parallel make dependency problem on vec.o.
541
542 2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
543
544         PR target/14041
545         * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
546
547 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
548
549         * tree.h (tree_check_failed): Make varadic.
550         (tree_not_check_failed): New prototype.
551         (tree_check2_failed, tree_check3_failed,
552         tree_check4_failed, tree_check5_failed): Remove.
553         (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
554         TREE_CHECK5): Adjust.
555         (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
556         TREE_NOT_CHECK5): New.
557         (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
558         TREE_RTL_OPERAND_CHECK): Adjust.
559         * tree.c (tree_check_failed): Make varadic.
560         (tree_not_check_failed): New.
561         (tree_check2_failed, tree_check3_failed,
562         tree_check4_failed, tree_check5_failed): Remove.
563
564 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
565
566         * combine.c (can_combine_p): Do not prevent building insns that use
567         and clobber the same fixed hard register.
568         (reg_dead_at_p): Likewise.
569
570 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
571
572         * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
573         changed.
574         (is_sra_candidate_complex_ref): New function.
575         (scalarize_modify_expr): Call it and check for LHS also.
576
577         * tree-pretty-print.c (dump_function_declaration): New.
578         (dump_generic_node, case FUNCTION_TYPE): Call it.
579         (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
580         (dump_generic_node, case DECL_EXPR): New case.
581         (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
582         (print_declaration): Handle type and function declarations.
583
584         * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
585         (convert_nonlocal_reference, convert_local_reference): Properly
586         convert nest of handled component references.
587
588 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
589
590         * vec.h, vec.c: New, type safe vector API.
591         * Makefile.in (OBJS-common): Add vec.o.
592         (vec.o): New target.
593         (gengtype-lex.o): Depend on vec.h.
594
595 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
596
597         * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
598         parameter.  Use it instead of ARG00 to produce the result.
599
600 2004-06-28  Alexandre Oliva  <aoliva@redhat.com>
601
602         * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
603         * config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
604         index is legitimate, compared with code moved from...
605         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
606         (REG_STRICT): Define, according to REG_OK_STRICT.
607         (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
608         REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
609         argument.
610         (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
611         REGNO_STRICT_OK_FOR_INDEX_P): New.
612         (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
613         REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
614         RTX_OK_FOR_BASE_P): Use them.
615
616 2004-06-28  Ben Elliston  <bje@au.ibm.com>
617
618         * doc/cfg.texi (Basic Blocks): Define dominators.
619
620 2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
621
622         PR c++/16205
623         * c-common.c (warn_for_collisions_1): Warn for only decls which
624         have a name.
625
626         PR c++/15145
627         * c.opt (Wsequence-point): Enable for C++ and ObjC++.
628
629         PR c/14963
630         * c-decl.c (start_decl): Check for null types.
631
632 2004-06-27  David Edelsohn  <edelsohn@gnu.org>
633
634         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
635         Accept TOC addresses.
636
637 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
638
639         * config/s390/s390-protos.h (s390_load_got): Update prototype.
640         * config/s390/s390.c (struct machine_function): Add member base_reg.
641         (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
642         (s390_split_branches): Annotate late pool references.
643         (annotate_constant_pool_refs): New function.
644         (find_constant_pool_ref): Work on annotated pool references.
645         (replace_constant_pool_ref): Likewise.  Use explicit base.
646         (replace_ltrel_base): Use explicit base.
647         (s390_mainpool_start): Reflect main_pool pattern change.
648         (s390_mainpool_finish): Use base register from main_pool.
649         Update calls to replace_ltrel_base and replace_constant_pool_ref.
650         (s390_chunkify_start): Use base_reg from struct machine_function.
651         (s390_chunkify_finish): Remove base_reg argument.  Update calls
652         to replace_ltrel_base and replace_constant_pool_ref.
653         (s390_reorg): Don't decide upon base register.  Update calls.
654         (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
655         but return sequence instead.
656         (s390_emit_prologue): Decide upon base register to use.  Annotate
657         all literal pool references.  Adapt to main_pool pattern change.
658         Update s390_load_got call; move MAYBE_DEAD handling here.
659         (s390_emit_epilogue): Annotate late literal pool references.
660         Remove barrier before register restore instruction.
661         * config/s390/s390.md (UNSPEC_LTREF): New constant.
662         ("builtin_setjmp_receiver"): Update s390_load_got call.
663         ("main_pool"): Explicitly reference base register.
664
665 2004-06-27  Roger Sayle  <roger@eyesopen.com>
666
667         * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
668         <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
669         <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
670         <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
671         <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
672         <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
673         TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
674         is a constant.
675
676 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
677
678         * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
679         * c-common.def (DECL_STMT): Remove.
680         * c-common.h (DECL_STMT_DECL): Deleted.
681         (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
682         (c_safe_from_p, c_walk_subtrees): Deleted.
683         * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
684         * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
685         * c-gimplify.c (gimplify_decl_stmt): Deleted.
686         (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
687         and gimplify_and_add.
688         (c_gimplify_expr, case DECL_EXPR): New case.
689         (c_gimplify_expr, case DECL_STMT): Deleted.
690         * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
691         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
692         * expr.c (safe_from_p, case 's'): New case.
693         * gimplify.c (gimplify_decl_expr): New function.
694         (gimplify_expr, case DECL_EXPR): New case.
695         * tree-inline.c (walk_tree): Walk into all fields of a type and
696         decl only if they are in a DECL_EXPR.
697         (mark_local_for_remap_r): Minor code cleanup.
698         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
699         * tree.c (has_cleanups, case DECL_EXPR): New case.
700         * tree.def (DECL_EXPR): New code.
701         * tree.h (DECL_EXPR_DECL): New macro.
702
703         * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
704
705 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
706
707         PR 13334
708         * doc/install.texi: Document non-standard CFLAGS and bootstrap
709         failures and warnings.
710
711 2004-06-26  Andrew Haley  <aph@redhat.com>
712
713         * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
714         TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
715         * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
716         * tree.h (TREE_THIS_NOTRAP): New.
717
718 2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
719
720         * genattrtab.c (write_test_expr): Put a unsigned cast before
721         the first operand for GEU, GTU, LEU and LTU.
722
723 2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
724
725         * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
726         gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
727         tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
728         tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
729         tree-tailcall.c: Fix comment typos.  Follow spelling
730         conventions.
731
732 2004-06-25  Eric Christopher  <echristo@redhat.com>
733
734         * config/mips/mips.md: Add back scheduling exclusion info.
735
736 2004-06-25  Roger Sayle  <roger@eyesopen.com>
737
738         * ifcvt.c (seq_contains_jump): Delete function.
739         (end_ifcvt_sequence): Replace call to seq_contains_jump with an
740         inline test for a jump instruction in the existing "insn" loop.
741         (block_fallthru): Document function.
742
743 2004-06-25  Philip Blundell  <philb@gnu.org>
744
745         PR wrong-code/15089
746         * loop.c (scan_loop): Do not move user-specified register
747         assignments.
748
749 2004-06-25  DJ Delorie  <dj@redhat.com>
750
751         * c-common.h (warn_cast_qual, warn_missing_format_attribute,
752         warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
753         warn_missing_braces, warn_sign_compare, warn_long_long,
754         warn_redundant_decls, warn_float_equal, warn_char_subscripts,
755         warn_conversion, warn_format_y2k, warn_format_extra_args,
756         warn_format_zero_length, warn_format_nonliteral,
757         warn_format_security, mesg_implicit_function_declaration,
758         warn_bad_function_cast, warn_traditional,
759         warn_declaration_after_statement, warn_strict_prototypes,
760         warn_missing_declarations, warn_nested_externs,
761         warn_sequence_point, warn_init_self, warn_div_by_zero,
762         warn_implicit_int, warn_nonnull, warn_old_style_definition,
763         warn_selector, warn_undeclared_selector, warn_protocol,
764         warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
765         warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
766         warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
767         warn_old_style_cast, warn_nontemplate_friend,
768         warn_deprecated): Remove explicit declarations.
769         * c-common.c: Likewise, remove explicit definitions.
770         * c-opts.c: Likewise, remove explicit assignments.
771         * c.opts: Likewise, add implicit declare/define/assign.
772
773 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
774
775         * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
776         (build_addr_expr_with_type): Deleted.
777         (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
778         (gimplify_compound_lval): Make two passes over reference nest.
779
780         * tree-nested.c (build_addr): Merge real/imagpart with
781         handled_component_p.
782         (convert_nonlocal_reference, convert_local_reference): Process extra
783         args to COMPONENT_REF and ARRAY_REF.
784         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
785         lower bound and field offset being constant.
786
787 2004-06-25  Mark Mitchell  <mark@codesourcery.com>
788
789         PR wrong-code/16129
790         * alias.c (get_alias_set): Adjust setting of
791         DECL_POINTER_ALIAS_SET for pointers to aggregates.
792
793 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
794
795         * tree-inline.c (remap_type): Arrange to have just one pointer type
796         for each type, mode, and 'can alias' value.
797         (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
798         (estimate_num_insns_1): Minor code reformatting.
799         (inline_forbidden_p_1): Likewise; add; missing return statement.
800
801 2004-06-25  Roger Sayle  <roger@eyesopen.com>
802
803         PR middle-end/15825
804         * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
805         Use get_isns and end_sequence instead of accepting a seq argument.
806         Scan the instruction sequence for unrecognizable or jump insns.
807         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
808         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
809         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
810         noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
811
812 2004-06-24  Jeff Law  <law@redhat.com>
813
814         * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
815         after gimplifying the innermost component.
816
817 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
818
819         PR target/16176
820         * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
821         register for the destination of the lwl or ldl.
822
823 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
824
825         * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
826         handled_component_p handling.
827         * tree-gimple.c (get_base_address): Likewise and fix typo that
828         caused both recursion and looping.
829
830         * tree-cfg.c (verify_expr): Add macro CHECK_OK.
831         Properly test for nest of handled_components in LHS context.
832
833 2004-06-25  Devang Patel  <dpatel@apple.com>
834
835         * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
836
837 2004-06-25  Paul Brook  <paul@codesourcery.com>
838
839         * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
840         TARGET_CXX): Define.
841         (TARGET_INITIALIZER): Use TARGET_CXX.
842         * target.h (struct gcc_target): Add struct cxx.
843         * targhooks.h (default_cxx_guard_type): Add prototype.
844         * targhooks.c (default_cxx_guard_type): New function.
845         * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
846         Define.
847         (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
848         * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
849         TARGET_CXX_GUARD_MASK_BIT.
850
851 2004-06-25  Devang Patel  <dpatel@apple.com>
852
853         * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
854         * config/i386/darwin.h (CC1_SPEC): Same.
855
856 2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
857
858         * dbxout.h: Add include guards
859
860 2004-06-25  Paul Brook  <paul@codesourcery.com>
861
862         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
863
864 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
865
866         * arm.c (arm_arch4t): New variable.
867         (arm_override_options): Initialize it.  If compiling for armv5 or
868         higher clear TARGET_INTERWORK.
869         (output_call): Abort if called for armv5.  Use BX if it's available.
870         (output_call_mem): Use BLX if available and ensure that all armv5
871         code is interworking safe.
872         (output_return_instruction): Always use BX in preference to MOV if
873         it's available.
874         (arm_output_epilogue): Likewise.
875         (arm_final_prescan_insn): Never conditionally call a subroutine
876         on armv5.
877         * arm.h (arm_arch4t): Declare.
878         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
879         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
880         call_value_reg respectively.
881         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
882         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
883         and call_value_indirect respectively.
884
885 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
886
887         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
888         in terms of const_float_1_operand.
889
890 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
891
892         PR target/16144
893         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
894         is 1.0; force it into a register instead.
895
896 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
897
898         * config/m68k/m68k.h: Restore valid comment removed by mistake with
899         the recent m68k comments cleanup.
900
901 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
902
903         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
904         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
905         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
906         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
907
908         PR/16131
909         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
910
911         * gimplify.c: Remove unneeded forward declarations.
912
913         * gimplify.c (append_to_compound_expr): Deleted.
914         * tree-gimple.h (append_to_compound_expr): Deleted.
915
916         * fold-const.c (fold_addr_expr_with_type): Look through all
917         valid LHS modifiers to find a base to mark addressable.
918
919         * tree.h (debug_find_tree): Add declaration.
920         * tree-inline.c (debug_find_tree): Remove extern declaration.
921
922 2004-06-24  Eric Christopher  <echristo@redhat.com>
923
924         * config/rs6000/rs6000.md: Apply change mistakenly
925         deleted with 2004-06-22 patch.
926
927 2004-06-24  Richard Henderson  <rth@redhat.com>
928
929         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
930         (c_break_label, c_cont_label): New.
931         (start_function): Update initializations.
932         (c_push_function_context): Update saves.
933         (c_pop_function_context): Update restores.
934         * c-parse.in: Update expected conflicts.
935         (stmt_count, compstmt_count): Remove.  Remove all updates.
936         (if_prefix, simple_if, do_stmt_start): Remove.
937         (lineno_labeled_stmt): Remove.
938         (lineno_labels): New.
939         (c99_block_lineno_labeled_stmt): Use it.
940         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
941         annotate_with_locus.
942         (select_or_iter_stmt): Replace by ...
943         (condition, if_statement_1, if_statement_2, if_statement,
944         start_break, start_continue, while_statement, do_statement,
945         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
946         (stmt): Split out ...
947         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
948         c_finish_goto_ptr.
949         * c-semantics.c (add_stmt): Don't add line numbers to labels.
950         * c-tree.h: Update prototypes.
951         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
952         add x_break_label, x_cont_label, x_switch_stack.
953         (c_switch_stack): Declare.
954         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
955         (c_finish_return): Return the statement.
956         (c_switch_stack): Rename from switch_stack; export.
957         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
958         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
959         c_finish_else): Remove.
960         (c_finish_if_stmt): Rewrite to perform the entire operation.
961         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
962         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
963         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
964         (c_finish_loop): New.
965         (c_finish_bc_stmt): New.
966         (c_finish_expr_stmt): Return the statement.  Split out...
967         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
968         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
969         * tree-gimple.c (is_gimple_stmt): Likewise.
970         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
971         (print_struct_decl): Delete empty compound statement.
972         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
973         * objc/objc-act.h: Update decl.
974
975 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
976
977         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
978         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
979
980 2004-06-24  Andrew Pinski  <apinski@apple.com>
981
982         * objc-act.c (build_objc_method_call): Save the lookup_object
983         so we do not call it twice.
984
985 2004-06-24  Richard Henderson  <rth@redhat.com>
986
987         * tree-ssa-dom.c (real_avail_expr_hash): New.
988         (tree_ssa_dominator_optimize): Use it in the htab.
989
990 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
991
992         * tree-mudflap.c (mx_register_decls): Add third (type) argument
993         to synthesized __mf_unregister call.
994
995 2004-06-24  Roger Sayle  <roger@eyesopen.com>
996
997         PR middle-end/15239
998         * expmed.c (expand_mult): Remove artificial restriction on the
999         maximum cost of a synthetic multiplication sequence.
1000
1001 2004-06-24  Eric Christopher  <echristo@redhat.com>
1002
1003         * combine.c (distribute_notes): Don't delete sets to
1004         global register variables.
1005
1006 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
1007
1008         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
1009         (ffs_rex64): New splitter.
1010         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
1011
1012 2004-06-24  Andrew Pinski  <apinski@apple.com>
1013
1014         * config/darwin7.h (MATH_LIBRARY): Remove.
1015         (LIB_SPEC): Define.
1016         * config/darwin.h (MATH_LIBRARY): Define always to empty.
1017         (LIB_SPEC): Only define if not already defined.
1018
1019 2004-06-24  Revital Eres  <eres@il.ibm.com>
1020
1021         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
1022         shifts of induction variable.
1023         (iv_shift): New function.
1024
1025 2004-06-24  Richard Henderson  <rth@redhat.com>
1026
1027         * gimplify.c (gimplify_body): Watch for body vanishing.
1028
1029 2004-06-24  Jeff Law  <law@redhat.com>
1030
1031         * tree-ssa-dom.c (record_dominating_conditions): New function.
1032         (dom_opt_finalize_block, get_eq_expr_value): Use it.
1033
1034 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
1035
1036         * calls.c (shift_returned_value): Fix handling of non-integer
1037         TYPE_MODEs.
1038
1039 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
1040
1041         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
1042         * system.h (DEFAULT_MAIN_RETURN): Poison.
1043         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
1044
1045 2004-06-24  Ben Elliston  <bje@au.ibm.com>
1046
1047         * doc/cfg.texi (Edges): Fix typo.
1048
1049 2004-06-24  Paul Brook  <paul@codesourcery.com>
1050
1051         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
1052
1053 2004-06-23  Andrew Pinski  <apinski@apple.com>
1054
1055         PR middle-end/15988
1056         * fold-const.c (fold_convert): Types which are compatible
1057         can be converted with only a NOP_EXPR.
1058
1059 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
1060
1061         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
1062         pass raw n_named_args to it.
1063         * targhooks.c: Formatting.
1064         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
1065
1066 2004-06-23  Richard Henderson  <rth@redhat.com>
1067
1068         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
1069         non-constant size check.  Gimplify the type too.  Tidy building
1070         BUILT_IN_STACK_ALLOC call.
1071
1072 2004-06-23  Roger Sayle  <roger@eyesopen.com>
1073
1074         * c-common.c (expand_unordered_cmp): Delete.
1075         (expand_tree_builtin): Delete.
1076         * c-common.h (expand_tree_builtin): Delete function prototype.
1077         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
1078
1079 2004-06-23  Richard Henderson  <rth@redhat.com>
1080
1081         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
1082         COMPONENT_REF variable fields unless they're non-constant.
1083
1084 2004-06-23  Robert Millan  <robertmh@gnu.org>
1085
1086         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
1087         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
1088           DYNAMIC_LINKER and register names in sc_ structure.
1089         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
1090         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
1091         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
1092         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
1093
1094         * config/kfreebsdgnu.h: Remove.
1095         * config/t-kfreebsd-gnu: Likewise.
1096         * config/i386/kfreebsdgnu.h: Likewise.
1097
1098 2004-06-23  Eric Christopher  <echristo@redhat.com>
1099
1100         * fold-const.c (make_range): Cleanup type checking through function.
1101         Remove orig_type. Replace with checks to exp_type and arg0_type.
1102         Clarify comment when converting from unsigned to signed.
1103
1104 2004-06-23  Eric Christopher  <echristo@redhat.com>
1105
1106         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
1107         * config/mips/mips.md: Remove R3000 scheduling description.
1108         * config/mips/3000.md: New file.
1109
1110 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1111
1112         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
1113         (s390_emit_jump): Likewise.
1114         * config/s390/s390.c (s390_emit_compare): New function.
1115         (s390_emit_jump): Likewise.
1116         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
1117         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
1118         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
1119         and s390_emit_jump.
1120         ("cjump"): Remove, replace by ...
1121         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
1122         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
1123         ("trap"): Fix type attribute.
1124         ("conditional_trap"): Use s390_emit_compare.
1125         ("doloop_si"): Remove, replace by ...
1126         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
1127         Merge existing splitter into insn_and_split.  Improve length default.
1128         ("doloop_di"): Merge with existing splitter into insn_and_split.
1129         ("doloop"): Adapt.
1130         ("jump"): Convert to expander.  Use s390_emit_jump.
1131         ("*jump_64", "*jump_31"): New insns.  Improve length default.
1132
1133 2004-06-23  Wu Yongwei  <adah@sh163.net>
1134
1135         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
1136         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
1137         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
1138         suitable function for interlocked compare-and-exchange.
1139         (__gthread_mutex_trylock): Use
1140         __GTHR_W32_InterlockedCompareExchange.
1141         (__gthread_mutex_init_function, __gthread_mutex_lock,
1142         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
1143         initial counter value to work correctly under Windows 95.
1144         * config/i386/gthr-win32.c: Adjust include order.
1145         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
1146         gthr-win32.h.
1147         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
1148         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
1149         to match inline versions in gthr-win32.h.
1150
1151 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
1152
1153         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
1154         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
1155         (insvdi_rshift_rlwimi_p): New function.
1156         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
1157         (extendsfdf2): Convert to define_insn_and_split.
1158         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
1159
1160 2004-06-23  Andrew Pinski  <apinski@apple.com>
1161
1162         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
1163         type qualifiers at all.
1164         If both of the type domains are null and the new element type is
1165         the same as one of the, return the one which the element type.
1166         matches.
1167         Do not call qualify_type on the new type.
1168
1169 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1170
1171         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
1172
1173 2004-06-23  Roger Sayle  <roger@eyesopen.com>
1174
1175         * convert.c (strip_float_extension): Skip both NOP_EXPR and
1176         CONVERT_EXPR floating point extensions.
1177
1178 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
1179
1180         * Makefile.in (tree-vn.o): New.
1181         (tree-ssa-pre.o): Don't depend on RTL_H.
1182         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
1183         * tree-flow.h (struct var_ann_d): Remove field expr_set.
1184         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
1185         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
1186         * tree-optimize.c (execute_init_datastructures): New local function.
1187         (pass_init_datastructures): New local variable.
1188         (init_tree_optimization_passes): Sequence pass_init_datastructures.
1189         * tree-pretty-print.c (MASK_POINTER): Remove.
1190         (dump_generic_node): Handle VALUE_HANDLE.
1191         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
1192         Update callers to use new function names.
1193         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
1194         variable annotations.
1195         * tree-ssa.c (init_tree_ssa): Call vn_init.
1196         (delete_tree_ssa): Call vn_delete.
1197         * tree-vn.c: New file.
1198         * tree.c (tree_size): Handle VALUE_HANDLE.
1199         (tree_node_structure): Likewise.
1200         (iterative_hash_expr): Likewise.
1201         * tree.def (VALUE_HANDLE): New code.
1202         * tree.h (struct tree_value_handle): New.
1203         (VALUE_HANDLE_ID): Define.
1204         (VALUE_HANDLE_EXPR_SET): Define.
1205         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
1206         (union tree_node): Add struct tree_value_handle.
1207
1208 2004-06-23  Andrew Pinski  <apinski@apple.com>
1209
1210         * c-typeck.c (composite_type):
1211         <case POINTER_TYPE>: Build a qualified type of
1212         the new type.
1213         <case ARRAY_TYPE>: Likewise.
1214         <case FUNCTION_TYPE>: Likewise.
1215
1216 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
1217
1218         PR optimization/15633
1219         * value-prof.c (divmod_fixed_value_transform): Compute probability
1220         of taking optimal path and pass along to gen_ routine.
1221         (mod_pow2_value_transform): Same.
1222         (mod_subtract_transform): Same.
1223         (gen_divmod_fixed_value): Add new probability parameter.
1224         Add probability to newly created jump.
1225         (gen_mod_pow2): Same.
1226         (gen_mod_subtract): Same.
1227
1228 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1229
1230         * PR target/15948
1231         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
1232         one and two.
1233
1234 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1235
1236         PR target/15927
1237         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
1238         reload if CLASS is BASE_REGS.
1239
1240 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
1241
1242         * gengtype-yacc.y (option): Avoid use of non-constant struct
1243         initializer.
1244
1245 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1246
1247         * doc/extend.texi (Function Attributes): Alphabetize.
1248
1249 2004-06-23  Richard Henderson  <rth@redhat.com>
1250
1251         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
1252         Use gimplify_and_add.
1253         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
1254         * gimplify.c (build_and_jump, gimplify_exit_expr,
1255         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
1256         gimplify_stmt, gimplify_expr): Likewise.
1257         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
1258         (gimplify_statement_list): Remove NULL entries.
1259         (gimplify_to_stmt_list): Handle NULL results.
1260         (gimplify_type_sizes): Add list_p argument.
1261         (gimplify_one_sizepos): Don't use internal pre/post queue.
1262         * tree-gimple.h (gimplify_type_sizes): Update.
1263
1264 2004-06-22  Eric Christopher  <echristo@redhat.com>
1265
1266         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
1267
1268 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
1269
1270         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
1271         when redirecting back edges.
1272
1273         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
1274         count/probability are set correctly.
1275
1276 2004-06-22  Richard Henderson  <rth@redhat.com>
1277
1278         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
1279         (c_finish_stmt_expr): Likewise.
1280
1281         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
1282         (ix86_return_in_memory): Move SSE vector return warning ...
1283         (ix86_struct_value_rtx): ... here.  New.
1284
1285 2004-06-22  Richard Henderson  <rth@redhat.com>
1286
1287         * tree.def (VTABLE_REF): Remove.
1288         (OBJ_TYPE_REF): New.
1289         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
1290         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1291         * fold-const.c (non_lvalue): Likewise.
1292         * gimplify.c (gimplify_expr): Likewise.
1293         (gimplify_call_expr): Use is_gimple_call_addr.
1294         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
1295         * langhooks.h (fold_obj_type_ref): New.
1296         * tree-gimple.c (is_gimple_call_addr): New.
1297         * tree-gimple.h (is_gimple_call_addr): Declare.
1298         * tree-inline.c (inlinable_function_p): Fix merge error.
1299         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1300         * tree-pretty-print.c (dump_generic_node): Likewise.
1301         (print_call_name): Handle OBJ_TYPE_REF.
1302         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
1303         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
1304         * tree.h (OBJ_TYPE_REF_EXPR): New.
1305         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
1306         * doc/c-tree.texi (VTABLE_REF): Remove.
1307         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
1308
1309 2004-06-22  Richard Henderson  <rth@redhat.com>
1310
1311         PR middle-end/16026
1312         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
1313
1314 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1315
1316         * Makefile.in (distclean): Don't try to remove empty directories.
1317
1318 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
1319
1320         PR target/15869
1321         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
1322
1323 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1324
1325         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
1326         operands.
1327
1328 2004-06-22  Dale Johannesen  <dalej@apple.com>
1329
1330         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
1331         global, rename rs6000_legitimate_offset_address_p.
1332         (rs6000_legitimate_address_p): Adjust calls to it.
1333         (lmw_operation): Ditto.
1334         (stmw_operation): Ditto.
1335         * config/rs6000/rs6000-protos.h: Declare it.
1336         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
1337         instead of offsettable_memref_p.
1338
1339 2004-06-22  Dale Johannesen  <dalej@apple.com>
1340
1341         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
1342         [reg+reg] mode for TFmode memory accesses.
1343         (rs6000_eliminate_indexed_memrefs): New.
1344         (rs6000_emit_move): Call preceding for TImode and TFmode.
1345
1346 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
1347
1348         * tree-cfg.c (pass_warn_function_return): It needs
1349         CFG, not SSA.
1350
1351 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1352
1353         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
1354         (Submodel Options): Likewise.
1355
1356 2004-06-21  Andrew Pinski  <apinski@apple.com>
1357
1358         Radar #: 3701874
1359         * c-decl.c (push_file_scope): Return early if we already
1360         have a file scope.
1361
1362 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
1363
1364         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
1365         * c-common.h (flag_pch_preprocess): Declare.
1366         (c_common_pch_pragma): Likewise.
1367         * c-common.c (flag_pch_preprocess): New.
1368         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
1369         (c_common_pch_pragma): New.
1370         * c-ppoutput.c (cb_read_pch): New.
1371         (init_pp_output): Support -fpch-preprocess.
1372         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
1373         * c.opt (fpch-preprocess): New.
1374         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
1375         * doc/cppopts.texi: Document -fpch-preprocess.
1376         * doc/invoke.texi (Precompiled Headers): Mention that
1377         -fpreprocessed is safe for PCH.  Mention that if an option is
1378         listed as safe that doesn't mean it does what you expect.
1379
1380 2004-06-22  Ben Elliston  <bje@au.ibm.com>
1381
1382         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
1383
1384 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1385
1386         * Makefile.in (gimplify.o): Add cgraph.h.
1387         * alias.c (adjust_offset_for_component_ref): Use
1388         component_ref_field_offset.
1389         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
1390         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
1391         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
1392         For decl, call gimplify_one_sizepos and use statement list.
1393         (gimplify_compound_literal_expr): New arg PRE_P.
1394         Add statement to PRE_P list and return DECL.
1395         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
1396         gimplify_compound_literal_expr.
1397         * c-tree.h (getdecls): Deleted.
1398         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
1399         (build_array_ref): Add two operands for ARRAY_REF.
1400         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
1401         COMPOUND_LITERAL_EXPR.
1402         * coverage.c (tree_coverage_counter_ref): Add new operands
1403         for ARRAY_REF.
1404         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
1405         for COMPONENT_REF.
1406         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
1407         and array_ref_element_size.
1408         (widen_memory_access):Use component_ref_field_offset.
1409         * explow.c (update_nonlocal_goto_save_area): Add two operands
1410         for ARRAY_REF.
1411         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
1412         (component_ref_field_offset): Likewise.
1413         (get_inner_reference): Use them.
1414         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
1415         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
1416         (fold_read_from_constant_string): Use array_ref_low_bound.
1417         Verify that result is a character type.
1418         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
1419         * function.c (expand_function_start): Likewise.
1420         * gimple-low.c (expand_var_p): Delete duplicated line.
1421         * gimplify.c: Add static decls for local functions.
1422         (cgraph.h): Now included.
1423         (create_tmp_var): Remove check for ARRAY_TYPE.
1424         (copy_if_shared_r): Look at bounds and sizes of types.
1425         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
1426         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
1427         (gimplify_save_expr, gimple_push_cleanup): Likewise.
1428         (gimplify_init_constructor): Likewise.
1429         WANT_VALUE now bool.
1430         If empty list with no result wanted, return GS_UNHANDLED.
1431         Add additional operands for ARRAY_REF and COMPONENT_REF.
1432         (canonicalize_component_ref): Convert to &array[L].
1433         (gimplify_array_ref_to_plus): Use array_ref_element_size and
1434         array_ref_lower_bound.
1435         (build_addr_expr_with_type, build_addr_expr): New functions.
1436         (gimplify_compound_lval): WANT_LVALUE now bool.
1437         Major rework to allow handle_component_p and initialize and
1438         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
1439         COMPONENT_REF.
1440         (gimplify_array_ref): Deleted.
1441         (gimplify_self_mod_expr): WANT_VALUE now bool.
1442         (gimplify_modify_expr): Gimplify to_p and from_p later.
1443         Factor out code into gimplify_modify_expr_rhs and call twice.
1444         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
1445         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
1446         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
1447         (gimplify_expr, case ARRAY_REF): Delete special case.
1448         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
1449         IMAGPART, and REALPART the same way.
1450         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
1451         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
1452         Call alloc_stmt_list instead of build_empty_stmt.
1453         Deal with _REF that's volatile.
1454         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
1455         (unshare_body, unvisit_body): New functions.
1456         (gimplify_body): Call them.
1457         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
1458         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
1459         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
1460         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
1461         like ARRAY_REF.
1462         (verify_expr, case ADDR_EXPR): Use handled_component_p.
1463         * tree-dfa.c (get_virtual_var): Likewise.
1464         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
1465         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
1466         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
1467         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
1468         and INDIRECT_REF.
1469         (get_base_address): Use handled_component_p.
1470         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
1471         * tree-inline.c (walk_tree): Walk more things for types and decls.
1472         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
1473         for ARRAY_REF and COMPONENT_REF.
1474         (mx_xform_derefs_1): Clean up usage of decl sizes.
1475         * tree-nested.c (build_addr): Use handled_component_p.
1476         (walk_stmts, case CATCH_EXPR): Add missing "break".
1477         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
1478         (finalize_nesting_tree_1): Likewise.
1479         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
1480         and process additional operands.
1481         (convert_local_reference): Likewise.
1482         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
1483         ARRAY_RANGE_REF similarly to ARRAY_REF.
1484         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
1485         like RECORD_TYPE.
1486         (dump_generic_node, case COMPONENT_REF): Print offset operand.
1487         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
1488         and print lower bound and element size for both.
1489         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
1490         * tree-sra.c (csc_build_component_ref): Add new operand.
1491         (scalarize_call_expr): Use get_base_address.
1492         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
1493         (maybe_fold_offset_to_array_ref): Rework to handle input having an
1494         ARRAY_REF, refine handling of lower bound, and add new operands
1495         for ARRAY_REF.
1496         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
1497         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
1498         (maybe_fold_stmt_addition): Only handle constant lower bound.
1499         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1500         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
1501         Look at new offset operand of COMPONENT_REF.
1502         * tree-ssa.c (set_is_used): Use handled_component_p.
1503         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
1504         (stabilize_reference, case COMPONENT_REF): Likewise.
1505         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
1506         (recompute_tree_invariant_for_addr_expr): Completely rework to
1507         be more precise.  Also set TREE_SIDE_EFFECTS.
1508         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
1509         (build2_stat, build3_stat, build4_stat): For references,
1510         propagate TREE_THIS_VOLATILE.
1511         (get_unwidened): Add new operand for COMPONENT_REF.
1512         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
1513         * tree.def (COMPONENT_REF): Add new operand.
1514         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
1515         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
1516         (component_ref_field_offset): Likewise.
1517         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
1518         (alpha_gimplify_va_arg): Likewise.
1519         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1520         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
1521         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
1522         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
1523         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1524         Likewise.
1525         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1526         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
1527         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
1528         Likewise.
1529         (xstormy16_expand_builtin_va_arg): Likewise.
1530         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
1531         * objc/objc-act.c (generate_static_references): Likewise.
1532         (generate_strings, build_method_prototype_list_template): Likewise.
1533         (generate_protocol_list): Likewise.
1534
1535 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1536
1537         PR rtl-optimization/14782
1538         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
1539         the address checks for secondary reloads for loads from and stores
1540         to floating-point registers.
1541         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
1542         in the address check.  Move work around for ELF32 targets to
1543         GO_IF_LEGITIMATE_ADDRESS.
1544         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
1545         correctly aligned for DImode loads and stores.  Don't allow long
1546         SFmode displacements on ELF32.
1547
1548 2004-06-21  Richard Henderson  <rth@redhat.com>
1549
1550         PR rtl-opt/16114
1551         * cse.c (merge_equiv_classes): Also rehash in response to
1552         delete_reg_equiv changes.
1553         (rehash_using_reg): Don't exclude REGs from rehashing.
1554
1555 2004-06-21  Richard Henderson  <rth@redhat.com>
1556
1557         * c-common.def (RETURN_STMT): Remove.
1558         * c-common.h (RETURN_STMT_EXPR): Remove.
1559         (c_expand_return, build_return_stmt): Remove.
1560         (c_common_stmt_codes): Remove RETURN_STMT.
1561         * c-dump.c (dump_next_stmt): Remove.
1562         (c_dump_tree): Remove RETURN_STMT.
1563         * c-decl.c (finish_function): Use c_finish_return.
1564         * c-parse.in (stmt): Likewise.
1565         * c-gimplify.c (gimplify_return_stmt): Remove.
1566         (c_gimplify_expr): Remove RETURN_STMT.
1567         * c-pretty-print.c (pp_c_statement): Likewise.
1568         * c-semantics.c (build_return_stmt): Remove.
1569         * c-tree.h (c_finish_return): Declare.
1570         * c-typeck.c (c_finish_return): Rename from c_expand_return.
1571         Return void.  Build RETURN_EXPR directly.
1572         * tree-dump.h (dump_next_stmt): Remove.
1573
1574 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
1575
1576         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
1577         look at TREE_ADDRESSABLE of symbol name.
1578
1579 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
1580
1581         PR target/15551
1582         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
1583         (allocate_stack_worker): Make unspec_volatile.
1584         (allocate_stack_worker_rex64):  Likewise.
1585         (allocate_stack_worker_postreload):  Likewise.
1586         (allocate_stack_worker_rex64_postreload):  Likewise.
1587
1588 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
1589
1590         Fix PR optimization/15982
1591         * tree-ssa-pre.c: Update a few comments and todos to
1592         reflect constants change.
1593         (get_value_handle): Constants now value number to themselves.
1594         (lookup): Constants lookup to themselves.
1595         (add_to_value): Adjust to always be on.
1596         (set_contains_value): Adjust for constants change.
1597         (find_leader): Ditto.
1598         (phi_translate): 'r' nodes are never ANTIC right now.
1599         (valid_in_set): Ditto.
1600         (get_expr_set): New function.
1601         (find_or_generate_expression): New function, broken out from
1602         insert_aux.
1603         (create_expression_by_pieces): Ditto, plus additional
1604         machinery to handle complex values.
1605         (compute_avail): Remove dead RETURN_EXPR handling.
1606
1607 2004-06-21  Steven Bosscher  <stevenb@suse.de>
1608
1609         * config/i386/i386.c: Include insn-codes.h
1610         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
1611         define here.
1612         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
1613         DIRFLAG_REG): New define_constants.  Use them everywhere.
1614
1615 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1616
1617         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
1618
1619 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
1620
1621         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
1622         (SUPPORT_SH4_SINGLE): Likewise.
1623         (TARGET_SWITCHES): Break out switches for cpu subtargets:
1624         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
1625         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
1626         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
1627         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
1628         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
1629         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
1630         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
1631         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
1632         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
1633         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
1634         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
1635         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
1636         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
1637         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
1638         (TARGET_DEFAULT): Likewise.
1639         * config/sh/t-elf: Amend comment.
1640         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
1641         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
1642         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
1643         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
1644         * config/sh/t-mlib-sh4-single: Likewise.
1645         * config/sh/t-mlib-sh4-single-only: Likewise.
1646         * config/sh/t-mlib-sh5-32media: Likewise.
1647         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
1648         * config/sh/t-mlib-sh5-64media: Likewise.
1649         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
1650         * config/sh/t-mlib-sh5-compact: Likewise.
1651         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
1652         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
1653         (MULTILIB_CPUS): Define.
1654         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1655         (MULTILIB_MATCHES): Use some shell code to calculate it.
1656         (MULTILIB_EXCEPTIONS): Change to ml/m1.
1657         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1658         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1659         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1660         (NO_PROFILE_COUNTERS): Define to 1.
1661         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1662         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1663         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1664         (MULTILIB_MATCHES): Don't zap.
1665         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1666         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1667         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1668         (MULTILIB_RAW_DIRNAMES): Define.
1669         (MULTILIB_DIRNAMES): Use it.
1670         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1671         (sh*linux configurations): Merge into:
1672         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
1673         --with-multilib-list options.  Support sh-superh-elf configuration.
1674         (sh*-netbsd*): Use SELECT_SH* macros.
1675         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1676         Merge sh*-*-netbsd* configurations into sh-elf configurations.
1677         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1678         * config/sh/t-monolib: Likewise.
1679
1680 2004-06-21  Paul Brook  <paul@codesourcery.com>
1681
1682         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1683         not imply FPA.
1684
1685 2004-06-21  Roger Sayle  <roger@eyesopen.com>
1686
1687         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1688         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
1689         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1690         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1691         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1692         and TRUTH_XOR_EXPR.
1693
1694 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1695
1696         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1697
1698 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1699
1700         * tree-alias-common.h (struct tree_alias_ops): Change ip and
1701         ip_partial to unsigned int.
1702
1703 2004-06-21  Richard Henderson  <rth@redhat.com>
1704
1705         * c-common.c (verify_sequence_points): Export.
1706         (c_expand_expr_stmt): Move to c-typeck.c.
1707         * c-common.h (c_expand_expr_stmt): Remove.
1708         (verify_sequence_points): Declare.
1709         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1710         * c-parse.in (for_init_stmt, stmt): Likewise.
1711         * c-tree.h (c_finish_expr_stmt): Declare.
1712         (c_tree_expr_nonnegative_p): Remove.
1713         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1714         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1715         (emit_side_effect_warnings): New.
1716         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
1717         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
1718         Use emit_side_effect_warnings.
1719         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1720         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1721         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1722         with void initializer.
1723         (gimplify_target_expr): Handle void BIND_EXPR initializer.
1724         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1725         INIT_EXPR and MODIFY_EXPR.
1726         * objc/objc-act.c (build_module_descriptor): Use add_stmt
1727         instead of c_expand_expr_stmt.
1728
1729 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1730
1731         * fold-const.c (fold_cond_expr_with_comparison):
1732         New function, extracted from fold.
1733         (fold): Extract code to fold A op B ? A : C, use
1734         it to fold A op B ? C : A.  Really optimize
1735         A & N ? N : 0 where N is a power of two.  Avoid
1736         relying on canonicalization and recursion for
1737         foldings of COND_EXPR to happen.
1738
1739 2004-06-20  David Ayers  <d.ayers@inode.at>
1740
1741         * objc/objc-act.h (get_object_reference): Rename to
1742         get_protocol_reference.
1743         (super_type): Rename to objc_super_type.
1744         (selector_type): Rename to objc_selector_type.
1745         (id_type): Rename to objc_id_type.
1746         (instance_type): Rename to objc_instance_type.
1747         (protocol_type): Rename to objc_protocol_type.
1748         (IS_ID): Update reference to id_type.
1749         * objc/objc-act.c (get_object_reference): Rename to
1750         get_protocol_reference; add documentation; update references to
1751         id_type.
1752         (lookup_method_in_protocol_list): Rename class_meth to
1753         is_class; add documentation.
1754         (finish_message_expr): Rename is_class to class_tree.
1755         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1756         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1757         build_next_objc_exception_stuff, get_arg_type_list,
1758         build_objc_method_call): Update references to id_type.
1759         (synth_module_prologue, build_objc_symtab_template,
1760         build_selector_reference_decl, build_selector,
1761         build_selector_translation_table, build_typed_selector_reference,
1762         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1763         synth_self_and_ucmd_args): Update references to selector_type.
1764         (build_private_template, build_ivar_reference): Update references
1765         to instance_type.
1766         (synth_module_prologue, build_protocol_reference,
1767         build_protocol_expr, start_protocol): Update references to
1768         protocol_type.
1769         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1770         Update references to super_type.
1771         * c-parse.in: (typespec_nonreserved_nonattr): Update
1772         references to get_object_reference.
1773         * objc/objc-tree.def: Add C mode identifier sequence.
1774
1775 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1776
1777         * loop-invariant.c: New file.
1778         * Makefile.in (loop-invariant.o): New.
1779         * cfgloop.h (global_cost_for_size, init_set_costs,
1780         move_loop_invariants): Declare.
1781         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1782         functions.
1783         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1784         variables.
1785         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1786         * loop-init.c (loop_optimizer_init): Call init_set_costs.
1787         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1788         (rest_of_compilation): Check flag_loop_optimize2.
1789         * toplev.c (process_options): Handle flag_loop_optimize2.
1790         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1791         * doc/passes.texi (loop-invariant.c): Document.
1792
1793 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1794
1795         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1796
1797 2004-06-20  Richard Henderson  <rth@redhat.com>
1798
1799         * stmt.c (warn_if_unused_value): Add locus argument.
1800         * tree.h (warn_if_unused_value): Update decl.
1801         * c-typeck.c (internal_build_compound_expr): Update call.
1802         * c-gimplify.c (gimplify_expr_stmt): Likewise.
1803
1804 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
1805
1806         PR middle-end/16089
1807         * builtins.c (entry_of_function): Move to ...
1808         * cfgrtl.c (entry_of_function): Here and make non-static.
1809         * integrate.c (emit_initial_value_sets): Use entry_of_function.
1810         * rtl.h (entry_of_function): Prototype.
1811
1812 2004-06-20  Roger Sayle  <roger@eyesopen.com>
1813
1814         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1815         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1816         TARGET_DECOMPOSE_LEA.
1817
1818 2004-06-20  Richard Henderson  <rth@redhat.com>
1819
1820         * c-common.h (add_decl_stmt): Move to cp-tree.h.
1821         * c-decl.c (finish_decl): Don't use add_decl_stmt.
1822         * c-parse.in: Likewise.
1823         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1824         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1825         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1826
1827 2004-06-20  Richard Henderson  <rth@redhat.com>
1828
1829         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1830         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1831         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1832         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1833         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1834         * c-pretty-print.c (pp_c_statement): Similarly.
1835         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1836         gimplify_if_stmt): Move to cp-gimplify.c.
1837         (c_genericize, c_gimplify_expr): Don't call them.
1838         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1839         * c-typeck.c (push_cleanup): New.
1840         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1841         c_finish_if_stmt): Use COND_EXPR.
1842         * tree.h (CLEANUP_EH_ONLY): Update documentation.
1843
1844 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
1845
1846         * c-common.h (has_c_linkage): New interface.
1847         * c-cppbuiltin.c: Include target.h.
1848         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1849         __PRAGMA_EXTERN_PREFIX when appropriate.
1850         * c-pragma.c: Include target.h.
1851         Document clarified semantics of symbol-renaming #pragmas.
1852         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1853         (maybe_apply_renaming_pragma): Rewrite according to clarified
1854         semantics.  Always recognize, but do not necessarily execute.
1855         (init_pragma): Unconditionally register symbol-renaming pragmas.
1856         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1857         and HANDLE_PRAGMA_EXTERN_PREFIX.
1858         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1859         and handle_pragma_extern_prefix flags.
1860         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1861         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1862         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1863         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1864         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1865         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1866         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1867         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1868         not HANDLE_PRAGMA_EXTERN_PREFIX.
1869         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1870         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1871         into one section "Symbol-Renaming Pragmas"; clarify; document
1872         adjusted semantics.
1873
1874         * builtins.c (expand_builtin): Do not issue error for a builtin
1875         with no special case code and no DECL_ASSEMBLER_NAME; just do the
1876         library call.
1877         * c-decl.c (builtin_function): Don't call make_decl_rtl.
1878         * c-objc-common.c (has_c_linkage): Stub implementation.
1879         * cgraphunit.c (cgraph_expand_function)
1880         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1881
1882 2004-06-19  Roger Sayle  <roger@eyesopen.com>
1883
1884         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1885         instead of both an ARGLIST and a result TYPE.  Handle these C99
1886         comparison functions as "polymorphic" builtins.  Also handle
1887         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1888         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1889         Move handling of BUILT_IN_ISUNORDERED from here to there.
1890
1891 2004-06-19  Richard Henderson  <rth@redhat.com>
1892
1893         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1894         * c-gimplify.c: Remove unnecessary prototypes.
1895         (c_gimplify_stmt): Merge into ...
1896         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
1897         * c-semantics.c (prep_stmt): Remove.
1898         * gimplify.c (annotate_one_with_locus): Break out from ...
1899         (annotate_all_with_locus): ... here.
1900         (gimplify_expr): Add locus to expressions even if pre/post queues
1901         are not present.
1902
1903 2004-06-19  Richard Henderson  <rth@redhat.com>
1904
1905         PR target/15941
1906         * function.c (assign_parms): If not padding upward or intentionally
1907         forcing upward padding, take offset_rtx into account when determining
1908         the alignment for stack_parm.
1909
1910 2004-06-19  Richard Henderson  <rth@redhat.com>
1911
1912         PR target/15550
1913         * ifcvt.c (noce_try_move): Recognize all generated instructions.
1914
1915 2004-06-19  Jan Hubicka  <jh@suse.cz>
1916
1917         * function.c (free_after_compilation): Do not free computed_goto_common*.
1918         * function.h (struct function): Kill computed_goto_common*.
1919         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1920         * tree-cfg.c (disband_implicit_edges): Do not forward across the
1921         commonized computed goto.
1922
1923 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1924
1925         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1926         in binutils.
1927
1928 2004-06-19  Andrew Pinski  <apinski@apple.com>
1929
1930         PR c++/15721
1931         * toplev.c (wrapup_global_declarations): Do not check
1932         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1933         cgraph_varpool_node's needed field.
1934
1935 2004-06-19  Jan Hubicka  <jh@suse.cz>
1936             Steven Bosscher  <stevenb@suse.de>
1937
1938         CFG transparent RTL expansion:
1939         * Makefile.in (cfgexpand.o): New object file.
1940         (builtins.o): Add dependency on basic-block.h
1941         * builtins.c: Include basic-block.h
1942         (entry_of_function): New function.
1943         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1944         * cfgexpand.c: New file.
1945         * expr.c (execute_expand, pass_expand): Kill.
1946         * pass.c (rest_of_compilation): Do not build CFG unless called from
1947         coverage code.
1948         * tree-cfg.c (delete_tree_cfg): Rename to..
1949         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1950         * tree-flow.h (delete_tree_cfg_annotations): Declare.
1951         (dleete_tree_cfg): Kill.
1952         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1953         (execute_del_cfg): Rename to...
1954         (execute_free_datastructures): This one...
1955         (pass_del_cfg): Rename to...
1956         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1957         (init_tree_optimization_passes): Make cfg build and profiling to happen
1958         unconditionally.
1959
1960 2004-06-19  Steven Bosscher  <stevenb@suse.de>
1961
1962         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1963         inserting the cache variables.
1964
1965         * tree-mudflap.c: Include headers to make basic_block available.
1966         Move functions around such that related functions are near each
1967         other.  Add prototypes for all static functions.  Add comments
1968         briefly explaining what IR the mudflap1 and mudflap2 work on and
1969         what they do.
1970         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1971         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1972         (pass_mudflap_1, pass_mudflap_2): Update.
1973         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1974         function tree.
1975         (mf_build_check_statement_for): Make it work on the CFG.
1976         (mf_xform_derefs_1): Likewise.  Cleanup code style.
1977         (mf_xform_derefs): Likewise.
1978
1979 2004-06-19  Jan Hubicka  <jh@suse.cz>
1980
1981         * tree-cfg.c (label_to_block): Invent the label destination for
1982         undefined labels.
1983         (cleanup_dead_labels): Update table in the case label_to_block added
1984         new label.
1985
1986 2004-06-18  Richard Henderson  <rth@redhat.com>
1987
1988         PR c++/16036
1989         * gimple-low.c (lower_function_body): Generate return statement for
1990         fall off the end of the function here ...
1991         * tree-cfg.c (make_edges): ... instead of here.
1992         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1993
1994 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1995
1996         * tree-ssa.c (raise_value): Removed.
1997         (get_eq_name, check_phi_redundancy): New functions.
1998         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1999
2000 2004-06-18  Roger Sayle  <roger@eyesopen.com>
2001
2002         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
2003         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
2004         constant folding for unordered comparison tree nodes.  If both
2005         operands are real constants, call fold_relational_const.  If either
2006         operand is a NaN, evaluate the other for side-effects and return a
2007         constant.  Optimize (double)float1 CMP (double)float2 into the
2008         equivalent float1 CMP float2.
2009         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
2010         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
2011         LTGT_EXPR>: Call fold_relational_const for constant operands.
2012         (fold_relational_const): Add support for unordered comparison tree
2013         nodes.  Don't constant fold "ordered" floating point comparisons
2014         against NaN if when flag_trapping_math is set.
2015
2016 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
2017
2018         * fold-const.c (build_range_check): If !in_p and recursive call
2019         fails, exit immediately.  If high - low overflows and etype is
2020         a signed type, retry with unsigned etype.
2021         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
2022         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
2023
2024 2004-06-18  Richard Henderson  <rth@redhat.com>
2025
2026         * c-gimplify.c (gimplify_condition): Remove.
2027         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
2028         call it.
2029
2030 2004-06-18  Richard Henderson  <rth@redhat.com>
2031
2032         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
2033         switch estimates.
2034
2035 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
2036
2037         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
2038         (NORMAL_TEXT_SECTION_NAME): Define.
2039         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
2040         (SECTION_FORMAT_STRING): Define.
2041
2042 2004-06-18  Steven Bosscher  <stevenb@suse.de>
2043
2044         * config/xtensa/xtensa.c
2045         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
2046         * xtensa.md: Replace the old pipeline description with a DFA model.
2047
2048 2004-06-18  Steven Bosscher  <stevenb@suse.de>
2049             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2050
2051         * config/s390/s390.md: Remove the generic pipeline description.
2052         * config/s390/2064.md: Make all insn reservations apply to
2053         the z900, g5 and g6.
2054         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
2055         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2056         Define to hook_int_void_1.
2057         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
2058         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
2059
2060 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
2061                         Diego Novillo  <dnovillo@redhat.com>
2062
2063         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
2064         (create_stmt_ann): Ditto.
2065         (create_tree_ann): New function.
2066         (create_cst_ann): Remove.
2067         (create_expr_ann): Ditto.
2068
2069         * tree-flow-inline.h (cst_ann): Remove.
2070         (get_cst_ann): Ditto.
2071         (get_expr_ann): Ditto.
2072         (expr_ann): Ditto.
2073         (get_tree_ann): New function.
2074         (tree_ann): Ditto.
2075         (ann_type): tree_ann -> tree_ann_t.
2076         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
2077         (struct cst_ann_d): Removed.
2078         (struct expr_ann_d): Ditto.
2079         (union tree_ann_d): Removed cst and expr.
2080         (tree_ann): Renamed to tree_ann_t.
2081         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
2082         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
2083         annotation.
2084         (set_value_handle): Ditto.
2085         (phi_translate): Ditto.
2086         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
2087
2088 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2089
2090         * config/sh/t-linux64: New file.
2091         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
2092
2093 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
2094
2095         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
2096         (unshare_all_rtl_again): Call unshare_all_rtl_1.
2097         (unshare_all_rtl): New.
2098         * function.c (instantiate_virtual_regs): Remove parameters.
2099         * function.h (instantiate_virtual_regs): Add prototype.
2100         * rtl.h (unshare_all_rtl): Add prototype.
2101         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
2102         prototype.
2103         * passes.c: Remove assertions on the parameters to
2104         rest_of_handle_* functions.  Remove the parameters to
2105         the functions, replacing decl with current_function_decl
2106         and insns with get_insns ().
2107
2108 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2109
2110         * fold-const.c (constant_boolean_node): Handle boolean_type_node
2111         directly, return either boolean_true_node or boolean_false_node.
2112
2113 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
2114
2115         * opts.sh: Delete.  Break out generated code to next four files.
2116         * opt-gather.awk: New file.
2117         * optc-gen.awk: New file.
2118         * opth-gen.awk: New file.
2119         * opt-functions.awk: New common file.
2120         * Makefile.in: Update for above.
2121         * configure.ac: Update comment.
2122         * configure: Regenerate.
2123
2124 2004-06-17  Richard Henderson  <rth@redhat.com>
2125
2126         * c-common.c (flag_objc_sjlj_exceptions): New.
2127         * c-common.h (flag_objc_sjlj_exceptions): Declare.
2128         * c-opts.c (c_common_handle_option): Set it.
2129         (c_common_post_options): Handle interation of different
2130         objective-c exception and runtime switches.
2131         * c-decl.c (c_eh_initialized_p): New.
2132         (finish_decl): Use it instead of local eh_initialized_p.
2133         * c-parse.in (nested_function, notype_nested_function): Record
2134         the result of compstmt.
2135         (compstmt_or_error): Likewise.
2136         (compstmt): Don't add_stmt the result.
2137         (stmt): Don't return anything.  Rewrite objc try and sync rules.
2138         (objc_try_stmt, objc_catch_list): Remove.
2139         (objc_catch_block, objc_finally_block): Remove.
2140         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
2141         (objc_try_catch_clause, objc_finally_clause): New.
2142         (objc_try_catch_stmt): Rewrite.
2143         * c-tree.h (c_eh_initialized_p): Declare.
2144         * c-opt (fobjc-sjlj-exceptions): New.
2145         * except.c (output_function_exception_table): Don't call cgraph
2146         on non-decls.
2147         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
2148         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
2149         catch_count_stack, exc_binding_stack, if_nesting_count,
2150         blk_nesting_count, objc_enter_block, objc_exit_block,
2151         objc_declare_variable, val_stack_push, val_stack_pop,
2152         objc_build_try_enter_fragment, objc_build_extract_expr,
2153         objc_build_try_exit_fragment, objc_build_extract_fragment,
2154         objc_build_try_prologue, objc_build_try_epilogue,
2155         objc_build_catch_stmt, objc_build_catch_epilogue,
2156         objc_build_finally_prologue, objc_build_finally_epilogue,
2157         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
2158         objc_build_synchronized_epilogue): Remove.
2159         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
2160         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
2161         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
2162         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2163         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
2164         objc_begin_catch_clause, objc_finish_catch_clause,
2165         objc_build_finally_clause, objc_finish_try_stmt,
2166         objc_build_synchronized): New.
2167         (objc_is_object_id, objc_is_class_id): New.
2168         (objc_comptypes): Use them.
2169         (build_next_objc_exception_stuff): Break NeXT sjlj out from
2170         build_objc_exception_stuff.
2171         (synth_module_prologue): Update to match.
2172         (objc_build_throw_stmt): Use cur_try_context to decide if
2173         we're in a @catch.
2174         * objc/objc-act.h: Update prototypes.
2175         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
2176
2177 2004-06-17  Andrew Pinski <apinski@apple.com>
2178
2179         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
2180         Use TYPE_FIELDS instead of TYPE_VALUES.
2181
2182 2004-06-17  Jason Merrill  <jason@redhat.com>
2183
2184         PR c++/16015
2185         * gimplify.c (gimplify_target_expr): Handle void initializer.
2186         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
2187         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
2188         and AGGR_INIT_EXPR.
2189
2190 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2191
2192         * fold-const.c (fold_relational_const): Use constant_boolean_node.
2193
2194 2004-06-17  Jan Hubicka  <jh@suse.cz>
2195
2196         PR target/15433
2197         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
2198         operand numbering in the output template.
2199         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
2200
2201 2004-06-17  Jan Hubicka  <jh@suse.cz>
2202
2203         * except.c (can_throw_internal): Recognize RESX expresisons.
2204
2205 2004-06-17  Jan Hubicka  <jh@suse.cz>
2206
2207         * cfgbuild.c (make_edges): Do not use label_value_list.
2208         (find_basic_blocks_1): Do not collect label_value_list.
2209         (find_sub_basic_blocks): Update call of make_edges.
2210
2211 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
2212
2213         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
2214         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
2215         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
2216         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
2217         (get_v_may_def_result_ptr):  Return a def_operand_p.
2218         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
2219         (get_v_must_def_op_ptr):  Return a def_operand_p.
2220         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
2221         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
2222         (phi_element_for_edge):  Remove.
2223         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
2224         (propagate_tree_value):  Add new prototype.
2225         (phi_element_for_edge):  Remove prototype.
2226         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
2227         (prepare_operand_for_rename):  Split into two functions.
2228         (prepare_use_operand_for_rename):  Prepare use operands.
2229         (prepare_def_operand_for_rename):  Prepare def operands.
2230         (rewrite_stmt):  Use new operand types.
2231         (rewrite_operand):  Use new operand types, change parameter type.
2232         * tree-outof-ssa.c (replace_variable):  Split into two functions.
2233         (replace_use_variable):  Rewrite uses.
2234         (replace_def_variable):  Rewrite defs.
2235         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
2236         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
2237         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
2238         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
2239         (ccp_fold, replace_uses_in):  Use new operand types.
2240         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
2241         and no longer set the value, change parameter type.
2242         (replace_exp_1):  Use new operand types.
2243         (propagate_value):  Change parameter type, use new operand types.
2244         (propagate_tree_value):  Propagate_value without SSA operands.
2245         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
2246         (cprop_into_successor_phis):  Use new operand types.
2247         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
2248         (eliminate_redundant_computations):  Use new operand types.
2249         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
2250         (fix_stmt_v_may_defs):  Use new operand_types.
2251         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
2252         (build_tree_conflict_graph):  Use new operand_types.
2253         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
2254         * tree-ssa-operands.c (struct freelist_d):  Remove.
2255         (check_optype_freelist, add_optype_freelist):  Remove.
2256         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2257         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
2258         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2259         Call ggc_free instead of add_optype_freelist.
2260         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
2261         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
2262         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
2263         (struct use_optype_d):  Change underlying type.
2264         (def_operand_p, use_operand_p):  New types for pointers to operands.
2265         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
2266         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
2267         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
2268         pointer types.
2269         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
2270         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
2271         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
2272         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
2273         PHI result as an operand.
2274         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
2275         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
2276         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
2277         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
2278         PHI_ARG_DEF_FROM_EDGE.
2279         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
2280         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
2281
2282 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2283
2284         PR tree-optimization/15991
2285         * tree-cfg.c (tree_block_label): Export.
2286         * tree-flow-inline.h (bsi_after_labels): New function.
2287         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
2288         * tree-ssa.c (propagate_into_addr): New function.
2289         (replace_immediate_uses): Handle propagation of pointer constants.
2290         (raise_value): Do not restrict propagation of pointer constants.
2291         * tree-ssanames.c (duplicate_ssa_name): New function.
2292         * tree.h (duplicate_ssa_name): Declare.
2293
2294 2004-06-17  David Ayers  <d.ayers@inode.at>
2295
2296         * c-parse.in: Unify Objective-C token names.
2297
2298 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2299
2300         Bug 14610
2301         * Makefile.in (min-insn-modes.o): Correct dependencies.
2302         * real.c (encode_ieee_extended, decode_ieee_extended): Always
2303         produce/consume 12-byte little-endian Intel format.
2304         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
2305         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
2306         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
2307         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
2308         New functions which convert between 12-byte little-endian Intel
2309         format and the desired format.
2310         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
2311         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
2312         Update.
2313
2314 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2315
2316         * expmed.c (expand_mult_const): In sanity check, compare only
2317         the bits of val and val_so_far that are significant in the
2318         result mode.
2319
2320 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
2321
2322         * tree-ssa-pre.c:  Update comments.
2323         (val_expr_pair_eq): Factor code from here.
2324         (expr_pred_trans_eq): and here.
2325         (expressions_equal_p): To here.
2326         (print_value_set): Print value for expression.
2327         (phi_trans_lookup): Rename some variables.
2328         (lookup): Ditto.
2329         (value_exists_in_set_bitmap): Ditto.
2330         (value_remove_from_set_bitmap): Ditto.
2331         (value_insert_into_set_bitmap): Ditto.
2332
2333 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
2334
2335         * config/s390/s390-modes.def (CCL3mode): New machine mode.
2336         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
2337         (s390_alc_comparison, s390_slb_comparison): Likewise.
2338         (s390_branch_condition_mask): Likewise.
2339         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
2340         ("*subsi3_cc2", "*subsi3_cconly2"): New.
2341
2342         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
2343         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
2344         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2345         Handle SIGN_EXTEND and ZERO_EXTEND.
2346
2347         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
2348         * config/s390/s390.c (s390_expand_addcc): New function.
2349         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
2350         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
2351         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
2352
2353 2004-06-17  Ben Elliston  <bje@au.ibm.com>
2354
2355         * tree-alias-common.c: Add whitespace.
2356         * tree-inline.c: Correct comment about this file's purpose.
2357         * tree-optimize.c: Likewise.
2358         * tree-tailcall.c: Likewise.
2359
2360         * tree-alias-ander.h: Add standard top-of-file comment.
2361         * tree-alias-common.h: Likewise.
2362         * tree-alias-type.h: Likewise.
2363
2364 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2365
2366         * tree-ssa-pre.c (compute_avail): Value number uses as well.
2367         Strip useless type conversions.
2368         Casts have to be treated slightly different than normal unaries.
2369
2370 2004-06-16  Richard Henderson  <rth@redhat.com>
2371
2372         * c-common.def (COMPOUND_STMT): Remove.
2373         * c-common.c (finish_fname_decls): Don't look through it.
2374         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
2375         * c-common.h (COMPOUND_BODY): Remove.
2376         (c_common_stmt_codes): Remove COMPOUND_STMT.
2377         * c-dump.c (c_dump_tree): Likewise.
2378         * c-gimplify.c (c_gimplify_stmt): Likewise.
2379         * c-pretty-print.c (pp_c_statement): Likewise.
2380         * tree.h (DECL_SAVED_TREE): Update commentary.
2381         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
2382         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
2383         (GOTO_EXPR): Rename from GOTO_STMT.
2384         (GOTO_FAKE_P): Remove.
2385         (COMPOUND_STMT): Remove.
2386         (HANDLER): Update wrt COMPOUND_STMT.
2387         (STMT_EXPR): Likewise.
2388         (LABEL_EXPR): Rename from LABEL_STMT.
2389         (SCOPE_STMT): Remove.
2390         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
2391         through COMPOUND_STMT.
2392
2393 2004-06-16  Richard Henderson  <rth@redhat.com>
2394
2395         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
2396         c_finish_while_stmt_cond): Remove decls.
2397         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
2398         * c-typeck.c (c_begin_if_stmt): Return void.
2399         (c_begin_else): Tidy.  Save stmt_count.
2400         * c-tree.h (c_begin_if_stmt): Update decl.
2401
2402         * objc/objc-act.c (objc_build_try_enter_fragment,
2403         objc_build_extract_fragment, objc_build_try_epilogue,
2404         objc_build_catch_stmt, objc_build_catch_epilogue,
2405         objc_build_finally_prologue, objc_build_finally_epilogue): Update
2406         for if builder function changes.
2407
2408 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
2409
2410         * config/s390/s390.c (struct machine_function):  New member
2411         last_restore_gpr.
2412         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
2413         Do not modify machine->save_return_addr_p or regs_ever_live.
2414         Fill in machine->last_restore_gpr.
2415         (s390_optimize_prolog): Use s390_frame_info to compute registers
2416         to save/restore, remove duplicated code.
2417         (s390_arg_frame_offset): Use s390_frame_info to compute frame
2418         size, remove duplicated code.
2419         (s390_emit_prologue): Adapt s390_frame_info call.  Update
2420         machine->save_return_addr_p and regs_ever_live.
2421         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
2422         machine->last_save_gpr.
2423
2424 2004-06-16  Richard Henderson  <rth@redhat.com>
2425
2426         * c-parse.in (if_stmt_locus): Remove.
2427         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
2428         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
2429         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
2430         empty_locus.  Add stmt_count, saw_else.
2431         (c_begin_if_stmt): Push if_stack here.
2432         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
2433         (c_finish_then, c_finish_else): Record empty_locus.
2434         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
2435         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
2436         if or else body.
2437         * c-tree.h: Update prototypes.
2438
2439 2004-06-16  Steven Bosscher  <stevenb@suse.de>
2440
2441         * tree.h (PHI_CHAIN): New.
2442         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
2443         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
2444         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
2445         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
2446         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
2447         when traversing a list of PHI_NODEs.
2448
2449 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
2450
2451         PR target/13292
2452         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
2453         on -msoft-float.
2454         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
2455         68040 and soft-float.
2456         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
2457         in the TARGET_68040_ONLY case.
2458
2459 2004-06-16 Peter Barada  <peter@the-baradas.com>
2460
2461         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
2462         (movsi_cf): Make named, don't match TARGET_CFV4.
2463         (pushexthisi_const): Use mov3q if possible.
2464         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
2465         to special case mvz.w for ColdFire V4.
2466         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
2467         to special case mvz.b for ColdFire V4.
2468         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
2469         divide.
2470         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
2471         * config/m68k/m68k.c(valid_mov3q_const):  New function.
2472         (const_method): SWAP is valid for ColdFire.
2473         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
2474         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
2475
2476 2004-06-16  Richard Henderson  <rth@redhat.com>
2477
2478         * c-common.def (CASE_LABEL): Remove.
2479         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
2480         (match_case_to_enum_1): Likewise.
2481         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
2482         * c-dump.c (c_dump_tree): Likewise.
2483         * c-gimplify.c (c_gimplify_stmt): Likewise.
2484         * c-pretty-print.c (pp_c_statement): Likewise.
2485         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
2486         * tree.h (CASE_LOW): Update commentary.
2487
2488 2004-06-16  Richard Henderson  <rth@redhat.com>
2489
2490         * c-common.def (ASM_STMT): Remove.
2491         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
2492         * c-dump.c (c_dump_tree): Likewise.
2493         * c-gimplify.c (c_gimplify_stmt): Likewise.
2494         * c-pretty-print.c (pp_c_statement): Likewise.
2495         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
2496         * tree.h: Fix commentary.
2497
2498 2004-06-16  Richard Henderson  <rth@redhat.com>
2499
2500         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
2501         * c-common.c (c_add_case_label): Use LABEL_EXPR.
2502         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
2503         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
2504         * c-dump.c (c_dump_tree): Likewise.
2505         * c-gimplify.c (c_gimplify_stmt): Likewise.
2506         * c-pretty-print.c (pp_c_statement): Likewise.
2507         * c-parse.in (stmt): Use GOTO_EXPR.
2508         (label): Use LABEL_EXPR.
2509         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
2510         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
2511
2512 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2513
2514         * cfgcleanup.c (try_simplify_condjump): Update test to make
2515         sure we have a conditional branch around am unconditional branch.
2516
2517 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2518
2519         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2520
2521 2004-06-16  Dale Johannesen  <dalej@apple.com>
2522
2523         * loop.c (loop_givs_reduce): Avoid miscompilation of
2524         loops entered at bottom.
2525
2526 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2527
2528         * cfglayout.c (fixup_reorder_chain): Handle case where the
2529         destination of E_FALL is EXIT_BLOCK_PTR.
2530
2531 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2532
2533         PR target/15653
2534         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
2535         after shifts before asm.
2536
2537 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2538
2539         PR tree-optimization/15993
2540         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
2541         destination is unchanged.
2542
2543 2004-06-16  Andreas Jaeger  <aj@suse.de>
2544
2545         * doc/install.texi (Configuration): Update description for
2546         --enable-version-specific-runtime-libs.
2547
2548 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2549
2550         * doc/install.texi: boehm-gc now uses automake 1.8.5.
2551
2552 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2553
2554         * toplev.h (rest_of_compilation): Adjust prototype.
2555
2556 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2557
2558         * coverage.c: Remove argument to rest_of_compilation.
2559         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
2560         * passes.c (rest_of_compilation): Remove argument.
2561         (pass_rest_of_compilation): New.
2562         (rest_of_handle_final, rest_of_handle_delay_slots,
2563         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
2564         rest_of_handle_machine_reorg, rest_of_handle_regrename
2565         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
2566         rest_of_handle_regmove, rest_of_handle_tracer
2567         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
2568         rest_of_handle_web, rest_of_handle_branch_prob
2569         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
2570         rest_of_handle_addressof, rest_of_handle_jump_bypass
2571         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
2572         Check that the two arguments are actually superfluous.
2573         * tree-optimize.c (register_dump_files): Add properties argument.
2574         Track validity of passes.  Only initialize dump files for
2575         tree-based passes.  Store the full set of provided passes in
2576         the pass.
2577         (init_tree_optimization_passes): Register pass_expand and
2578         pass_rest_of_compilation.
2579         (execute_one_pass): Do not track the presence of required properties
2580         here.  Set in_gimple_form.  Do not update current_properties.
2581         (current_properties): Remove.
2582         (set_save_expr_context): Remove.
2583         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
2584         expand to RTL here, and do not call rest_of_compilation.  Push
2585         GGC context even before gimplification.
2586         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
2587         (pass_expand, pass_rest_of_compilation): Declare.
2588
2589 2004-06-15  Jeff Law  <law@redhat.com>
2590
2591         * fold-const.c (swap_tree_comparison): No longer static.
2592         (tree_swap_operands_p): Similarly.  Return true if both operands
2593         are SSA_NAMEs and the first operand has a higher version number than
2594         the second operand.
2595         * tree.h (swap_tree_comparison): Prototype.
2596         (tree_swap_operands_p): Prototype.
2597         * tree-ssa-operands.c (get_expr_operands): For commutative
2598         operators and relational comparisons, canonicalize the
2599         order of the operands.
2600
2601 2004-06-15  Richard Henderson  <rth@redhat.com>
2602
2603         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
2604         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
2605         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
2606         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
2607         (finish_fname_decls, fname_decl): Use statement_lists.
2608         (c_expand_expr_stmt): Don't set last_expr_type.
2609         (c_type_hash): Fix indentation.
2610         (c_safe_from_p): Don't follow TREE_CHAIN.
2611         (c_tree_chain_matters_p): Remove.
2612         * c-common.def (SCOPE_STMT): Remove.
2613         (CLEANUP_STMT): Redefine to contain its own body.
2614         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
2615         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
2616         Add x_cur_stmt_list.
2617         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
2618         (cur_stmt_list): New.
2619         (STATEMENT_LIST_STMT_EXPR): New.
2620         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
2621         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
2622         (CLEANUP_BODY): New.
2623         (CLEANUP_DECL): Move to operand 2.
2624         (c_common_stmt_codes): Remove SCOPE_STMT.
2625         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
2626         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
2627         (c_push_function_context, c_pop_function_context): Don't save it.
2628         (finish_decl): Set TREE_USED on the decl for a cleanup.
2629         Use push_cleanup.
2630         (store_parm_decls): Use statement lists.
2631         (finish_function): Remove compstmt rule workaround.  Use statement
2632         lists.  Call finish_fname_decls after finalizing the body.
2633         (c_begin_compound_stmt): Move to c-typeck.c.
2634         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
2635         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
2636         (c_genericize): Invoke them.
2637         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
2638         (c_build_bind_expr): Export.
2639         (gimplify_block, gimplify_cleanup): Remove.
2640         (gimplify_condition): Use gimplify_stmt.
2641         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
2642         (gimplify_if_stmt): Remove recursion hack.
2643         (c_gimplify_expr): Remove STMT_EXPR handling.
2644         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
2645         (is_last_stmt_of_scope): Remove.
2646         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
2647         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
2648         c_end_compound_stmt.
2649         * c-objc-common.c (build_cdtor): Likewise.
2650         * c-parse.in (primary): Use c_finish_stmt_expr.
2651         (push_scope, pop_scope): Remove.
2652         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
2653         (c99_block_end, compstmt): Use c_end_compound_stmt.
2654         (c99_block_lineno_labeled_stmt): Likewise.
2655         (compstmt_primary_start): Use c_begin_stmt_expr.
2656         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2657         (do_stmt_start): Fill in body directly.
2658         (lineno_stmt): Avoid setting lineno on constants.
2659         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2660         Remove SCOPE_STMT.
2661         * c-semantics.c (begin_stmt_tree): Remove.
2662         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2663         (add_stmt): Use statement lists.
2664         (add_scope_stmt, finish_stmt_tree): Remove.
2665         (push_cleanup): New.
2666         * c-tree.h: Move some decls from c-common.h.
2667         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2668         (do_case, c_finish_case): Likewise.
2669         (c_finish_then): Take body for then as argument.
2670         (c_finish_else): Similarly.
2671         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2672         c_finish_for_stmt_incr, c_finish_for_stmt): New.
2673         (c_begin_stmt_expr, c_finish_stmt_expr): New.
2674         (c_begin_compound_stmt): Do scope management.
2675         (c_end_compound_stmt): New.
2676         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2677         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2678         Look through exception handling constructs.
2679         (gimplify_bind_expr): Accept temporary argument.
2680         (gimplify_target_expr): Special case BIND_EXPR bodies.
2681         (gimplify_expr): Handle fallback == fb_none like a statement.
2682         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2683         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2684         * langhooks.h (tree_chain_matters_p): Remove.
2685         * stub-objc.c (objc_clear_super_receiver): New.
2686         * tree-gimple.h (voidify_wrapper_expr): Update decl.
2687         (append_to_statement_list, append_to_statement_list_force): Move
2688         to tree-iterator.h.
2689         * tree-inline.c (expand_call_inline): Update call.
2690         (clone_body): Use statement lists.
2691         (walk_tree): Don't check tree_chain_matters_p.
2692         (copy_tree_r): Likewise.
2693         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2694         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2695         * tree-iterator.h (append_to_statement_list,
2696         append_to_statement_list_force): Moved from tree-gimple.h.
2697         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2698         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2699         (objc_enter_block): Likewise.
2700         (objc_exit_block): Use c_end_compound_stmt.
2701         (objc_build_try_enter_fragment): Add #error and comment for
2702         rewriting for OBJCPLUS.
2703         (objc_build_extract_fragment, objc_build_try_epilogue,
2704         objc_build_catch_stmt, objc_build_finally_prologue,
2705         objc_build_finally_epilogue): Update for C statement builders.
2706         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2707         Remove.
2708
2709 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2710
2711         * df.c (df_reg_clobber_gen): Removed.
2712         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2713         Make more effective for hard regs.
2714         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2715
2716 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
2717
2718         * c-pragma.h (c_lex_string_translate): Change type to int.
2719         * c-parse.in: Change all assignments of c_lex_string_translate
2720         to true and false to 1 and 0.
2721         * c-lex.c (c_lex_string_translate): Likewise.
2722         (lex_string): Convert string without translation in the -1
2723         case.
2724
2725 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
2726
2727         * convert.h: Add include guards
2728
2729 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2730
2731         * tree-flow-inline.h: Document all functions.
2732
2733 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2734
2735         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2736         * tree-dfa.c (create_stmt_ann): Ditto.
2737         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2738         * tree-inline.c (estimate_num_insns_1): Ditto.
2739         * tree.c (tree_size): Ditto.
2740         (make_node_stat): Ditto.
2741         (tree_node_structure): Ditto.
2742         (ephi_node_elt_check_failed): Remove.
2743         (is_essa_node): Ditto.
2744         * tree.def (EPHI_NODE): Ditto.
2745         (EEXIT_NODE): Ditto.
2746         (EUSE_NODE): Ditto.
2747         (EKILL_NODE): Ditto.
2748         * tree.h (EREF_NODE_CHECK): Remove.
2749         (EPHI_NODE_ELT_CHECK): Ditto.
2750         (struct tree_eref_common): Ditto.
2751         (struct tree_euse_node): Ditto.
2752         (struct ephi_arg_d): Ditto.
2753         (struct tree_ephi_node): Ditto.
2754         (ephi_node_elt_check_failed): Remove prototype.
2755         (is_essa_node): Ditto.
2756         (enum tree_node_structure_enum): Remove TS_E*_NODE.
2757         (union tree_node): Remove E*_NODE uses.
2758
2759 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2760
2761         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2762         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2763         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2764         Likewise.
2765         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2766         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2767         expand_builtin_strcmp, expand_builtin_strncmp,
2768         expand_builtin_frame_address): Likewise.
2769         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2770         insert_one_insn): Likewise.
2771         * calls.c (prepare_call_address, precompute_register_parameters,
2772         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2773         * cfganal.c (flow_active_insn_p): Likewise.
2774         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2775         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2776         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2777         make_extraction, recog_for_combine, gen_lowpart_for_combine,
2778         simplify_comparison, record_dead_and_set_regs_1,
2779         record_dead_and_set_regs, record_promoted_value,
2780         check_promoted_subreg, get_last_value_validate, get_last_value,
2781         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2782         unmentioned_reg_p_1): Likewise.
2783         * conflict.c (mark_reg): Likewise.
2784         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2785         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2786         merge_equiv_classes, flush_hash_table, invalidate,
2787         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2788         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2789         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2790         record_jump_cond, cse_insn, addr_affects_sp_p,
2791         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2792         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2793         cse_cc_succs, cse_condition_code_reg): Likewise.
2794         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2795         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2796         cselib_record_set, cselib_record_sets): Likewise.
2797         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2798         dbxout_block): Likewise.
2799         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2800         * dojump.c (do_jump): Likewise.
2801         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2802         is_based_loc, rtl_for_decl_location): Likewise.
2803         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2804         set_decl_incoming_rtl, mark_user_reg): Likewise.
2805         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2806         copy_to_suggested_reg, allocate_dynamic_stack_space,
2807         probe_stack_range, hard_function_value): Likewise.
2808         * expmed.c (store_bit_field, store_fixed_bit_field,
2809         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2810         extract_split_bit_field, expand_divmod, emit_store_flag_force):
2811         Likewise.
2812         * expr.c (convert_move, convert_modes,
2813         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2814         use_group_regs, emit_move_insn, emit_move_insn_1,
2815         compress_float_constant, push_block, emit_single_push_insn,
2816         emit_push_insn, get_subtarget, expand_assignment, store_expr,
2817         store_constructor, store_field, force_operand, safe_from_p,
2818         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2819         Likewise.
2820         * final.c (profile_function, final_scan_insn, alter_subreg,
2821         get_mem_expr_from_op, output_asm_operand_names, output_operand,
2822         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2823         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2824         find_regno_partial, propagate_one_insn, init_propagate_block_info,
2825         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2826         attempt_auto_inc, find_auto_inc, mark_used_regs,
2827         count_or_remove_death_notes_bb): Likewise.
2828         * function.c (find_temp_slot_from_address, update_temp_slot_address,
2829         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2830         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2831         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2832         purge_single_hard_subreg_set, instantiate_decl,
2833         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2834         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2835         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2836         expand_function_start, diddle_return_value, clobber_return_register,
2837         expand_function_end, keep_stack_depressed, handle_epilogue_set,
2838         update_epilogue_consts): Likewise.
2839         * genemit.c (gen_exp, gen_insn): Likewise.
2840         * genrecog.c (make_insn_sequence): Likewise.
2841         * global.c (global_conflicts, expand_preferences, mark_reg_store,
2842         mark_reg_conflicts, set_preference, reg_becomes_live,
2843         build_insn_chain, mark_reg_change): Likewise.
2844         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2845         Likewise.
2846         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2847         Likewise.
2848         * integrate.c (copy_rtx_and_substitute, try_constants,
2849         subst_constants, mark_stores, allocate_initial_values): Likewise.
2850         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2851         delete_computation, rtx_renumbered_equal_p, true_regnum,
2852         reg_or_subregno): Likewise.
2853         * lcm.c (reg_dies, reg_becomes_live): Likewise.
2854         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2855         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2856         wipe_dead_reg, no_conflict_p): Likewise.
2857         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2858         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2859         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2860         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2861         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2862         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2863         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2864         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2865         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2866         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2867         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2868         try_swap_copy_prop): Likewise.
2869         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2870         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2871         Likewise.
2872         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2873         reload_cse_simplify_operands, reload_combine,
2874         reload_combine_note_store, reload_combine_note_use,
2875         reload_cse_move2add, move2add_note_store): Likewise.
2876         * print-rtl.c (print_rtx): Likewise.
2877         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2878         contains_pseudo, handle_asm_insn): Likewise.
2879         * ra-debug.c (ra_print_rtx_object, dump_constraints,
2880         dump_static_insn_cost): Likewise.
2881         * ra-rewrite.c (slots_overlap_p, emit_colors,
2882         remove_suspicious_death_notes): Likewise.
2883         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2884         register_operand, scratch_operand, nonmemory_operand,
2885         constrain_operands): Likewise.
2886         * reg-stack (check_asm_stack_operands, remove_regno_note,
2887         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2888         subst_asm_stack_regs): Likewise.
2889         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2890         record_address_regs, reg_scan_mark_refs): Likewise.
2891         * regmove.c (discover_flags_reg, replacement_quality,
2892         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2893         fixup_match_1): Likewise.
2894         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2895         kill_set_value, copyprop_hardreg_forward_1): Likewise.
2896         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2897         reload_inner_reg_of_subreg, can_reload_into, push_reload,
2898         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2899         operands_match_p, decompose, find_reloads, find_reloads_toplev,
2900         find_reloads_address, subst_indexed_address, find_reloads_address_1,
2901         find_reloads_subreg_address, find_replacement,
2902         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2903         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2904         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2905         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2906         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2907         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2908         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2909         do_output_reload, emit_reload_insns, gen_reload,
2910         delete_address_reloads_1, inc_for_reload): Likewise.
2911         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2912         update_reg_unused_notes, fill_slots_from_thread): Likewise.
2913         * resource.c (update_live_status, mark_referenced_resources,
2914         mark_set_resources, mark_target_live_regs): Likewise.
2915         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2916         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2917         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2918         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2919         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2920         parms_set, find_first_parameter_load, keep_with_call_p,
2921         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2922         num_sign_bit_copies1): Likewise.
2923         * rtlhooks.c (gen_lowpart_general): Likewise.
2924         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2925         sched_analyze): Likewise.
2926         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2927         Likewise.
2928         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2929         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2930         simplify_binary_operation, simplify_const_relational_operation,
2931         simplify_subreg): Likewise.
2932         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2933         expand_end_stmt_expr, expand_return, expand_decl,
2934         expand_anon_union_decl): Likewise.
2935         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2936         find_splittable_regs, find_splittable_givs, find_common_reg_term,
2937         loop_iterations): Likewise.
2938         * var-tracking.c (variable_union, variable_part_different_p,
2939         variable_different_p, count_uses, add_uses, add_stores,
2940         compute_bb_dataflow, set_variable_part, delete_variable_part,
2941         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2942         Likewise.
2943         * varasm.c (assemble_variable): Likewise.
2944
2945 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
2946
2947         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2948         definition.
2949         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2950         #undef and #if 0'd definition.
2951
2952 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2953
2954         * combine.c (distribute_notes): Comment typo fix.
2955
2956 2004-06-15  Roger Sayle  <roger@eyesopen.com>
2957
2958         * expmed.c (synth_mult): Mask bits of the multiplier to the
2959         machine mode of the multiplication.  Don't consider shifts
2960         by more than (or equal to) the width of the operation's mode.
2961
2962 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2963
2964         * doc/install.texi: Yet another update for autoconf
2965         and automake versions.
2966
2967 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2968
2969         * function.h (struct function): Remove cannot_inline field.
2970         (current_function_cannot_inline): Remove.
2971         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2972         Simplify conditionals to ignore warn_return_type.
2973         * tree-optimize.c (tree_rest_of_compilation): Do not reset
2974         DECL_DEFER_OUTPUT.
2975         * objc/objc-act.c (build_module_descriptor, finish_method_def):
2976         Do not set current_function_cannot_inline.
2977
2978 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2979
2980         * cfglayout.c (fixup_reorder_chain): Handle case where the
2981         destination of E_TAKEN is EXIT_BLOCK_PTR.
2982
2983 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
2984
2985         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2986
2987 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2988
2989         * fold-const.c (operand_equal_p): Update comment.
2990
2991 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2992
2993         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2994         (INCOMING_RETURN_ADDR_RTX): Define.
2995         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2996         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2997         __builtin_return_address(0).
2998         (m32r_return_addr): Added for __builtin_return_address(0).
2999         (m32r_reload_lr): Ditto.
3000
3001         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
3002
3003 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3004
3005         * doc/install.texi (Prerequisites): Update libbanshee,
3006         fastjar, libcpp, libjava/libltdl entries to
3007         automake 1.8.5.
3008
3009 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3010             Olivier Hainque  <hainque@act-europe.fr>
3011
3012         * function.c (fixup_var_refs): Also adjust the start of sequence
3013         after fixing up the insns.
3014
3015 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3016
3017         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
3018
3019 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
3020
3021         * doc/install.texi (Prerequisites): Update libstdc++ entry to
3022         automake 1.8.5.
3023
3024 2004-06-14  Eric Christopher  <echristo@redhat.com>
3025
3026         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
3027         to -mtpf-trace (-mno-tpf-trace).
3028         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
3029         documentation.
3030
3031 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
3032
3033         * real.c: Fix bit count in head comment.
3034
3035 2004-06-14  Jeff Law  <law@redhat.com>
3036
3037         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
3038         PHIs where the destination or an argument is marked with
3039         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3040
3041 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
3042
3043         PR middle-end/15945
3044         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
3045         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
3046
3047 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3048
3049         * opts.sh (var_args): Fix regexp.
3050
3051 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
3052
3053         PR target/15178
3054         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3055
3056 2004-06-14  Paul Brook  <paul@codesourcery.com>
3057
3058         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
3059
3060 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3061
3062         * Makefile.in (FLAGS_H): New.
3063         (flags.h): Replace by FLAGS_H.
3064         * c.opt: Document Var, VarExists, Init and Report attributes.
3065         * common.opt: Fill the values of the attributes.
3066         * diagnostic.c (flag_fatal_errors): Do not define.
3067         * except.c (flag_non_call_exceptions): Do not define.
3068         * flags.h: Include options.h.  Remove declarations conflicting with
3069         the automatically defined ones.
3070         * opts.c: Remove automatically defined variables.
3071         (handle_option): Perform default initialization.
3072         (common_handle_option): Do not handle options covered by the
3073         default initialization.
3074         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
3075         fields.
3076         (CL_REPORT): New.
3077         * opts.sh: Generate variable declarations, handle CL_REPORT.
3078         * toplev.c: Remove automatically defined variables.
3079         (f_options): Removed.
3080         (print_switch_values): Use cl_options instead of f_options.
3081         * toplev.h (version_flag): Declaration removed.
3082
3083 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
3084
3085         * config/sparc/sparc.h: Correct comment about availability of
3086         little endian option.
3087
3088         * config.gcc: Remove sparc64-*-aout*.
3089         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
3090         * config/sparc/sp64-aout.h: Remove.
3091         * config/sparc/aout.h: Remove.
3092
3093 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
3094
3095         * config/s390/s390.c: Include "tree-gimple.h".
3096         (s390_gimplify_va_arg): New function.
3097         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3098         (s390_va_arg): Remove.
3099         * config/s390/s390-protos.h (s390_va_arg): Remove.
3100         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
3101
3102 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
3103
3104         * basic-block.h (could_fall_through): Declare.
3105         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
3106         Fail if the source already has a fallthrough edge to the exit
3107         block pointer.
3108         (could_fall_through): New function.
3109         * cfgbuild.c (make_edges): Check if we already have a fallthrough
3110         edge to the exit block pointer.
3111         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
3112         not called before reload has completed.
3113         Handle special case of first block having a fall-through exit edge.
3114         (cfg_layout_finalize): Don't call it before reload or if we have
3115         rtl epilogues.
3116         (fixup_reorder_chain): A fall through to the exit block does not
3117         require the block to come last.  Add sanity checks.
3118         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
3119         edges to the exit block.
3120         * function.c (cfglayout.h): #include.
3121         (thread_prologue_and_epilogue_insns): If we have neither return nor
3122         epilogue, but a fall through to the exit block from mid-function,
3123         force a non-fall-through exit.
3124         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
3125
3126 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
3127
3128         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
3129         for power5 and rs64a.  Correct condition for default.  Correct power3,
3130         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
3131
3132 2004-06-13  Steven Bosscher <stevenb@suse.de>
3133
3134         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
3135         Revert previous change, don't use CALL_P.
3136
3137 2004-06-13  Jason Merrill  <jason@redhat.com>
3138
3139         * tree.h: Move std_gimplify_va_arg_expr protoype here.
3140         * tree-gimple.h: From here.
3141
3142 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3143
3144         Fix PR tree-optimization/15979
3145         Fix PR tree-optimization/15981
3146         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
3147         try to insert values undefined along some path.
3148
3149 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3150
3151         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
3152         are available everywhere too.
3153
3154 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
3155
3156         * fold-const.c (fold_checksum_tree <case 't'>): Only
3157         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
3158         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
3159         EXPR is an INTEGERAL_TYPE or a scalar float type.
3160
3161 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
3162
3163         * tree-sra.c (tree_sra): Update documentation.
3164
3165 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3166
3167         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
3168         function_types_compatible_p, type_lists_compatible_p): Remove
3169         flags parameter.
3170         * c-tree.h (comptypes): Likewise.
3171         (COMPARE_STRICT): Remove.
3172         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
3173         callers changed.
3174
3175 2004-06-13  Eric Christopher  <echristo@redhat.com>
3176
3177         * c-decl.c (diagnose_mismatched_decls): Improve error message.
3178         Remove unused code.
3179         * c-typeck.c (comptypes): Add location in standard we're checking.
3180
3181 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3182
3183         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
3184         version 3.3.4.
3185
3186 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3187
3188         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
3189         index by machine mode.
3190         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
3191         tables inside the loop over machine modes.
3192         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
3193         expand_divmod): Index shift*_cost by the appropriate machine mode.
3194
3195 2004-06-12  Eric Christopher  <echristo@redhat.com>
3196
3197         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
3198         * config/s390/s390.md: Ditto.
3199         * config/s390/s390.c: Ditto.
3200         (s390_frame_info): Conditionalize frame and setup info on
3201         TARGET_TPF_PROFILING.
3202         (s390_arg_frame_offset): Ditto.
3203
3204 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3205
3206         * fold-const.c (omit_two_operands): New function.
3207         * tree.h (omit_two_operands): Prototype here.
3208         * builtins.c (fold_builtin_unordered_cmp): New function to lower
3209         C99 unordered comparison builtins to the appropriate tree nodes.
3210         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
3211         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
3212         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
3213         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
3214         (simplify_builtin_memcmp, simplify_builtin_strncmp,
3215         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
3216         omit_two_operands function to build the required COMPOUND_EXPRs.
3217
3218 2004-06-12  Steven Bosscher <stevenb@suse.de>,
3219             Andreas Jaeger  <aj@suse.de>
3220
3221         * gcse.c (record_set_info): Use predicates like REG_P.
3222         (mems_conflict_for_gcse_p): Likewise.
3223         (load_killed_in_block_p): Likewise.
3224         (hash_expr_1): Likewise.
3225         (insert_set_in_table): Likewise.
3226         (gcse_constant_p): Likewise.
3227         (hash_scan_set): Likewise.
3228         (hash_scan_insn): Likewise.
3229         (canon_list_insert): Likewise.
3230         (record_last_mem_set_info): Likewise.
3231         (record_last_set_info): Likewise.
3232         (compute_hash_table_work): Likewise.
3233         (mark_set): Likewise.
3234         (mark_clobber): Likewise.
3235         (mark_oprs_set): Likewise.
3236         (compute_transp): Likewise.
3237         (find_avail_set): Likewise.
3238         (cprop_insn): Likewise.
3239         (do_local_cprop): Likewise.
3240         (cprop): Likewise.
3241         (find_implicit_sets): Likewise.
3242         (find_bypass_set): Likewise.
3243         (bypass_conditional_jumps): Likewise.
3244         (insert_insn_end_bb): Likewise.
3245         (pre_insert_copy_insn): Likewise.
3246         (compute_transpout): Likewise.
3247         (next_ls_expr): Likewise.
3248         (invalidate_any_buried_refs): Likewise.
3249         (compute_ld_motion_mems): Likewise.
3250         (reg_set_info): Likewise.
3251         (reg_clear_last_set): Likewise.
3252         (find_moveable_store): Likewise.
3253         (compute_store_table): Likewise.
3254         (find_loads): Likewise.
3255         (store_killed_in_insn): Likewise.
3256         (insert_insn_start_bb): Likewise.
3257         (reg_set_between_after_reload_p): Likewise.
3258         (reg_used_between_after_reload_p): Likewise.
3259         (is_jump_table_basic_block): Likewise.
3260         (gcse_after_reload): Likewise.
3261         (hash_scan_set_after_reload): Likewise.
3262         (compute_hash_table_after_reload): Likewise.
3263
3264 2004-06-12  Steven Bosscher  <stevenb@suse.de>
3265
3266         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
3267         (INSN_P): Don't look at the rtx code class, just explicitly
3268         check for one of the tree RTX_INSN codes.
3269
3270 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3271
3272         * c-typeck.c (default_function_array_conversion): Use
3273         build_pointer_type not TYPE_POINTER_TO.
3274
3275 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3276
3277         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3278         * configure, config.in: Regenerate.
3279         * system.h: Unconditionally define bool as unsigned char,
3280         BOOL_BITFIELD as unsigned int.
3281         * domwalk.h: Use BOOL_BITFIELD.
3282
3283 2004-06-12  Andreas Jaeger  <aj@suse.de>
3284
3285         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
3286         * libgcc-darwin.ver: Likewise.
3287
3288 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
3289
3290         * reload.c (find_reloads): Force reload for pseudo registers on big
3291         endian machines.
3292
3293 2004-06-11  Steven Bosscher <stevenb@suse.de>
3294
3295         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
3296         Don't try to mark anything control dependent on the entry or
3297         exit blocks.
3298
3299 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
3300
3301         Fix Bug 15899
3302         Fix Bug 15460
3303         * tree.h (SSA_NAME_VALUE): New macro.
3304         (struct tree_ssa_name): Add value_handle member.
3305         * tree-ssa-pre.c: Replaced.
3306         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
3307         (struct cst_ann_d): New.
3308         (struct expr_ann_d): New.
3309         (union tree_ann_d): Add cst_ann, expr_ann.
3310         * tree-dfa.c (create_cst_ann): New function.
3311         (create_expr_ann): Ditto.
3312         * tree-flow-inline.h (cst_ann): New function.
3313         (expr_ann): Ditto.
3314         (get_cst_ann): Ditto.
3315         (get_expr_ann): Ditto..
3316
3317 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3318
3319         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
3320         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
3321         _U_Qfcmp library function.
3322         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
3323         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
3324
3325         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
3326         unspec used for loading address from DLT.
3327         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
3328         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
3329         Don't use short code sequence when loading the address of a nonlocal
3330         label.
3331         (nonlocal_goto): New expander.
3332         (indirect_goto): New jump pattern for nonlocal gotos.
3333         (short_jump): Remove extra whitespace.
3334         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
3335         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
3336         pattern.
3337
3338 2004-06-11  Roger Sayle  <roger@eyesopen.com>
3339
3340         * expmed.c (synth_mult): Add an additional MODE argument for the
3341         machine mode of the multiplication.  Update recursive calls.  Use
3342         mode instead of word_mode for determining operation costs.
3343         (choose_mult_variant): Update calls to synth_mult with "mode".
3344
3345 2004-06-11  Richard Henderson  <rth@redhat.com>
3346
3347         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
3348         and makes_aliased_stores.
3349
3350 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3351
3352         * doc/install.text (--enable-shared): Fix typo.
3353
3354 2004-06-11  Richard Henderson  <rth@redhat.com>
3355
3356         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
3357         argument.  Use internal post for call to gimplify_expr.  Tidy
3358         rounded type size computation.
3359         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
3360         get_initialized_tmp_var.
3361
3362 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3363
3364         * doc/install.texi (--enable-shared): Update libobjc's shared library
3365         status.  Remove reference to libf2c.
3366
3367 2004-06-11  Jason Merrill  <jason@redhat.com>
3368
3369         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3370         * config/i386/i386.c (ix86_va_arg): Remove.
3371         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3372         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
3373         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3374         * config/alpha/alpha.c (alpha_va_arg): Remove.
3375         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3376         * config/sparc/sparc.c (sparc_va_arg): Remove.
3377
3378         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
3379         assignment might throw.
3380         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
3381         expressions.
3382
3383 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
3384
3385         PR 15886:
3386         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
3387
3388 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3389
3390         * doc/install.texi (Prerequisites): Update documentation of
3391         required versions of autoconf and automake.  Remove mention of
3392         libf2c.
3393
3394 2004-06-11  Jason Merrill  <jason@redhat.com>
3395
3396         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
3397         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3398
3399 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
3400
3401         * typeclass.h: Add GPL plus exception license.  Add include
3402         guard.
3403
3404 2004-06-10  Jason Merrill  <jason@redhat.com>
3405
3406         * gimplify.c (gimplify_modify_expr): Don't force a temporary
3407         of an aggregate_value_p type.
3408
3409 2004-06-10  Jeff Law  <law@redhat.com>
3410
3411         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
3412         code when we are in gimple form.
3413
3414 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
3415
3416         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
3417         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
3418         (highest_ssa_version): Remove.
3419         * tree-outof-ssa.c (new_temp_expr_table): Replace
3420         highest_ssa_version with num_ssa_names.
3421         (dump_replaceable_exprs): Likewise.
3422         (rewrite_vars_out_of_ssa): Likewise.
3423         * tree-ssa-ccp.c (initialize): Likewise
3424         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3425         * tree-ssa-dce.c (tree_dce_init): Likewise.
3426         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3427         * tree-ssa-live.c (create_ssa_var_map): Likewise.
3428         (dump_var_map): Likewise.
3429         * tree-ssa.c (verify_ssa): Likewise.
3430         (kill_redundant_phi_nodes): Likewise.
3431         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
3432         * tree-ssanames.c: Include tree-flow.h
3433         (ssa_names): New varray.
3434         (init_ssa_names): Initialize ssa_names.
3435         Reserve the first slot of the ssa_names table.
3436         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
3437         Assign version numbers using num_ssa_names.
3438
3439 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3440
3441         * doc/sourcebuild.texi (Front End): Add details of more
3442         installation documentation required.
3443
3444 2004-06-10  Brian Booth  <bbooth@redhat.com>
3445
3446         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
3447         of V_MAY_DEF and V_MUST_DEF.
3448         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
3449         num_vdefs to num_v_may_defs.
3450         (compute_immediate_uses_for_stmt): Rename occurences of vdef
3451         to v_may_def.
3452         (redirect_immediate_uses): Ditto.
3453         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
3454         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
3455         Also add code to sum up the number of v_must_defs.
3456         (vdefs_disappeared_p): Replace with...
3457         (v_may_defs_disappeared_p): This.
3458         (v_must_defs_disappeared_p): New function.
3459         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
3460         Also add code to mark new variables found in V_MUST_DEFs for
3461         renameing.
3462         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
3463         vdef_ops to v_may_def_ops.
3464         (get_vdef_ops): Replace with...
3465         (get_v_may_def_ops): This.
3466         * tree-flow-inline.h (get_vdef_ops): Replace with...
3467         (get_v_may_def_ops): This.
3468         (get_v_must_def_ops): New function.
3469         (get_vdef_result_ptr): Replace with...
3470         (get_v_may_def_result_ptr): This.
3471         (get_vdef_op_ptr): Ditto with...
3472         (get_v_may_def_op_ptr); This.
3473         (get_v_must_def_op_ptr): New function.
3474         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
3475         to v_may_def. Also add code to mark statements with
3476         V_MUST_DEFs as definition sites.
3477         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
3478         add code to register new V_MUST_DEFs made by the statement.
3479         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
3480         (check_replaceable): Rename occurences of vdef to v_may_def. Also
3481         add check for V_MUST_DEFs.
3482         (find_replaceable_in_bb): Ditto.
3483         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
3484         to v_may_def. Also add code to dump V_MUST_DEFs.
3485         * tree-sra.c (mark_all_vdefs): Replace with...
3486         (mark_all_v_may_defs): This.
3487         (mark_all_v_must_defs): New function.
3488         (create_scalar_copies): Replace call to mark_all_vdefs with
3489         calls to mark_all_v_may_defs and mark_all_v_must_defs.
3490         (scalarize_structures): Rename occurences of vdef to v_may_def.
3491         Also add a check for V_MUST_DEFs.
3492         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
3493         * tree-ssa-alias.c (global_var): Update comment.
3494         (compute_may_aliases): Ditto.
3495         (compute_points_to_and_addr_escape): Rename occurences of vdef
3496         to v_may_def. Also add code to mark variables in V_MUST_DEF
3497         operands as being written to.
3498         (group_aliases): Update comment.
3499         (maybe_create_global_var): Ditto.
3500         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
3501         Also add a check for V_MUST_DEFs on GIMPLE registers.
3502         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
3503         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
3504         to v_may_def. Also add code to mark all V_MUST_DEF operands
3505         VARYING.
3506         (initialize): Ditto.
3507         (set_rhs): Rename occurences of vdef to v_may_def. Also add
3508         code to update SSA_NAMEs in V_MUST_DEFs.
3509         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
3510         to v_may_def.
3511         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
3512         occurences of vdef to v_may_def. Also add code to mark statements
3513         with V_MUST_DEFs as necessary.
3514         (propagate_necessity): Rename occurences of vdef to v_may_def.
3515         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
3516         occurences of vdef to v_may_def. Also add code to mark operands
3517         in V_MUST_DEFs for renaming.
3518         (eliminate_redundant_computations): Rename occurences of vdef
3519         to v_may_def.
3520         (record_equivalences_from_stmt): Rename occurences of vdef
3521         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
3522         (optimize_stmt): Remove unnesessary variable vdefs. Update
3523         comment.
3524         (register_definitions_for_stmt): Rename occurences of vdef
3525         to v_may_def. Also add code to register definitions made with
3526         V_MUST_DEFs.
3527         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
3528         (fix_stmt_v_may_defs): This.
3529         (fix_phi_uses): Rename occurences of vdef to v_may_def.
3530         (dse_optimize_stmt): Ditto.
3531         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
3532         to v_may_def. Also add code to mark V_MUST_DEF operands as being
3533         used in virtual operators.
3534         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
3535         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
3536         renaming.
3537         * tree-ssa-operands.c (opf_kill_def): New flag for killing
3538         definitions.
3539         (build_vdefs): Renamed to...
3540         (build_v_may_defs): This.
3541         (build_v_must_defs): New variable.
3542         (voperands_d): Add v_must_def_ops and replace vdef_ops with
3543         v_may_def_ops.
3544         (append_vdef): Replace with...
3545         (append_v_may_def): This.
3546         (append_v_must_def): New function.
3547         (NUM_FREE): Increment for V_MUST_DEF
3548         (optype_freelist): Increment its size for V_MUST_DEF
3549         (allocate_vdef_optype): Replace with...
3550         (allocate_v_may_def_optype): This.
3551         (allocate_v_must_def_optype): New function.
3552         (free_vdefs): Replace with...
3553         (free_v_may_defs): This.
3554         (free_v_must_defs): New function.
3555         (remove_vdefs): Replace with...
3556         (remove_v_may_defs): This.
3557         (remove_v_must_defs): New function.
3558         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
3559         add code to initialize build_v_must_defs.
3560         (finalize_ssa_vdefs): Replace with...
3561         (finalize_ssa_v_may_defs): This.
3562         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
3563         (finalize_ssa_v_must_defs): New function.
3564         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
3565         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
3566         (verify_start_operands): Rename occurences of vdef to v_may_def.
3567         Also add check for build_v_must_defs.
3568         (get_stmt_operands): Rename occurences of vdef to v_may_def.
3569         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
3570         killing definitions.
3571         (get_expr_operands): Update comment and use opf_kill_def for
3572         killing definitions.
3573         (add_stmt_operand): Replace code that appends VDEFs with code
3574         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
3575         otherwise.
3576         (add_call_clobber_ops): Update comments.
3577         * tree-ssa-operands.h (vdef_optype_d): Replace with...
3578         (v_may_def_optype_d): This.
3579         (v_must_def_optype_d): New structure.
3580         (VDEF_OPS): Replace with...
3581         (V_MAY_DEF_OPS): This.
3582         (STMT_VDEF_OPS): Same with...
3583         (STMT_V_MAY_DEF_OPS): This.
3584         (NUM_VDEFS): And...
3585         (NUM_V_MAY_DEFS): This.
3586         (VDEF_RESULT_PTR): As well as...
3587         (V_MAY_DEF_RESULT_PTR): This.
3588         (VDEF_RESULT): Same goes for...
3589         (V_MAY_DEF_RESULT): This.
3590         (VDEF_OP_PTR): And...
3591         (V_MAY_DEF_OP_PTR): This.
3592         (VDEF_OP): And...
3593         (V_MAY_DEF_OP): This.
3594         (V_MUST_DEF_OPS): New macro.
3595         (STMT_V_MUST_DEF_OPS): Ditto.
3596         (NUM_V_MUST_DEFS): Ditto.
3597         (V_MUST_DEF_OP_PTR): Ditto.
3598         (V_MUST_DEF_OP): Ditto.
3599         (remove_vdefs): Replace signature with...
3600         (remove_v_may_defs): This.
3601         (remove_v_must_defs): New function signature.
3602         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
3603         with calls to remove_v_may_defs and remove_v_must_defs.
3604         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
3605         Also add code that marks left occurences of operands in V_MUST_DEFs.
3606         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
3607         to v_may_def. Also add check for V_MUST_DEFs.
3608         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
3609
3610 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
3611
3612         PR target/15653
3613         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
3614         insn.
3615
3616 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3617
3618         PR web/15263
3619         * doc/install.texi: Remove superfluous linebreak.
3620
3621 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3622
3623         * builtins.c (expand_builtin): Fall back to library function call for
3624         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
3625         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
3626         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
3627         IMAGPART_EXPR respectively.
3628
3629 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
3630
3631         * sh.c (dump_table): New argument start.  Changed caller.
3632         (fixup_mova): New function.
3633         (find_barrier): Use it.
3634         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
3635         If the label a mova refers to is above the mova itself, change
3636         the mova into a load.
3637         * sh.md (*casesi_worker): Rename to:
3638         (casesi_worker_1).
3639         (casesi_worker_2): New insn.
3640
3641 2004-06-10  Jason Merrill  <jason@redhat.com>
3642
3643         * target.h (struct gcc_target): Change gimplify_va_arg_expr
3644         hook signature.
3645         * tree-gimple.h: Adjust.
3646         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
3647         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
3648         Use fold_convert.
3649         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
3650         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
3651         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
3652         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
3653         (gimplify_va_arg_expr): Return GS_ERROR in error case.
3654         Gimplify valist rather than calling stabilize_va_list.
3655
3656 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3657
3658         * Makefile.in (df.o): Remove fibheap dependency.
3659         * df.h: Do not include sbitmap.h.
3660         (struct ref): New field "data".
3661         (DF_REF_DATA): New accessor macro.
3662         (struct df): Field "dom" removed.
3663         (df_analyze_subcfg): New function.
3664         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3665         (transfer_function): ... new type.
3666         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3667         (iterative_dataflow): ... new function.
3668         (enum set_representation, struct dataflow): New.
3669         * df.c: Do not include fibheap.h.
3670
3671         (df_reg_def_chain_clean, df_reg_use_chain_clean,
3672         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3673         prune_to_subcfg, df_bb_modify): New functions.
3674         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3675         df_refs_update, df_reg_table_realloc, df_ref_create,
3676         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3677         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3678         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3679
3680         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3681         (df_rd_transfer_function, df_ru_transfer_function,
3682         df_lr_transfer_function): Type of bitmaps changed to void *.
3683         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3684         (hybrid_search): ... new function.
3685         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3686         (iterative_dataflow): ... new function. Avoid use of fibheaps for
3687         a worklist.  Do not process basic blocks unnecessarily.
3688
3689 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3690
3691         * fold-const.c (fold_abs_const): Make extern.
3692         * tree.h (fold_abs_const): Prototype here.
3693         * builtins.c (fold_builtin_fabs): New function to transform
3694         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3695         (fold_builtin_abs): New function to transform abs, labs, llabs
3696         and imaxabs builtins into ABS_EXPR tree nodes.
3697         (expand_builtin): Fall back to a function call for abs, labs,
3698         llabs and imaxabs builtins that survive constant folding.
3699         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3700         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3701
3702 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3703
3704         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3705         leaf function without unwind info at RP 0.
3706
3707 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3708
3709         PR c++/14791
3710         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3711         (fileptr_type_node): Define.
3712         * tree.c (build_common_tree_nodes_2): Initialize
3713         fileptr_type_node to ptr_type_node.
3714         * c-common.c (c_common_nodes_and_builtins): For C++, make
3715         fileptr_type_node a distinct type copy.
3716         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3717         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3718         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3719         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3720         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3721         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3722         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3723         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3724         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3725         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3726         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3727         the above *FILEPTR* types instead of *PTR*.
3728
3729 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
3730
3731         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3732         match.
3733
3734 2004-06-09  Roger Sayle  <roger@eyesopen.com>
3735
3736         * fold-const.c (fold_not_const): New function.
3737         (fold) <ABS_EXPR>: Don't bother testing wins.
3738         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3739         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3740
3741 2004-06-09  Richard Henderson  <rth@redhat.com>
3742
3743         PR middle-end/15228
3744         * function.c (assign_parms): Always set_mem_align with the computed
3745         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
3746
3747 2004-06-09  Richard Henderson  <rth@redhat.com>
3748
3749         PR opt/15108
3750         * tree-tailcall.c (find_tail_calls): Don't check early for
3751         tail_recursion failure.
3752
3753 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
3754
3755         Move SSA_NAME annotations into tree_ssa_name.
3756
3757         * tree-dfa.c (create_ssa_name_ann): Remove.
3758         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3759         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3760         (struct ssa_name_ann_d): Remove.
3761         (union tree_ann_d): Update.
3762         (ssa_name_ann_t): Remove.
3763         * tree-ssa-alias.c: (get_ptr_info): New local function.
3764         Replace references to ssa_name_ann_t with struct ptr_info_def.
3765         * tree-ssa-operands.c (get_expr_operands): Likewise.
3766         * tree.h (SSA_NAME_PTR_INFO): Define.
3767         (struct ptr_info_def): Declare.
3768         (struct tree_ssa_name): Add field 'ptr_info'.
3769
3770 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
3771
3772         * config/i386/winnt.c (i386_pe_output_labelref): Correct
3773         misplaced ')'.
3774
3775 2004-06-09  Steven Bosscher  <stevenb@suse.de>
3776
3777         * config/i386/k6.md: Rewrite using the DFA model.
3778         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3779         cost of load-operation insns for the K6.
3780         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3781         (ia32_multipass_dfa_lookahead): Likewise.
3782
3783 2004-06-09  Richard Henderson  <rth@redhat.com>
3784
3785         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3786         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3787
3788 2004-06-09  Richard Henderson  <rth@redhat.com>
3789
3790         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
3791
3792 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
3793
3794         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
3795         (CPP_ID_DATA_H): New.
3796         (gtype-desc.o): Update dependencies.
3797         (GTFILES): Use CPP_ID_DATA_H.
3798
3799 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
3800
3801         Revert:
3802         PR c++/15815
3803         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3804         * doc/extend.texi: Deprecate #pragma interface and #pragma
3805         implementation.
3806
3807 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
3808
3809         * config/sparc/sparc.h (MOVE_RATIO): New definition.
3810
3811 2004-06-09  Richard Henderson  <rth@redhat.com>
3812
3813         * basic-block.h (struct edge_def): Add goto_locus.
3814         * tree-cfg.c (make_goto_expr_edges): Set it.
3815         (disband_implicit_edges): Use it.
3816         * tree-pretty-print.c (dump_implicit_edges): Print it.
3817
3818 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3819
3820         * h8300.md (ldm_h8300s_4): Fix condition for expander.
3821
3822 2004-06-08  Jason Merrill  <jason@redhat.com>
3823
3824         Gimplify VA_ARG_EXPR into simpler forms.
3825         * target.h: Add gimplify_va_arg_expr hook.
3826         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
3827         * fold-const.c (build_fold_addr_expr)
3828         (build_fold_addr_expr_with_type): Move from gimplify.c.
3829         * tree.h: Declare them.
3830         * gimplify.c (gimplify_and_add): New fn.
3831         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
3832         (gimplify_array_ref_to_plus, gimplify_modify_expr)
3833         (gimplify_expr): Use build_fold_*.
3834         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
3835         don't know how to gimplify it.
3836         * builtins.c (std_gimplify_va_arg_expr): New fn.
3837         (dummy_object): New static fn.
3838         (gimplify_va_arg_expr): New fn.
3839         (stabilize_va_list): Use build_fold_*.
3840         * tree-gimple.h: Declare new fns.
3841         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3842         (ix86_gimplify_va_arg): New fn.
3843         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3844         (ia64_gimplify_va_arg): New fn.
3845         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
3846         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3847         * alias.c (get_varargs_alias_set): Just return 0 for now.
3848
3849         * c-objc-common.c (c_tree_printer): Improve handling of %T.
3850
3851 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
3852
3853         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
3854         of convert.
3855         * tree-inline.c (setup_one_parameter): Likewise.
3856         * tree-sra.c (csc_build_component_ref): Likewise.
3857         * tree-ssa-ccp.c (ccp_fold): Likewise.
3858         * tree-ssa-copy.c (cprop_operand): Likewise.
3859         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3860         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3861
3862 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3863
3864         PR rtl-optimization/15521:
3865         * sched-int.h (in_post_call_group_p): Change type to enum.
3866         * sched-deps.c (sched_analyze_insn):
3867         (sched_analyze): When in_post_call_group_p is post_call_initial,
3868         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
3869         and also reset in_post_call_group_p to post_call.
3870         (sched_analyze): When the previous basic block ended in a CALL_INSN,
3871         initialize in_post_call_group_p as post_call_initial.
3872         (init_deps): initialize in_post_call_group_p to not_post_call.
3873
3874 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
3875
3876         PR ada/6637
3877         * doc/install.texi: List ada, libada as options to --enable-shared
3878
3879 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3880
3881         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
3882         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
3883         config.in entries.
3884         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
3885         if hard links are not available.
3886         * configure: Regenerate.
3887         * config.in: Regenerate.
3888
3889 2004-06-08  Per Bothner  <per@bothner.com>
3890
3891         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
3892
3893 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3894
3895         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
3896         Correct formatting.
3897
3898 2004-06-08  James E Wilson  <wilson@specifixinc.com>
3899
3900         PR target/15790
3901         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
3902
3903 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3904
3905         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
3906         POINTER_TYPE and INTEGER_TYPE.
3907
3908 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
3909
3910         * modulo-sched.c: Compile only when INSN_SCHEDULING is
3911         defined.
3912
3913 2004-06-08  Jeff Law  <law@redhat.com>
3914
3915         * doc/contrib.texi: Add entries for Stefan Olsson and
3916         Ola Ronnerup.
3917
3918 2004-06-08  DJ Delorie  <dj@redhat.com>
3919
3920         * toplev.c (floor_log2_wide): Replace loop with faster bit
3921         operations.
3922         (exact_log2_wide): Define in terms of the above.
3923         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
3924         available.
3925
3926 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3927
3928         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
3929         Make sure that we are in INDIRECT mode when getting the
3930         stub name.
3931
3932 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3933
3934         * h8300.md (extendqisi2_h8300): Add constraints.
3935         (ldm_h8300s_4_normal): Fix typo.
3936
3937 2004-06-08  Richard Henderson  <rth@redhat.com>
3938
3939         * gimple-low.c (struct lower_data): Replace the_return_label and
3940         one_return_stmt with return_statements.
3941         (lower_function_body): Process the entire list of return_statements.
3942         (lower_return_expr): Check source value before unifying return_exprs.
3943         * gimplify.c (gimplify_return_expr): Force the use of a temporary
3944         for !aggregate_value_p.
3945         * tree-gimple.c: Update RETURN_EXPR grammer.
3946
3947 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
3948
3949         PR target/15598
3950         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
3951
3952 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3953
3954         PR rtl-optimization/15717
3955         * config/i386/i386.c (legitimate_constant_p): Do not allow
3956         x - symbol_ref.
3957
3958 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
3959
3960         * gimplify.c (copy_if_shared_r): Revert:
3961         2004-05-21  Richard Henderson  <rth@redhat.com>
3962         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
3963
3964 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3965
3966         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
3967         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
3968         (init_expmed): Initialize these cost arrays as appropriate.
3969         (store_bit_field, extract_bit_field): Correct whitespace.
3970         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
3971         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
3972         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
3973         word_mode or compute_mode as appropriate.
3974
3975 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3976
3977         PR target/15783
3978         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
3979         parameter.  Enumerate the registers inside the PARALLEL.
3980         (function_arg): Adjust call to function_arg_union_value.
3981         (function_value): Likewise.
3982
3983         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
3984
3985 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3986
3987         * real.c (real_copysign): New function to implement libm's copysign.
3988         * real.h (real_copysign): Prototype here.
3989         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
3990         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
3991         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
3992         fold_builtin_isdigit): Add function prototypes.
3993         (fold_builtin_copysign): New function to fold copysign, copysignf
3994         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
3995         constant arguments at compile-time using real_copysign.  Fold
3996         copysign(X,Y) as fabs(X) if Y is always non-negative.
3997         (fold_builtin_1): Correct minor whitespace/style issues.  Call
3998         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
3999
4000 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
4001
4002         * tree.c (iterative_hash_expr): Use real_hash.
4003
4004 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4005
4006         PR c/14765
4007         * c-parse.in (compstmt_primary_start): Set last_expr_type to
4008         NULL_TREE.
4009
4010 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
4011
4012         PR c++/15815
4013         * doc/extend.texi: Deprecate #pragma interface and #pragma
4014         implementation.
4015
4016 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
4017
4018         PR middle-end/15666
4019         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
4020         builtin decl as well.
4021
4022 2004-06-07  Roger Sayle  <roger@eyesopen.com>
4023
4024         PR c/14649
4025         * c-typeck.c (require_constant_value, require_constant_elements):
4026         Move declarations to the top of the file.
4027         (build_function_call): If we require a constant value, fold with
4028         fold_initializer.  If the result is a constant, and the function
4029         wasn't called using __builtin_foo, issue a pedantic warning.
4030         (build_unary_op): If we require a constant value, fold tree with
4031         fold_initializer.
4032         (build_binary_op): Use require_constant_value to determine whether
4033         to call fold or fold_initializer.
4034
4035 2004-06-07  Richard Henderson  <rth@redhat.com>
4036
4037         * gimple-low.c (struct lower_data): Add the_return_label and
4038         one_return_stmt.
4039         (lower_function_body): Initialize and use them.
4040         (lower_return_expr): New.
4041         (lower_stmt): Call it.
4042         * gimplify.c (gimplify_return_expr): Force the argument to be either
4043         null or a result_decl.
4044         * tree-gimple.c: Update gimple grammer to match.
4045         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
4046         coalescing of result_decls.
4047
4048 2004-06-07  Richard Henderson  <rth@redhat.com>
4049
4050         PR rtl-opt/15193
4051         * expmed.c (extract_bit_field): Fix vector_extract return.
4052
4053         * config/i386/i386.md (negv4sf2): New pattern.
4054
4055 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
4056
4057         PR c++/15337
4058         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
4059         message.
4060
4061 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
4062
4063         * config.in: Regenerate.
4064
4065 2004-06-06  Steven Bosscher  <stevenb@suse.de>
4066
4067         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
4068         SWITCH_LABELS are always sorted.
4069
4070 2004-06-06  Steven Bosscher  <stevenb@suse.de>
4071
4072         * hooks.c (hook_int_void_1): New generic hook.
4073         * hooks.h (hook_int_void_1): Add prototype.
4074         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
4075         Define to hook_int_void_1.
4076         * config/c4x/c4x.md: Replace dummies for the old pipeline model
4077         with dummies for the new one.
4078
4079 2004-06-06  Roger Sayle  <roger@eyesopen.com>
4080
4081         * tree.h (lvalue_or_else): Delete function prototype.
4082         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
4083
4084 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
4085
4086         PR target/14542
4087         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
4088         a live change of a register after peephole replacement.
4089
4090 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
4091
4092         PR c/13519
4093         * c-typeck.c (composite_type, common_pointer_type): New functions.
4094         (common_type): Split parts into composite_type and
4095         common_pointer_type.  Ensure that arithmetic operations return
4096         unqualified types without attributes.  Don't make composite type
4097         of signed enum and compatible integer be unsigned.
4098         (build_conditional_expr, build_binary_op): Use
4099         common_pointer_type.
4100         * c-decl.c (merge_decls): Use composite_type.
4101         * c-tree.h (composite_type): Declare.
4102
4103 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
4104
4105         PR target/14457
4106         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
4107         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
4108         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
4109         (inhibit_libc): Must define.
4110         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
4111         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
4112         ("xorhi3"): Likewise.
4113
4114 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4115
4116         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
4117         always_inline pass.
4118
4119 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
4120
4121         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
4122         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
4123
4124 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
4125
4126         * regclass.c (init_reg_sets): Check for missing registers in target
4127         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
4128
4129 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
4130
4131         * Makefile.in (MKDEPS_H): New shorthand.
4132         (c-opts.o): Update dependencies.
4133         * c-opts.c: Include mkdeps.h.
4134         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
4135         not cpp_add_dependency_target.
4136
4137 2004-06-05  Steven Bosscher  <stevenb@suse.de>
4138
4139         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
4140         * config/v850/v850.md: Convert to DFA scheduler description.
4141
4142 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4143
4144         PR fortran/15478
4145         * doc/install.texi: Document GMP as prerequisite. Document
4146         --with-gmp and --with-gmp-dir configure options.
4147         * fortran/gfortran.texi: Remove section "Compiling and testing",
4148         remove TOC reference to it.
4149
4150 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
4151
4152         * combine.c(simplify_shift_const): Check shift amount is a
4153         CONST_INT.
4154
4155 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
4156
4157         * toplev.c (init_asm_output): Add explicit 'b' to mode when
4158         opening asm_out_file.
4159         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
4160         reading asm_out_file. Replace fflush after reading asm_out_file
4161         with fseek.
4162         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
4163         default and add to HOST_HOOKS_INITIALIZER.
4164         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
4165         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
4166         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
4167         to set mmi.offset padding.
4168          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
4169         $(srcdir)/config/i386/winnt.c.
4170         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
4171         (i[34567]86-*-uwin*): Likewise.
4172         *i[34567]86-*-interix3*): Likewise.
4173         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
4174         * config/i386/host-mingw32.c: New file.
4175         * config/i386/x-mingw32: Add rule for host-mingw32.o.
4176         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
4177         (extern_head): Likewise.
4178         (struct export_list) Likewise.
4179         (export_head): Likewise.
4180         (i386_pe_record_external_function): Use ggc_alloc.
4181         (i386_pe_record_exported_symbol): Likewise.
4182         Include "gt-winnt.h" at end.
4183         * doc/hostconfig.texi: Document
4184         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
4185
4186 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
4187
4188         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
4189         Rename 68000 and 68k to m68k for consistency in comments.  Remove
4190         trailing whitespace before EOLs and before TABs.
4191         (MAX_CODE_ALIGN): Remove unused macro.
4192         (CALL_USED_REGISTERS): Reformat and add comments.
4193
4194 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
4195
4196         * gcc.c (MFLIB_SPEC): Remove library references, to require users
4197         to enumerate -lmudflap* and dependencies when linking.
4198
4199 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
4200
4201         PR target/15822
4202         * dojump.c (do_jump): Fix uninitialized variable tcode1.
4203
4204 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
4205
4206         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
4207         * genconditions.c (write_header): Back out removal of reload.h.
4208
4209 2004-06-04  Jan Hubicka  <jh@suse.cz>
4210
4211         Re-apply hopefully fixed patch:
4212         * i386.md (UNSPECV_EH_RETURN): Kill.
4213         (eh_return): Use jump_insn.
4214         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4215
4216 2004-06-04  Jeff Law  <law@redhat.com>
4217
4218         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
4219
4220 2004-06-04  Steven Bosscher  <stevenb@suse.de>
4221
4222         * except.c (for_each_eh_region): New function.
4223         * except.h (for_each_eh_region): Add a prototype for it.
4224         * tree-cfg.c (update_eh_labels): New function, callback for
4225         for_each_eh_region.
4226         (label_for_bb): Make global static, unfortunately.
4227         (cleanup_dead_labels): Also update label references for
4228         exception regions.
4229
4230 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
4231
4232         * config/mips/mips.c (struct irix_section_align_entry): Fix
4233         GTY marker.
4234
4235 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
4236
4237         * toplev.c (check_global_declarations): Don't ask for
4238         DECL_ASSEMBLER_NAME unless the function really is declared
4239         static and not defined.
4240
4241 2004-06-03  Matt Austern  <austern@apple.com>
4242
4243         PR c++/15428
4244         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
4245         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
4246         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
4247         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
4248         documentation to reflect the new macro name and to clarify its
4249         meaning.
4250
4251 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4252
4253         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
4254
4255 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
4256
4257         * config/darwin.c (machopic_indirect_data_reference): Copy
4258         the SYMBOL_REF_DECL from the original RTX for the new
4259         non-lazy pointer RTX.
4260
4261 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
4262
4263         * tree.h: Remove include of version.h
4264         * c-cppbuiltin.c: Include version.h
4265         * diagnostic.c: Include version.h
4266         * dwarf2out.c: Include version.h
4267         * toplev.c: Include version.h
4268         * vmsdbgout.c: Include version.h
4269         * Makefile.in: Remove dependency on version.h from TREE_H, and
4270         add dependencies to required .o targets
4271
4272 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
4273
4274         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
4275         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
4276         (TARGET_H): Add insn-modes.h.
4277         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
4278         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
4279         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
4280         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
4281         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
4282         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
4283         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
4284         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
4285         CFGLAYOUT_H.
4286         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
4287         Replace ra.h with RA_H.
4288         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
4289         insn-recog.o): Replace resource.h with RESOURCE_H.
4290         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
4291         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
4292         with SCHED_INT_H.
4293         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
4294         ra-rewrite.o): Replace df.h with DF_H.
4295         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
4296         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
4297         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
4298         (insn-conditions.o): Remove unused reload.h.
4299         * cfglayout.h: Add include guard.  Include basic-block.h.
4300         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
4301         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
4302         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
4303         basic-block.h.
4304         * genconditions.c:  Remove reload.h.
4305         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
4306         hard-reg-set.h, insn-modes.h.
4307         * resource.h: Add include guard.  Include hard-reg-set.h.
4308         * sched-int.h:  Add include guard.  Include insn-attr.h,
4309         basic-block.h, rtl.h.
4310         * target.h: Add include guard.  Include insn-modes.h.
4311         * tree-ssa-live.h: Include partition.h.
4312
4313 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
4314                 Kenneth Zadeck <zadeck@naturalbridge.com>
4315
4316         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
4317         (add_var_to_ssa_edges_worklist): Add value argument.
4318         Update callers.
4319         Use new worklist.
4320         (process_ssa_edge_worklist): New function.
4321         (tree_ssa_ccp): Move worklist processing core to
4322         process_ssa_edge_worklist, and just call that for the two worklists.
4323
4324 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4325
4326         * basic-block.c (tail_recursion_label_list): Don't declare.
4327         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
4328         accordingly.
4329         * cfgbuild.c (find_label_refs): Remove.
4330         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
4331         * cfgcleanup.c (tail_recursion_label_p): Remove.
4332         (merge_blocks_move): Do not check for tail recursion.
4333         (try_optimize_cfg): Likewise.
4334         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
4335         * cfgrtl.c (tail_recursion_label_list): Remove.
4336         * except.c (remove_unreachable_regions): Don't handle
4337         CALL_PLACEHOLDER insns.
4338         (convert_from_eh_region_ranges_1, can_throw_internal,
4339         can_throw_external): Likewise.
4340         * function.c (free_after_compilation): Don't clear
4341         x_tail_recursion_label.
4342         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
4343         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
4344         (reorder_blocks_1): Likewise.
4345         * function.h (struct function): Remove x_tail_recursion_label
4346         member.  Don't define tail_recursion_label.
4347         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
4348         * print-rtl.c (print_rtx): Likewise.
4349         * rtl.def (CALL_PLACEHOLDER): Remove.
4350         * rtl.h (sibcall_use_t): Remove enum.
4351         (optimize_sibling_and_tail_recursive_calls,
4352         replace_call_placeholder): Remove function prototypes.
4353         * stmt.c (tail_recursion_args): Remove.
4354         (optimize_tail_recursion): Remove.
4355         (expand_return): Don't check for possible tail recursion.
4356         * tree.h (optimize_tail_recursion): Remove prototype.
4357
4358 2004-06-02  Jan Hubicka  <jh@suse.cz>
4359
4360         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
4361         return_stmt.
4362
4363 2004-06-02  Jason Merrill  <jason@redhat.com>
4364
4365         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
4366         Do include c-parse.in.
4367
4368 2004-06-02  Eric Christopher  <echristo@redhat.com>
4369
4370         * c-typeck.c (common_type): Don't lose type qualifiers
4371         when creating new variants.
4372
4373 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
4374
4375         PR tree-optimization/14042
4376         PR tree-optimization/14729
4377         PR tree-optimization/14736
4378         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
4379         Check the type which the pointer points to
4380         instead of the pointer types.
4381
4382 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
4383
4384         PR tree-optimization/15738.
4385         * builtins.c (fold_builtin_strchr): Transform
4386         strrchr (s, '\0') to strchr (s, '\0').
4387
4388 2004-06-02  Steven Bosscher  <stevenb@suse.de>
4389
4390         * i386.c (ix86_adjust_cost): Don't increase the cost for
4391         load+operation for PROCESSOR_PENTIUMPRO, it is already
4392         modelled in the DFA description
4393
4394 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
4395
4396         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
4397         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
4398         (ALIAS_H, EMIT_RTL_H): New.
4399         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
4400         (cfgcleanup.o): Add EMIT_RTL_H.
4401         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
4402         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
4403         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
4404         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
4405         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
4406         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
4407         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
4408         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
4409         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
4410         set_mem_size): Move to emit-rtl.h.
4411         * emit-rtl.h: New.
4412         * alias.h: New.
4413
4414 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
4415
4416         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
4417         Call fixup_memory_subreg only if the MEM is equal to 'var'.
4418         Adjust recursive calls to self.
4419         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
4420
4421 2004-06-01  Richard Henderson  <rth@redhat.com>
4422             Andrew Pinski  <pinskia@physics.uc.edu>
4423
4424         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
4425         (primary): Handle offsetof.  Add error productions for faux functions.
4426         Move component_ref objc checking to build_component_ref.
4427         (reswords): Add offsetof.
4428         (rid_to_yy): Add offsetof.
4429         * c-tree.h (build_offsetof): Declare.
4430         * c-common.h (objc_is_public): Declare.
4431         * c-typeck.c (build_component_ref): Check objc_is_public.
4432         (build_offsetof): New.
4433         * stub-objc.c (objc_is_public): New.
4434         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
4435         from is_public.
4436         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
4437         * doc/extend.texi (Offsetof): Move from C++ section to C section
4438         and rewrite for __builtin_offsetof.
4439
4440 2004-06-01  Peter Barada  <peter@the-baradas.com>
4441             Peter Jakubek  <peter@laseranimation.com>
4442
4443         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
4444         a scratch to perform an add to memory.
4445
4446 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4447
4448         PR target/14018
4449         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
4450         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4451         m68k_align_funcs): Remove.
4452         (override_options): Remove code to handle -malign-* options.
4453         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
4454         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
4455         (m68k_align_loops_string, m68k_align_jumps_string,
4456         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4457         m68k_align_funcs): Remove definitions.
4458
4459 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
4460
4461         PR target/15626
4462         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
4463         by the Sun linker in conjunction with the Sun assembler.
4464         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
4465
4466 2004-06-01  Jeff Law  <law@redhat.com>
4467
4468         * stmt.c (expand_decl): Be more selective about calling
4469         mark_reg_pointer.
4470
4471 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
4472
4473         PR objc/7993
4474         * objc-act.c (is_private): Do not emit the 'instance variable %s
4475         is declared private' error.
4476         (is_public): Emit the error after calling is_private.
4477         (lookup_objc_ivar): If the instance variable is private, return 0
4478         - the instance variable is invisible here.
4479
4480 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4481
4482         * doc/invoke.texi (-static-libgcc): Explicitly mention
4483         non-GNU linkers.
4484
4485 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4486
4487         PR target/12968
4488         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
4489
4490 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
4491
4492         PR c/15749
4493         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
4494         misuses of structures with flexible array members if
4495         in_system_header.
4496
4497 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4498
4499         PR target/15693
4500         * config/sparc/sparc.c (compare_operand): New predicate.
4501         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
4502         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
4503         operand is a ZERO_EXTRACT and the second operand is not zero,
4504         force the former to a register.
4505         (cmpdi expander): Likewise.
4506
4507 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
4508
4509         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
4510         looks at.
4511         * alias.c (alias_invariant_size): Make alias_invariant_size
4512         static, fix GTY marker.
4513
4514 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4515
4516         PR tree-optimization/15743.
4517         * builtins.c (fold_builtin_1): Fold index() and rindex().
4518
4519 2004-05-31  Roger Sayle  <roger@eyesopen.com>
4520
4521         PR middle-end/15069
4522         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
4523         into "X < 0" (where C is the signbit) if X's type is a full mode.
4524
4525 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4526
4527         * pa.md: Disable the peephole2 patterns that generate indexed
4528         floating-point stores when indexing is disabled.
4529
4530 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4531
4532         * c-pretty-print.c (pp_c_left_bracket): Make a function.
4533         (pp_c_right_bracket): Likewise.
4534         (pp_c_star): Likewise.
4535         (pp_c_ampersand): Define.
4536         * c-pretty-print.h (pp_c_left_bracket): Declare.
4537         (pp_c_right_bracket): Likewise.
4538         (pp_c_star): Likewise.
4539         (pp_c_ampersand): Likewise.
4540
4541 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4542
4543         * config/sol2.h (__enable_execute_stack): ANSIfy function
4544         definition.
4545
4546 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
4547
4548         * c-incpath.c (add_path): Canonicalize paths to use '/' if
4549         HAVE_DOS_BASED_FILESYSTEM.
4550
4551 2004-05-31  Steven Bosscher  <stevenb@suse.de>
4552
4553         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
4554         Only look at case labels if the immediate dominator is also
4555         the only predecessor.  Don't look for more case labels if the
4556         first seen is a case range.
4557
4558 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4559
4560         * builtins.c: Add a prototype for fold_builtin_strchr().
4561
4562 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
4563
4564         Revert this patch:
4565         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4566
4567         * combine.c (gen_binary): Remove.
4568         (known_cond, simplify_shift_const
4569         find_split_point, combine_simplify_rtx,
4570         simplify_if_then_else, simplify_set,
4571         simplify_logical, expand_field_assignment,
4572         extract_left_shift, force_to_mode,
4573         if_then_else_cond, apply_distributive_law,
4574         simplify_and_const_int, simplify_shift_const,
4575         gen_lowpart_for_combine, simplify_comparison,
4576         reversed_comparison): Replace with
4577         simplify_gen_binary, simplify_gen_relational or
4578         distribute_and_simplify_rtx.
4579         (distribute_and_simplify_rtx): New function.
4580
4581 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4582
4583         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
4584         when generating PIC code.
4585
4586 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4587
4588         * c-decl.c (c_expand_body_1): Remove and fold back into ...
4589         (c_expand_body): here.
4590         (c_expand_decl): Move to ...
4591         * c-common.c (c_expand_decl): Here and remove check for nested
4592         functions.
4593         * c-common.h (c_expand_decl): Add prototype.
4594         * c-tree.h (c_expand_decl): Remove.
4595
4596 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4597
4598         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
4599         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
4600         fold_mathfn_compare, fold_inf_compare, fold,
4601         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
4602         Use constant_boolean_node where appropriate.  Don't bother using
4603         fold_convert on the second argument to omit_one_operand.
4604
4605 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4606
4607         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
4608         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
4609         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
4610         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
4611         Add missing (but documented) tree nodes to the index.
4612
4613 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4614
4615         PR tree-optimization/14819
4616         * builtins.c (fold_builtin_strchr): New.
4617         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
4618         with fold_builtin_strchr().
4619
4620 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4621
4622         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
4623         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
4624         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
4625         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
4626         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
4627         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
4628         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
4629         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
4630         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
4631         formatting.
4632
4633 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4634
4635         * gimplify.c (sort_case_labels): New.  Split out from...
4636         (gimplify_switch_expr): ...here.  Use it.
4637         * tree-eh.c (lower_try_finally_switch): Sort the labels of
4638         the SWITCH_EXPR created here before leaving the function.
4639         * tree.c (sort_case_labels): Add prototype.
4640
4641 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4642
4643         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
4644         of BOOLEAN_TYPE.
4645
4646 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4647
4648         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
4649         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
4650         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
4651         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
4652         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
4653         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
4654         comment typos.  Follow spelling conventions.
4655
4656 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
4657
4658         * gengtype-yacc.y: Add NESTED_PTR token.
4659         (option): Record `nested_ptr' option.
4660         * gengtype-lex.l: Handle `nested_ptr' keyword.
4661         * gengtype.c (walk_type): Process `nested_ptr' option.
4662         * gengtype.h (struct nested_ptr_data): New.
4663         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
4664         * stringpool.c (struct string_pool_data): Make 'entries' point to
4665         ht_identifier instead of tree.
4666         (gt_pch_save_stringpool): Don't adjust pointers.
4667         (gt_pch_restore_stringpool): Call ht_load.
4668
4669 2004-05-29  Jason Merrill  <jason@redhat.com>
4670
4671         * gimplify.c (gimplify_expr): Don't build a statement list
4672         if no gimplification was necessary.
4673
4674 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4675
4676         * pretty-print.c (pp_base_format_text): Support %< instead of %`
4677         and %> as well as %'.
4678         * c-format.c: Use %< and %>.
4679         (gcc_diag_char_table, gcc_cdiag_char_table,
4680         gcc_cxxdiag_char_table): Update.
4681
4682 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4683
4684         * c-typeck.c (common_type): Correct comment.
4685
4686 2004-05-29  Peter Barada  <peter@the-baradas.com>
4687
4688         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
4689         * config/m68k/m68k.c (const_method): Likewise.
4690         * config/m68k/m68k.c (const_int_cost): Likewise.
4691         * config/m68k/m68k.c (const_int_cost): Likewise.
4692         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
4693
4694 2004-05-29  Peter Barada  <peter@the-baradas.com>
4695
4696         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
4697         addressing.
4698         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
4699         movsi,movhi,movqi insn patterns.
4700
4701 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4702
4703         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
4704
4705         PR target/15720
4706         * config/darwin.c (machopic_indirect_call_target): Copy
4707         the SYMBOL_REF_DECL from the original RTX for the new
4708         stub RTX.
4709
4710 2004-05-28  DJ Delorie  <dj@redhat.com>
4711
4712         * stor-layout.c (place_field): Revert erroneous commit.
4713
4714 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
4715
4716         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
4717         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
4718         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
4719         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
4720         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
4721         vec_ste): Remove type checks for integral parameters and literals
4722         from '..._args_eq' macros.
4723
4724 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4725
4726         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
4727
4728 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4729
4730         * testsuite/g++.dg/charset/function.cc: New.
4731
4732         * testsuite/gcc.dg/charset/function.c: New.
4733
4734         * c-decl.c (c_make_fname_decl): Free return value from
4735         fname_as_string.
4736
4737         * cp/decl.c (cp_make_fname_decl): Free return value from
4738         fname_as_string.
4739
4740         * c-common.c (fname_as_string): Translate if necessary.
4741
4742 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
4743
4744         * stringpool.c: Add comments to PCH saving/restoring routines.
4745
4746 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4747
4748         * c-common.c (c_estimate_num_insns_1): Kill.
4749         (c_estimate_num_insns): Kill.
4750         * c-common.h (c_estimate_num_insns): Kill.
4751
4752         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
4753         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
4754         Remove comment about not checking for
4755         _POSIX_PRIORITY_SCHEDULING.
4756         * gthr-posix.c: Likewise.
4757
4758 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
4759             Roger Sayle  <roger@eyesopen.com>
4760
4761         PR rtl-optimization/15649
4762         Add LTGT_EXPR and improve pretty-printing of unordered
4763         comparisons.
4764         * c-common.c (c_common_truthvalue_conversion):
4765         Handle LTGT_EXPR.
4766         * c-typeck.c (build_binary_op): Likewise.
4767         * dojump.c (do_jump): Likewise.
4768         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
4769         * predict.c (tree_predict_by_opcode): Likewise.
4770         * real.c (real_compare): Likewise.
4771         * tree-cfg.c (verify_expr): Likewise.
4772         * tree-inline.c (estimate_num_insns_1): Likewise.
4773         * tree-pretty-print.c (dump_generic_node): Likewise.
4774         Handle ORDERED_EXPR, UNORDERED_EXPR.
4775         (op_symbol): Print unordered comparisons differently
4776         than ordered ones.
4777         * tree.def (LTGT_EXPR): New '<' tree code.
4778         * doc/c-tree.texi (Expressions): Document floating-point
4779         comparison nodes.
4780
4781         Fold comparisons between floating point values.
4782         * fold-const.c (enum comparison_code): New, from
4783         #define'd constants.  Define compcodes for unordered
4784         comparisons and for invalid transformations.
4785         (invert_tree_comparison): Add "honor_nans" parameter.
4786         (fold_truthop): Revamp to work on floating-point types too.
4787         (comparison_to_compcode): Support unordered comparisons.
4788         Use new enum comparison_code.
4789         (compcode_to_comparison): Likewise.
4790         (combine_compcodes): New function.
4791         (invert_truthvalue): Let invert_tree_comparison decide
4792         whether it is valid to fold the comparison.  Fold ORDERED
4793         and UNORDERED even if flag_unsafe_math_optimizations is off,
4794         and the remaining even if flag_unsafe_math_optimizations
4795         is off but we are under -fno-trapping-math.
4796         (fold_relational_const): Integer modes do not honor NaNs.
4797
4798 2004-05-28  Paul Brook  <paul@codesourcery.com>
4799
4800         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
4801
4802 2004-05-28  Paul Brook  <paul@codesourcery.com>
4803
4804         * config/arm/arm.c (thumb_force_lr_save): New function.
4805         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
4806         thumb_output_function_prologue): Use it.
4807         (thumb_expand_prologue): Set lr_save_eliminated.
4808
4809 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4810
4811         * config/mips/mips.md (extendsidi2): Tie the source and destination
4812         of the register alternative.  Split it into nothing.
4813
4814 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4815
4816         * rtl.h (skip_consecutive_labels): Declare.
4817         * emit-rtl.c (skip_consecutive_labels): New function.
4818         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
4819         * jump.c (follow_jumps): Say what null return values mean.
4820
4821 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4822
4823         PR target/13250
4824         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
4825
4826 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4827
4828         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
4829         libgcc-std.ver.
4830         * config/sh/libgcc-std.ver: New file.
4831
4832 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4833
4834         * except.c: Revert change of 2004-05-26.
4835         * config/i386/i386.md: Revert change of 2004-05-27.
4836
4837 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4838
4839         * configure.ac: Remove --enable-tree-browser option.
4840         Define TREEBROWSER when ac_tree_checking is defined.
4841         * configure: Rebuilt.
4842
4843 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
4844
4845         * expr.c (store_constructor): Restore sanity check on
4846         the size of the type before clearing.
4847
4848 2004-05-27  Jan Hubicka  <jh@suse.cz>
4849
4850         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
4851
4852 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4853
4854         * combine.c (gen_binary): Remove.
4855         (known_cond, simplify_shift_const
4856         find_split_point, combine_simplify_rtx,
4857         simplify_if_then_else, simplify_set,
4858         simplify_logical, expand_field_assignment,
4859         extract_left_shift, force_to_mode,
4860         if_then_else_cond, apply_distributive_law,
4861         simplify_and_const_int, simplify_shift_const,
4862         gen_lowpart_for_combine, simplify_comparison,
4863         reversed_comparison): Replace with
4864         simplify_gen_binary, simplify_gen_relational or
4865         distribute_and_simplify_rtx.
4866         (distribute_and_simplify_rtx): New function.
4867         * simplify-rtx.c (simplify_binary_operation):
4868         Use nonzero_bits to simplify ANDs where we are
4869         turning off bits already known to be off in OP0.
4870
4871 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
4872
4873         PR target/14478
4874         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
4875
4876 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
4877
4878         PR middle-end/14084
4879         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
4880         to size of decl.
4881
4882 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
4883
4884         PR/14924
4885         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
4886
4887 2004-05-26  Roger Sayle  <roger@eyesopen.com>
4888
4889         * tree.h: Fix comment typo.
4890
4891 2004-05-27  Steven Bosscher  <stevenb@suse.de>
4892
4893         * gimplify.c (compare_case_labels): New function.
4894         (gimplify_switch_expr): Sort case labels, and make sure the
4895         last label in the label vector is the default case.
4896         * tree-cfg.c (group_case_labels): New function.
4897         (build_tree_cfg): Cleanup redundant labels and group case labels
4898         before creating edges.
4899         (cleanup_dead_labels): Handle GOTO_EXPRs.
4900         (find_case_label_for_value): Use a binary search to find the
4901         case label for the given value.
4902         * tree-gimple.c: Mention that labels are sorted, and that the
4903         last label must be the default.
4904
4905 2004-05-27  Jan Hubicka  <jh@suse.cz>
4906
4907         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
4908
4909 2004-05-27  Jan Hubicka  <jh@suse.cz>
4910
4911         * i386.md (UNSPECV_EH_RETURN): Kill.
4912         (eh_return): Use jump_insn.
4913         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4914
4915 2004-05-26  Jan Hubicka  <jh@suse.cz>
4916
4917         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
4918         not loop optimizing.
4919
4920 2004-05-26  Jan Hubicka  <jh@suse.cz>
4921
4922         * except.c (can_throw_internal):  Notice RESX instructions.
4923
4924 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4925
4926         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
4927         of the two sizes to assemble_integer.
4928
4929 2004-05-25  Paul Brook  <paul@codesourcery.com>
4930
4931         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
4932         pointless #ifdef.
4933
4934 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
4935
4936         * Makefile.in (top_builddir): Define to .
4937
4938 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
4939
4940         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
4941         top-level detects, except when in-tree ld is being cross-built.
4942         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
4943         then AS only if target is host.
4944         * configure: Rebuilt.
4945
4946 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
4947
4948         * global.c (global_alloc): Call make_accurate_live_analysis.
4949         (record_one_conflict): Remove dead code.
4950         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
4951         (bb_info): New structure.
4952         (BB_INFO, BB_INFO_BY_INDEX): New macros.
4953         (allocate_bb_info, free_bb_info, mark_reg_change,
4954         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
4955         modify_bb_reg_pav, calculate_reg_pav,
4956         make_accurate_live_analysis): New functions.
4957
4958 2004-05-25  Devang Patel  <dpatel@apple.com>
4959
4960         * alias.c (init_alias_analysis): Use ggc_calloc instead of
4961         xrealloc.
4962         (end_alias_analysis): Use ggc_free instead fo free.
4963
4964 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
4965
4966         PR target/15546
4967         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
4968         as needed to be outputted.
4969
4970 2004-05-25  Jan Hubicka  <jh@suse.cz>
4971
4972         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
4973
4974 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
4975         Mostafa Hagog  <mustafa@il.ibm.com>
4976
4977         * Makefile.in (modulo-sched.o, ddg.o): New.
4978         * ddg.h, ddg.c, modulo-sched.c: New files.
4979         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
4980         internals to "dupicate_insn".
4981         (duplicate_insn): New function.
4982         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
4983         declarations.
4984         * common.opt (fmodulo-sched): New flag.
4985         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
4986         Remove static and forward declaration.
4987         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
4988         functions.
4989         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
4990         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
4991         declarations.
4992         * flags.h (flag_modulo_sched): New flag.
4993         * opts.c (common_handle_option): Handle modulo-sched flag.
4994         * params.def (max-sms-loop-number, sms-max-ii-factor,
4995         sms-dfa-history, sms-loop-average-count-threshold): New
4996         parameters.
4997         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
4998         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
4999         parameters.
5000         * passes.c ("sms", "sms-vcg"): New dumps.
5001         (rest_of_handle_sched): Call sms_schedule.
5002         * rtl.h (sms_schedule): New declaration.
5003         * timevar.def (TV_SMS): New.
5004         * toplev.c (flag_modulo_sched): Initialize.
5005         (f_options): Handle -fmodulo-sched option.
5006         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
5007         * docs/passes.texi: Document new SMS pass.
5008
5009 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
5010
5011         * Makefile.in (OBJS): Add rtlhooks.o.
5012         (rtlanal.o): Depend on function.h.
5013         (cse.o): Depend on rtlhooks-def.h.
5014         (combine.o): Depend on rtlhooks-def.h.
5015         (rtlhooks.o): New rule.
5016         * combine.c: Include rtlhooks-def.h.
5017         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
5018         num_sign_bit_copies, cached_num_sign_bit_copies,
5019         num_sign_bit_copies1): Move most of the code to rtlanal.c.
5020         (reg_nonzero_bits_for_combine,
5021         reg_num_sign_bit_copies_for_combine): New functions holding
5022         the remnants of the above.
5023         (combine_rtl_hooks): New.
5024         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
5025         * cse.c: Include rtlhooks-def.h.
5026         (cse_rtl_hooks): New.
5027         (cse_main): Set rtl_hooks instead of gen_lowpart.
5028         * emit-rtl.c (gen_lowpart): Remove.
5029         (gen_lowpart_general): Move to rtlhooks.c.
5030         * rtl.h (nonzero_bits, num_sign_bit_copies,
5031         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
5032         (gen_lowpart_general): Remove.
5033         (gen_lowpart): Temporarily redefine as a macro.
5034         * rtlanal.c: Include function.h.
5035         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
5036         num_sign_bit_copies, cached_num_sign_bit_copies,
5037         num_sign_bit_copies1): New, from combine.c.
5038         * rtlhooks.c: New file.
5039         * rtlhooks-def.h: New file.
5040
5041 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
5042
5043         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
5044         to support 32-bit -mint8 mode.
5045
5046         * doc/invoke.texi (-mint8): Added documentation for the -mint8
5047         option in the AVR architecture.
5048
5049 2004-05-24  Mike Stump  <mrs@apple.com>
5050
5051         * doc/install.texi: Document that dejagnu 1.4.4 is required.
5052
5053 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
5054
5055         * intl.h (open_quote, close_quote): New.
5056         * intl.c (open_quote, close_quote): New.
5057         (gcc_init_libintl): Set them.
5058         * pretty-print.c: Include "intl.h".
5059         (pp_base_format_text): Support 'q' format flag and %` and %'
5060         formats.  Use ' instead of ` in comments.
5061         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
5062         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
5063         foramt_types_orig): Describe these new formats.
5064         (decode_format_attr, check_function_format,
5065         check_format_info_main): Use these new formats.
5066         (status_warning): Use ATTRIBUTE_GCC_DIAG.
5067         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
5068         check these formats to 3.5.
5069
5070 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5071
5072         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
5073         (BACKEND): Reflect this.
5074         (LIBDEPS): Move CPPLIB before LIBIBERTY.
5075         (LIBS): Likewise.
5076
5077 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
5078
5079         PR tree-optimization/14197
5080         * builtins.c: Include "tree-gimple.h"
5081         (readonly_data_expr): Use get_base_address.  Make sure to call
5082         decl_readonly_section only on trees it can handle.
5083         * tree-gimple.c (get_base_address): Accept STRING_CST and
5084         CONSTRUCTOR expressions.
5085         * Makefile.in: Update dependencies.
5086
5087 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
5088
5089         Move libcpp to the toplevel.
5090         * Makefile.in: Remove references to libcpp files,
5091         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
5092         and change hashtable.h to that.
5093         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
5094         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
5095         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
5096         * configure: Regenerate.
5097         * config.in: Regenerate.
5098         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
5099         * cppcharset.c: Removed.
5100         * cpperror.c: Removed.
5101         * cppexp.c: Removed.
5102         * cppfiles.c: Removed.
5103         * cpphash.c: Removed.
5104         * cpphash.h: Removed.
5105         * cppinit.c: Removed.
5106         * cpplex.c: Removed.
5107         * cpplib.c: Removed.
5108         * cpplib.h: Removed.
5109         * cppmacro.c: Removed.
5110         * cpppch.c: Removed.
5111         * cpptrad.c: Removed.
5112         * cppucnid.h: Removed.
5113         * cppucnid.pl: Removed.
5114         * cppucnid.tab: Removed.
5115         * hashtable.c: Removed.
5116         * hashtable.h: Removed.
5117         * line-map.c: Removed.
5118         * line-map.h: Removed.
5119         * mkdeps.c: Removed.
5120         * mkdeps.h: Removed.
5121         * stringpool.h: Include symtab.h instead of hashtable.h.
5122         * tree.h: Include symtab.h instead of hashtable.h.
5123         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
5124
5125 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5126
5127         * gcc.c (struct prefix_list): Add forward declaration.
5128         (do_spec_path): New function, extracted from...
5129         (do_spec_1) <'D'>: ... here.  Drop support for
5130         SPACE_AFTER_L_OPTION.
5131         (do_spec_1) <'I'>: Use do_spec_path.
5132         (process_command): Do not store the 'include' suffix
5133         in include_prefixes.
5134         * system.h: Poison SPACE_AFTER_L_OPTION.
5135
5136 2002-05-23  Roger Sayle  <roger@eyesopen.com>
5137
5138         * fold-const.c (non_lvalue): Explicitly list the tree codes that
5139         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
5140
5141 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
5142
5143         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
5144         Update based on printed manual.  Enable setting of offsets for
5145         FSFPRINT and move it to gcc-common.texi.
5146         * doc/gcc.texi: Update FSF printing details.
5147         * doc/gccint.texi: Remove FSF printing details.
5148
5149 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
5150
5151         * config/rs6000/t-rs6000: Remove the disabling -Werror.
5152
5153 2004-05-22  Roger Sayle  <roger@eyesopen.com>
5154
5155         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5156         expand_builtin_strrchr, expand_builtin_strpbrk,
5157         expand_builtin_mempcpy, expand_builtin_memcmp,
5158         expand_builtin_strcmp, expand_builtin_strncmp,
5159         expand_builtin_strcat, std_expand_builtin_va_start,
5160         std_expand_builtin_va_arg, expand_builtin_va_copy,
5161         expand_builtin_signbit, fold_builtin_cabs,
5162         fold_builtin_logarithm, fold_builtin_mempcpy,
5163         fold_builtin_signbit, fold_builtin_isascii,
5164         fold_builtin_toascii, fold_builtin_isdigit,
5165         fold_builtin_1, build_function_call_expr,
5166         simplify_builtin_strchr, simplify_builtin_strrchr,
5167         simplify_builtin_strpbrk, simplify_builtin_strncpy,
5168         simplify_builtin_memcmp, simplify_builtin_strcmp,
5169         simplify_builtin_strncmp, simplify_builtin_strncat,
5170         simplify_builtin_strspn, simplify_builtin_strcspn,
5171         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
5172         to build with calls to build2, build3 or omit_one_operand.
5173
5174 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5175
5176         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
5177         section when generating EABI code.
5178
5179 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5180
5181         PR 15546
5182         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
5183         Call mark_decl_referenced on the SYMBOL_REF_DECL.
5184
5185 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5186
5187         * c-common.c (c_common_truthvalue_conversion): Handle
5188         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5189         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5190         i.e. set the type to truthvalue_type_node and return.
5191
5192 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
5193
5194         * tree.h (struct tree_decl): Add possibly_inlined bit.
5195         (DECL_POSSIBLY_INLINED): New accessor macro.
5196         * cgraph.h: Remove declaration of cgraph_inline_hash.
5197         * cgraph.c: Remove definition of cgraph_inline_hash.
5198         (hash_node): Revert to hashing DECL_UID.
5199         (eq_node): Take two pointers to cgraph_node structures.
5200         Compare DECL_UIDs.
5201         (cgraph_remove_node): Pass the node directly to htab_find_slot.
5202         (cgraph_varpool_hash_node): Rename hash_varpool_node;
5203         hash on DECL_UID.
5204         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
5205         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
5206         (cgraph_node): Allocate a temporary node on the stack, fill in
5207         its DECL field, and pass that to htab_find_slot.
5208         (cgraph_varpool_node): Likewise.
5209         (cgraph_function_possibly_inlined_p): If global info is ready,
5210         return the DECL_POSSIBLY_INLINED bit.
5211         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
5212         instead of mucking with cgraph_inline_hash.
5213
5214 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5215
5216         * doc/contrib.texi: Add g77 contributors.
5217
5218 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5219
5220         * calls.c (initialize_argument_information): Forbid sibcalls if a
5221         callee-copied argument is stored in the current function's frame.
5222
5223 2004-05-22  Eric Christopher  <echristo@redhat.com>
5224
5225         * fix-header.c (read_scan_file): Update for add_path change.
5226
5227 2004-05-22  Ben Elliston  <bje@au.ibm.com>
5228
5229         * c.opt (Wmissing-include-dirs): New.
5230         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
5231         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
5232         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
5233         * c-incpath.h (add_path): Add fourth (bool) argument.
5234         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
5235         (add_standard_paths): Likewise.
5236         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
5237         is used and the directory was user-supplied via -I.
5238         (add_path): Set p->user_supplied_p.  Remove duplicated code by
5239         using add_cpp_dir_path ().
5240         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
5241         (struct cpp_dir): Add user_supplied_p.
5242         * doc/invoke.texi (Warning Options): Document new option.
5243
5244 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
5245
5246         * fold-const.c (fold_read_from_constant_string): Convert result to
5247         requested type.
5248
5249 2004-05-21  Richard Henderson  <rth@redhat.com>
5250
5251         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
5252         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
5253         Don't mark VA_ARG_EXPRs volatile here.
5254         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
5255
5256 2004-05-21  Richard Henderson  <rth@redhat.com>
5257
5258         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
5259         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
5260
5261 2004-05-21  Roger Sayle  <roger@eyesopen.com>
5262
5263         * fold-const.c (fold, fold_relational_hi_lo,
5264         nondestructive_fold_binary_to_constant,
5265         fold_read_from_constant_string): Use fold_convert instead of convert.
5266         * builtins.c (simplify_builtin, simplify_builtin_strstr,
5267         simplify_builtin_strchr, simplify_builtin_strrchr,
5268         simplify_builtin_strpbrk): Use fold_convert instead of convert.
5269
5270 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
5271
5272         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
5273         is NULL.
5274
5275 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
5276
5277         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
5278         override sparc.h definition.
5279
5280 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5281
5282         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
5283         get_unwidened, get_narrower): Replace build with build2.
5284         * fold-const.c (negate_expr, associate_trees, size_binop,
5285         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
5286         pedantic_omit_one_operand, distribute_bit_expr,
5287         make_bit_field_ref, optimize_bit_field_compare,
5288         decode_field_reference, range_binop, make_range,
5289         build_range_check, fold_range_test, fold_truthop,
5290         optimize_minmax_comparison, extract_muldiv_1,
5291         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
5292         fold_inf_compare, fold_single_bit_test, fold,
5293         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
5294         Likewise replace build with either build2 or build3.
5295
5296 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
5297
5298         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
5299         * calls.c (prepare_call_address): Don't test
5300         NO_RECURSIVE_FUNCTION_CSE.
5301         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
5302         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5303         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5304         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5305         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5306         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5307         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5308         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5309         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5310         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5311         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5312         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
5313         Likewise.
5314         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5315         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
5316         * doc/tm.texi (Costs): Remove documentation for
5317         NO_RECURSIVE_FUNCTION_CSE.
5318
5319 2004-05-20  Paul Brook  <paul@codesourcery.com>
5320
5321         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
5322         * unwind-dw2.c (extract_cie_info): Ditto.
5323         (_Unwind_FrameState): Change retaddr_column to word type.
5324
5325 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5326
5327         PR middle-end/3074
5328         * fold-const.c (strip_compound_expr): Delete function.
5329         (count_cond): Delete function.
5330         (fold_binary_op_with_conditional_arg): Only perform transformations
5331         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
5332         when a is constant.  This greatly simplifies this routine.
5333
5334         * tree.c (saved_expr_p): Delete function.
5335         * tree.h (saved_expr_p): Delete function prototype.
5336
5337 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5338
5339         * common.opt (ftree-loop-optimize): Remove.
5340
5341 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
5342
5343         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
5344         (NM_FOR_TARGET): Use := and $(shell).
5345         (mainversion): Remove unused variable.
5346
5347 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5348
5349         * reorg.c (delete_from_delay_slot): If we have a barrier after the
5350         sequence containing the insn to be deleted, always reemit it.
5351
5352 2004-05-20  Richard Henderson  <rth@redhat.com>
5353
5354         PR 15454
5355         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
5356         * function.c (expand_function_start): Expand static_chain_decl by hand.
5357         * gimplify.c (create_tmp_var_name): Export.
5358         * tree-gimple.h (create_tmp_var_name): Declare.
5359
5360 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5361
5362         * rs6000.c (print_operand) <case 'z'>: Call
5363         mark_decl_referenced before assemble_name.
5364
5365 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
5366
5367         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5368         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5369         (cgraph_varpool_node): Hash on the pointer to the decl, not
5370         the DECL_UID.  Fixes 64-bit bootstrap failure.
5371
5372 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
5373
5374         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
5375         we don't earlyclobber operands used in the second insn.
5376
5377 2004-05-20  Steven Bosscher  <stevenb@suse.de>
5378
5379         * tree-mudflap.c: Formatting fixes.
5380
5381 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
5382
5383         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
5384         * gengtype.c (open_base_files): Include reload.h in ifiles.
5385         * reload.h (reg_equiv_memory_loc_varray): Declare.
5386         * reload1.c (reg_equiv_memory_loc_varray): New variable.
5387         (init_reload): Initialize it.
5388         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
5389         reg_equiv_memory_loc_varray to size 0.
5390         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
5391         growing reg_equiv_memory_loc_varray to the desired size.
5392         * passes.c (rest_of_handle_old_regalloc): Likewise.
5393         * reload.c: Amend comment on calling init_reload.
5394
5395 2004-05-20  Nick Clifton  <nickc@redhat.com>
5396
5397         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
5398         with 'TRAMP' in the body of the macro definition.
5399
5400 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
5401
5402         PR target/15383
5403         * config/ia64/ia64.c (ia64_expand_compare): Don't check
5404         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
5405         cmptf_libfunc isn't set.
5406         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
5407         conventions.
5408         (ia64_sysv4_init_libfuncs): New.
5409
5410         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
5411         ia64_sysv4_init_libfuncs.
5412
5413 2004-05-20  Falk Hueffner  <falk@debian.org>
5414
5415         PR other/15526
5416         * libgcc2.c (__mulvsi3): Fix overflow test.
5417
5418 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
5419
5420         PR c/14171
5421         * reg-stack.c (nan): Rename to ...
5422         (not_a_num): Here.
5423         (reg_to_stack): Rename nan to not_a_num.
5424         (subst_stack_regs_pat): Likewise.
5425         (convert_regs_entry): Likewise.
5426         (convert_regs_1): Likewise.
5427
5428         * tree-cfg.c (find_case_label_for_value): Replace call to
5429         simple_cst_equal with tree_int_cst_equal.
5430
5431 2004-05-19  Jeff Law <law@redhat.com>
5432
5433         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
5434         If the operand is for a use, then strip away the SSA_NAME, do not
5435         strip away the SSA_NAME for a set.  Never call release_ssa_name.
5436         (mark_def_sites): Appropriately pass additional argument to
5437         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
5438         then set the VDEF_RESULT to the VDEF_OP.
5439         (set_def_block): Strip away any SSA_NAME to get to the real
5440         underlying variable.
5441
5442         * tree-ssa-phiopt.c (value_replacement): Handle the case where
5443         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
5444         BB directly.
5445
5446 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5447
5448         PR c++/15463
5449         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
5450         result of inverse.
5451
5452         PR rtl-optimization/15274
5453         * loop-iv.c (determine_max_iter, shorten_into_mode,
5454         iv_number_of_iterations): Handle constants correctly.
5455         * rtl.h (get_mode_bounds): Declaration changed.
5456         * stor-layout.c (get_mode_bounds): Return a constant suitable for
5457         the target mode.
5458
5459         PR rtl-optimization/14692
5460         * loop-unswitch.c (may_unswitch_on): Try folding the result.
5461         (unswitch_single_loop): Work correctly when may_unswitch_on
5462         returns a folded constant.
5463
5464         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
5465         * simplify-rtx.c (simplify_const_relational_operation): Optimize
5466         comparisons with mode bounds.
5467
5468         * function.c (struct temp_slot): Add new field prev.
5469         (free_after_compilation, init_temp_slots): Free new fields.
5470         (cut_slot_from_list, insert_slot_to_list,
5471         temp_slots_at_level, max_slot_level, move_slot_to_level,
5472         make_slot_available): New functions.
5473         (assign_stack_temp_for_type, combine_temp_slots,
5474         find_temp_slot_from_address, preserve_temp_slots,
5475         preserve_rtl_expr_result, free_temp_slots,
5476         free_temps_for_rtl_expr, pop_temp_slots): Work with
5477         the new structure of lists.
5478         (mark_all_temps_used): Removed.
5479         * function.h (struct function): Field x_temp_slots
5480         replaced by x_used_temp_slots and x_avail_temp_slots.
5481         (temp_slots): Replaced by ...
5482         (used_temp_slots, avail_temp_slots): New.
5483         * tree.h (mark_all_temps_used): Declaration removed.
5484
5485         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
5486         simplify_using_assignment): Take the expression out of
5487         the expr_list wrapper.
5488
5489         * loop-iv.c (iv_number_of_iterations): Improve clasification of
5490         infinite loops.
5491
5492 2004-05-19  Roger Sayle  <roger@eyesopen.com>
5493
5494         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
5495         costs should be based on code size when optimizing for size.
5496
5497 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
5498
5499         * fold-const.c: Remove non-printable character 160.
5500
5501 2004-05-19  Nick Clifton  <nickc@redhat.com>
5502
5503         * doc/invoke.texi (ARM Options): Fix typo.
5504         Remove descrption of -mshort-load-bytes and
5505         -mno-short-load-bytes.
5506
5507         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
5508         missing parenthesis.
5509         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
5510         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
5511
5512 2004-05-19  Steven Bosscher  <stevenb@suse.de>
5513
5514         * expr.c (store_constructor): Build loop start and end by hand
5515         instead of via loop functions from stmt.c.
5516         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
5517         Remove the code to expand them.
5518
5519         * stmt.c (loop_stack): Remove this and everything related.
5520         (struct nesting, enum nesting_desc): Update.
5521         (expand_fixup): Likewise.
5522         (expand_loop_start, expand_start_loop_continue_elsewhere,
5523         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
5524         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
5525         expand_exit_loop_if_false, expand_exit_loop_top_cond,
5526         expand_exit_something): Remove.
5527         * tree.h: Remove prototypes.
5528
5529 2004-05-18  Mike Stump  <mrs@apple.com>
5530             Devang Patel  <dpatel@apple.com>
5531
5532         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
5533         if this label is for eh.
5534         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
5535         * config/darwin.c (darwin_emit_unwind_label): Likewise.
5536         * dwarf2out.c (output_call_frame_info): Likewise.
5537         * output.h (default_emit_unwind_label): Likewise.
5538         * target.h (unwind_label): Likewise.
5539         * varasm.c (default_emit_unwind_label): Likewise.
5540
5541         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
5542         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
5543         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
5544         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
5545         DEBUG_RANGES_SECTION): Define.
5546
5547 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
5548
5549         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5550         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5551         (cgraph_varpool_node):
5552         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
5553         (cgraph_function_possibly_inlined_p): Use the decl itself for
5554         the key, not DECL_ASSEMBLER_NAME.
5555         (change_decl_assembler_name): No need to muck with the hash tables.
5556         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
5557         Delete.
5558         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
5559         for the key, not DECL_ASSEMBLER_NAME.
5560         * cgraph.h: Remove prototypes of deleted functions.
5561         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
5562         (mark_decl_referenced): New function.
5563         * tree.h: Prototype mark_decl_referenced.
5564         * final.c (output_addr_const) <case SYMBOL_REF>: Call
5565         mark_decl_referenced before assemble_name.
5566         * c-decl.c (finish_decl): Use mark_decl_referenced.
5567
5568 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
5569             Jeff Law <law@redhat.com>
5570
5571         * tree-ssa-phiopt.c (abs_replacement): New function.
5572         (empty_block_p): New function extracted from...
5573         (candidate_bb_for_phi_optimization): Break out empty block test.
5574         (conditional_replacement): Use empty_block_p.
5575         (value_replacement): Similarly.
5576
5577         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
5578         * tree-ssa-phiopt.c: Include flags.h.
5579         (conditional_replacement): Remove argument names from prototype.
5580         Minor formatting and comment fixes.
5581         (tree_ssa_phiopt): If conditional_replacement returns false, then
5582         call value_replacement.
5583         (value_replacement): New function.
5584
5585 2004-05-18  Jeff Law  <law@redhat.com>
5586
5587         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
5588         from conditional_replacement.
5589         (candidate_bb_for_phi_optimization): Similarly.
5590         (conditional_replacement): Use replace_phi_with_stmt and
5591         candidate_bb_for_phi_optimization.
5592
5593         * tree-ssa-phiopt.c: Fix various formatting issues.
5594
5595 2004-05-18  Steven Bosscher  <stevenb@suse.de>
5596
5597         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
5598         s390_expand_cmpmem): Do not use expand_start_loop and
5599         expand_end_loop, instead build the loop manually.
5600
5601 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
5602
5603         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
5604         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
5605
5606 2004-05-17  Jeff Law  <law@redhat.com>
5607
5608         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
5609         * flags.h (flag_delete_null_pointer_checks): Here.
5610         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
5611         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
5612         (add_phi_arg, remove_phi_arg_num): Similarly.
5613         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
5614         property into PHI nodes.
5615         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
5616         (record_equivalences_from_phis): If all PHI arguments are known to be
5617         nonzero, then the result must be nonzero as well.
5618         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
5619         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
5620         appropriately.  Walk the USE-DEF chains and propagate nonzero property
5621         as appropriate.
5622         * tree.h (PHI_ARG_NONZERO): Define.
5623         (phi_arg_d): Add nonzero flag.
5624
5625 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
5626
5627         * f: Entire directory removed
5628
5629         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
5630         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
5631         (g77_integer_type_node, g77_uinteger_type_node)
5632         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
5633         * c-common.c (c_common_nodes_and_builtins): Do not initialize
5634         the above set of variables.
5635
5636         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
5637         * doc/invoke.texi, doc/standards.texi: Remove cross-references
5638         to g77 manual.
5639
5640 2004-05-17  Steven Bosscher  <stevenb@suse.de>
5641
5642         PR tree-optimization/15438
5643         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
5644         attributed functions as pure or const.
5645
5646 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
5647
5648         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
5649         from source code with errors.
5650
5651 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
5652
5653         Enable tree browser for all front ends.
5654         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
5655         (BACKEND): ...to here.
5656
5657 2004-05-17  Jan Hubicka  <jh@suse.cz>
5658
5659         * i386.c (construct_container): Do not produce BLKmode registers.
5660         (classify_argument): Properly compute alignment of complex types.
5661
5662 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
5663
5664         PR target/15084
5665         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
5666         and renamed to movdi_insv_1_rex64.
5667         (insv): Support SImode for 32bit and DImode for 64bit.
5668
5669 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5670
5671         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
5672         (TARGET_SWITCHES): Remove debugg.
5673         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
5674         TARGET_64BIT.
5675         (subdi3): Replace the define_expand with a define_insn, the latter
5676         renamed from subdi3_internal_3.
5677         (negdi2): Likewise negdi2_internal_2.
5678         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
5679         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
5680         and associated define_splits.
5681         (adddi3_internal): Renamed from adddi3_internal_3.
5682         (ashldi3_internal): Likewise ashldi3_internal4.
5683         (ashrdi3_internal): Likewise ashrdi3_internal4.
5684         (lshrdi3_internal): Likewise lshrdi3_internal4.
5685
5686 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5687
5688         * optabs.c (expand_unop): Try implementing negation using subtraction
5689         from zero.
5690
5691 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5692
5693         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
5694         SAR register.
5695
5696 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
5697
5698         PR target/10982
5699         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
5700         (ne_zeroextractsi_shifted): New pattern.
5701         (ite_ne_zeroextractsi): New pattern.
5702         (ite_ne_zeroextractsi_shifted): New pattern.
5703
5704 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5705
5706         * c-gimplify.c (c_genericize):
5707         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
5708         * c-parse.in <expr_no_commas>: Likewise.
5709         <if_prefix>: Likewise.
5710         <select_or_iter_stmt>: Likewise.
5711         * expr.c (expand_var, expand_expr_real_1): Likewise.
5712         * expr.h (expand_expr): Make it a static inline function.
5713         Move prototype for expand_expr_real up before this.
5714         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
5715         Likewise.
5716         * gimplify.c (gimple_boolify, gimplify_addr_expr,
5717         gimplify_asm_expr, gimplify_expr): Likewise.
5718         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
5719         dump_function_to_file): Likewise.
5720         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
5721         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
5722         * tree-into-ssa.c (dump_tree_ssa): Likewise.
5723         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
5724         Likewise.
5725         * tree-optimize.c (execute_one_pass): Likewise.
5726         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
5727         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
5728
5729         * objc/objc-act.c (objc_build_try_enter_fragment,
5730         objc_build_try_epilogue, objc_build_catch_stmt,
5731         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
5732         with lang_hooks.foo ().
5733
5734 2004-05-15  Roger Sayle  <roger@eyesopen.com>
5735
5736         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
5737         that simplify_builtin doesn't destructively modify its argument.
5738
5739 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5740
5741         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
5742         implementations for ARM and Thumb.
5743         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
5744
5745 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
5746
5747         * prefix.c (update_path): Replace PREFIX with KEY only
5748         when it matches a full directory name in PATH.
5749
5750 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5751
5752         * arm.h (TARGET_APCS_32): Delete.
5753         (TARGET_MMU_TRAPS): Delete.
5754         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
5755         define __APCS_26__.
5756         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
5757         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
5758         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
5759         (prog_mode_type): Delete.
5760         (PROMOTE_MODE): Always promote unsigned for HImode.
5761         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
5762         (MASK_RETURN_ADDR): Simplify.
5763         * arm.c (arm_prgmode): Delete.
5764         (arm_override_options, arm_gen_rotated_half_load): Simplify.
5765         (print_multi_reg, output_return_instruction): Simplify.
5766         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
5767         (arm_return_addr): Simplify.
5768         * arm.md (prog_mode): Delete.
5769         (conds): Simplify.
5770         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
5771         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
5772         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
5773         (loadhi_shiftpredec): Delete.
5774         (peephole for post-increment on HImode load): Delete.
5775         * arm/crtn.asm: (FUNC_END): Simplify.
5776         * arm/lib1funcs.asm: Remove APCS-26 return macros.
5777         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
5778         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
5779         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
5780         MULTILIB_DEFAULTS as required.
5781         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
5782         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
5783         variables as required.
5784         * doc/invoke.texi (ARM Options): Remove obsolete flags.
5785
5786 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
5787
5788         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
5789         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
5790         count to 8 to handle n_reg > 2.
5791
5792 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5793
5794         * doc/extend.texi: Update WG14 URL.
5795
5796 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5797
5798         * basic-block.h (life_analysis, delete_noop_moves):
5799         Update prototypes.
5800         * bt-load.c (branch_target_load_optimize): Don't take the
5801         insns stream as an argument.  Update the life_analysis calls.
5802         * combine.c (combine_instructions): Update delete_noop_moves
5803         calls.
5804         * flow.c (notice_stack_pointer_modification): Don't take the
5805         insns stream as an argument.  Work on the flow graph.
5806         (life_analysis): Likewise.
5807         (delete_noop_moves): Likewise.
5808         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
5809         (rest_of_handle_life): Update life_analysis call.
5810         (rest_of_compilation): Likewise, and also update
5811         branch_target_load_optimize call.
5812         * ra.c (reg_alloc): Update life_analysis call.
5813         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
5814         the insns stream as an argument.
5815         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
5816         call.
5817         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
5818         prototypes.
5819         * value-profile.c (branch_prob): Update life_analysis call.
5820         * web.c (web_main): Work on the CFG, not on the insns stream.
5821
5822         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
5823         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
5824         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5825
5826 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5827
5828         PR c/15444
5829         * c-format.c (avoid_dollar_number): New function.
5830         (check_format_info_main): Call avoid_dollar_number when operand
5831         numbers might occur but has_operand_number == 0.
5832
5833 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
5834
5835         * arm.md (all peephole2 patterns): Use predicates that validate
5836         register classes as appropriate.
5837
5838 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5839
5840         PR opt/14472
5841         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
5842         ignore type conversions that do not inhibit tail calling.
5843         (find_tail_calls): Likewise.
5844
5845 2004-05-14  Jeff Law  <law@redhat.com>
5846
5847         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
5848         bother marking bypassed virtuals for out-of-ssa.  Instead merge
5849         bypassed virtuals into vars_to_rename just before into-ssa pass.
5850
5851         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
5852         so that it picks up more opportunities to eliminate ABS expressions
5853         or turn them into negations.
5854
5855 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5856
5857         * passes.c (rest_of_handle_null_pointer): Remove.
5858         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
5859         (rest_of_compilation): Likewise.
5860         * rtl.h (delete_null_pointer_checks): Remove prototype.
5861         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
5862         Remove declarations.
5863         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
5864         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
5865         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
5866         expr_reaches_here_p, computing_insn, def_reaches_here_p,
5867         can_disregard_other_sets, handle_avail_expr, classic_gcse,
5868         one_classic_gcse_pass, invalidate_nonnull_info,
5869         delete_null_pointer_checks_1, delete_null_pointer_checks,
5870         expr_reached_here_p_work): Remove.
5871         (gcse_main): Do not perform classic GCSE when optimizing for size.
5872         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
5873         are never used.
5874
5875 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
5876
5877         PR optimization/14466
5878         * tree-complex.c (make_temp): Remove.
5879         (gimplify_val): Replace make_temp with make_rename_temp
5880         and add NULL as the second argument.
5881         (expand_complex_div_wide): Likewise.
5882         * tree-dfa.c (make_rename_temp): New function.
5883         * tree-flow.h (make_rename_temp): Declare.
5884         * tree-sra.c (make_temp): Remove.
5885         (lookup_scalar): Replace make_temp with make_rename_temp.
5886         (create_scalar_copies): Likewise.
5887         * tree-ssa-phiopt.c (conditional_replacement): When we
5888         get non gimple create a temporary variable to hold the
5889         casted expression.
5890
5891 2004-05-14  Paul Brook  <paul@codesourcery.com>
5892
5893         * stor-layout.c (update_alignment_for_field): Use
5894         targetm.align_anon_bitfield.
5895         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
5896         (TARGET_INITIALIZER): Use it.
5897         * target.h (struct gcc_target): Add align_anon_bitfield.
5898         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
5899         (TARGET_ALIGN_ANON_BITFIELD): Define.
5900         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
5901
5902 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
5903
5904         * tree.def (documentation): Remove mention of class 'b'.
5905         (BLOCK): Now in class 'x'.
5906         * c-common.c (verify_tree): Remove case 'b'.
5907         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
5908         * calls.c (calls_function_1): Control cannot get past the switch
5909         when exp is a BLOCK.
5910         * print-tree.c (print_node): Move code for class 'b' to the class
5911         'c'/'x' switch, as case BLOCK.
5912         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
5913         (unsafe_for_reeval, substitute_placeholder_in_expr)
5914         (stabilize_reference_1): Remove case 'b'.
5915         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
5916         of something being 'b' to tests for TREE_CODE of something being
5917         BLOCK.
5918         * tree-ssa-operands.c (get_expr_operands): Likewise.
5919
5920 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5921
5922         * tree-gimple.c: Rename from tree-simple.c.
5923         * tree-gimple.h: Rename from tree-simple.h.
5924         * c-gimplify.c: Rename from c-simplify.c
5925         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
5926         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
5927         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
5928         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
5929         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
5930         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
5931         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
5932         Update.
5933
5934 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5935
5936         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
5937
5938 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5939
5940         * tree-ssa.c (delete_tree_ssa): XFREE
5941         bitmaps allocated with BITMAP_XMALLOC.
5942
5943         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
5944         idfs_cache at the end of the function.
5945
5946         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
5947         at the end of the function.
5948
5949         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
5950         el at the end of the function.
5951
5952         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
5953         bitmaps allocated with BITMAP_XMALLOC.
5954
5955         * loop-unswitch.c (unswitch_single_loop): Free bbs at
5956         the end.
5957
5958         * final.c (shorten_branches): Free uid_shuid before
5959         reallocating it.
5960
5961         * bb-reoder.c (connect_traces): Free cold_traces at the end.
5962
5963 2004-05-13  Jeff Law  <law@redhat.com>
5964
5965         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
5966         variables.  Simplify slightly by using USE_OP/DEF_OP instead
5967         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
5968
5969         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
5970         rather than iterating through the blocks testing each bit in
5971         livein to initialize the worklist.
5972         (mark_def_sites): Remove useless checks of KILLS for virtual
5973         operands.
5974
5975         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
5976         new parameters for the statement and variable worklist as well
5977         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
5978         worklist recording interesting variables in the variable worklist
5979         and bitmap.  Handle casts between integral and boolean types.
5980         (substitute_single_use_vars): Accept new parameters for the statement
5981         and variable worklist.  When a substitution is made add a new
5982         entry to the statement worklist.  Handle casts between integral
5983         and boolean types.
5984         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
5985         worklists to children.  Iterate until the statement worklist
5986         is empty.
5987
5988 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5989
5990         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
5991         the end of the block.
5992
5993         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
5994         with BITMAP_XMALLOC.
5995
5996         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
5997         with BITMAP_XMALLOC.
5998
5999         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
6000         Free nonzero_vars at the end of the function.
6001
6002         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
6003         need to generate code instead of a NOP_EXPR.
6004
6005 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
6006
6007         * gcc.c (default_compilers): Fill out initializers for new Fortran
6008         entries.
6009
6010 2004-05-13  Paul Brook  <paul@codesourcery.com>
6011
6012         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
6013
6014 2004-05-13  Paul Brook  <paul@codesourcery.com>
6015
6016         * config/arm/arm.c (arm_default_short_enums): New function.
6017         (TARGET_DEFAULT_SHORT_ENUMS): Define.
6018
6019 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
6020
6021         Merge from tree-ssa-20020619-branch.
6022
6023         * Makefile.in (reload1.o-warn): Add.
6024         (tree-alias-ander.o-warn): Add.
6025         (GMPLIBS): Define.
6026         (GMPINC): Define.
6027         (BANSHEELIB): Define.
6028         (BANSHEEINC): Define.
6029         (TREE_DUMP_H): Define.
6030         (TREE_SIMPLE_H): Define.
6031         (TREE_FLOW_H): Define.
6032         (LIBDEPS): Add BANSHEELIB.
6033         (INCLUDES): Add BANSHEEINC and GMPINC.
6034         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
6035         c-mudflap.o and c-pretty-print.o.
6036         (C_OBJS): Remove c-pretty-print.o.
6037         (OBJS-common): Remove sibcall.o.
6038         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
6039         tree-ssa.o, tree-optimize.o, tree-simple.o,
6040         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
6041         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
6042         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
6043         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
6044         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
6045         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
6046         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
6047         tree-tailcall.o, gimple-low.o, tree-iterator.o,
6048         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
6049         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
6050         tree-profile.o.
6051         (OBJC-archive): Add tree-nomudflap.o.
6052         (cc1): Add dependency on @TREEBROWSER@.
6053         (c-decl.o): Add dependency on TREE_DUMP_H.
6054         (c-dump.o): Likewise.
6055         (c-common.o): Add dependency on tree-iterator.h
6056         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
6057         (gtype-desc.o): Add dependency on TREE_FLOW_H.
6058         (tree.o): Add dependency on tree-iterator.h,
6059         BASIC_BLOCK_H and TREE_FLOW_H.
6060         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
6061         (langhooks.o): Add dependency on TREE_SIMPLE_H.
6062         (tree-alias-type.o, tree-alias-ander.o,
6063         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
6064         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
6065         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
6066         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
6067         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
6068         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
6069         tree-nested.o, tree-iterator.o, tree-dfa.o,
6070         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
6071         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
6072         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
6073         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
6074         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
6075         tree-sra.o, tree-complex.o, tree-profile.o,
6076         rtl-profile.o): New rules.
6077         (function.o): Add dependency on basic-block.h
6078         (expr.o): Add dependency on tree-iterator.h.
6079         (sibcall.o): Remove.
6080         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
6081         (cfg.o): Add dependency on TIMEVAR_H.
6082         (cfghooks.o): Add dependency on TREE_FLOW_H.
6083         (reg-stack.o): Add dependency on basic-block.h.
6084         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
6085         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
6086         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
6087         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
6088         tree-alias-type.h, tree-alias-common.h,
6089         tree-alias-type.c, tree-alias-common.c,
6090         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
6091         rtl-profile.c and tree-nested.c.
6092         (gt-tree-alias-common.h, gt-tree-mudflap.h,
6093         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
6094         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
6095         gt-tree-cfg.h, gt-tree-nested.h): New rules.
6096         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
6097         * basic-block.h: Include predict.h
6098         (struct edge_def): Add GTY marker.
6099         Change field 'insns' to be a union of tree and rtx.
6100         (EDGE_TRUE_VALUE): Define.
6101         (EDGE_FALSE_VALUE): Define.
6102         (EDGE_EXECUTABLE): Define.
6103         (struct bb_ann_d): Forward declare.
6104         (struct basic_block_def): Add GTY marker.
6105         Remove fields head_tree and end_tree.
6106         Add fields stmt_list, rbi and tree_annotations.
6107         (struct reorder_block_def): Define.
6108         (basic_block_info): Add GTY marker.
6109         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
6110         variables instead of macros.
6111         (flow_call_edges_add): Remove declaration.
6112         (make_eh_edge): Remove declaration.
6113         (brief_dump_cfg, find_edge, tree_predicted_by_p,
6114         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
6115         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
6116         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
6117         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
6118         (try_redirect_by_replacing_jump): Modfiy return type to
6119         edge instead of bool.
6120         * bb-reorder.c (copy_bb): Call duplicate_block
6121         instead of cfg_layout_duplicate_bb.
6122         (copy_bb_p): Call can_duplicate_block_p instead of
6123         cfg_layout_can_duplicate_bb_p.
6124         * bitmap.c (bitmap_first_set_bit): Abort if word
6125         wasn't found.
6126         (bitmap_last_set_bit): Likewise.
6127         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
6128         (DEF_FUNCTION_TYPE_3): Add.
6129         * builtins.c (c_strlen): Make extern.
6130         (builtin_save_expr): New.
6131         (expand_builtin_nonlocal_goto): New.
6132         (expand_builtin_constant_p): Remove.
6133         (expand_builtin_mathfn): Call builtin_save_expr instead
6134         of save_expr.
6135         (expand_builtin_mathfn_2): Likewise.
6136         (expand_builtin_strcmp): Likewise.
6137         (expand_builtin_strncmp): Likewise.
6138         (expand_builtin_strcat): Likewise.
6139         (fold_builtin_cabs): Likewise.
6140         (expand_builtin_alloca): Don't trigger if -fmudflap is
6141         given.
6142         (build_string_literal): Set TREE_INVARIANT on new node.
6143         (expand_builtin_profile_fun): New.
6144         (round_trampoline_addr): New.
6145         (expand_builtin_init_trampoline): New.
6146         (expand_builtin_adjust_trampoline): New.
6147         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
6148         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
6149         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
6150         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
6151         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
6152         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
6153         Handle.
6154         (fold_builtin_expect): New.
6155         (fold_builtin_isascii): Don't return non-constant results
6156         in GIMPLE form.
6157         (fold_builtin_isdigit): Likewise.
6158         (fold_builtin_1): New.
6159         (fold_builtin): Call it.
6160         (build_function_call_expr): Update call to build a new
6161         CALL_EXPR.
6162         (purge_builtin_constant_p): Remove.
6163         (simplify_builtin, simplify_builtin_memcmp,
6164         simplify_builtin_strcmp, simplify_builtin_strncmp,
6165         simplify_builtin_strpbrk, simplify_builtin_strstr,
6166         simplify_builtin_strchr, simplify_builtin_strrchr,
6167         simplify_builtin_strcat, simplify_builtin_strncat,
6168         simplify_builtin_strspn, simplify_builtin_strcspn,
6169         simplify_builtin_next_arg, simplify_builtin_va_start,
6170         simplify_builtin_sprintf): New.
6171         * builtins.def (BUILT_IN_STACK_ALLOC,
6172         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
6173         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
6174         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
6175         BUILT_IN_PROFILE_FUNC_EXIT): Define.
6176         * c-common.c: Include tree-iterator.h and hashtab.h.
6177         (lang_statement_code_p): Declare.
6178         (lang_gimplify_stmt): Declare.
6179         (fix_string_type): Set TREE_INVARIANT for value.
6180         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
6181         (c_type_hash): New.
6182         (c_common_get_alias_set): Handle multiple type nodes
6183         referring to "the same" type, currently for C90 only.
6184         (c_add_case_label): Use create_artificial_label.
6185         (finish_label_address_expr): Don't set TREE_CONSTANT on
6186         result.
6187         (c_expand_expr): Don't handle STMT_EXPR.
6188         (handle_alias_attribute): Marke aliased variables to be
6189         TREE_STATIC.
6190         (handle_nonnull_attribute): Initialize arg_num.
6191         (check_function_nonnull): Likewise.
6192         (c_walk_subtrees): New.
6193         (c_estimate_num_insns_1): Don't handle
6194         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
6195         (c_decl_uninit_1): Remove.
6196         (c_decl_uninit): Remove.
6197         (c_warn_unused_result): New.
6198         * c-common.def (ASM_STMT): Change number of operands
6199         to 4.
6200         (FILE_STMT): Remove.
6201         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
6202         Remove.
6203         (lang_gimplify_stmt): Add.
6204         (expand_stmt): Remove.
6205         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
6206         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
6207         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
6208         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
6209         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
6210         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6211         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6212         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
6213         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
6214         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
6215         genrtl_compound_stmt, genrtl_asm_stmt,
6216         genrtl_cleanup_stmt, c_decl_uninit): Remove.
6217         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
6218         c_tree_chain_matters_p, c_warn_unused_result,
6219         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
6220         Declare.
6221         * c-convert.c (convert): Make convert work when
6222         converting to compatible types across translation unit.
6223         * c-decl.c: Include langhooks.h, tree-mudflap.h,
6224         tree-simple.h, diagnostic.h and tree-dump.h
6225         (merge_decls): Initialize oldtype to NULL.
6226         (finish_decl): Use DECL_HARD_REGISTER instead of
6227         DECL_C_HARD_REGISTER.
6228         (check_bitfield_type_and_width): Check for null
6229         lang_type_specific when check the precision of an enum.
6230         (grokdeclarator): Immediately layout an ARRAY_TYPE used
6231         in a pointer-to-array declarator.
6232         (finish_struct): Clear allocated struct lang_type.
6233         (finish_enum): Set enum_min and enum_max.  Set
6234         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
6235         not to the enumerators.
6236         (set_decl_nonlocal): New.
6237         (store_parm_decls): Use it via walk_tree.
6238         (c_finalize): New.
6239         (finish_function): When !targetm.have_ctors_dtors,
6240         record static constructors and destructors here...
6241         (c_expand_body_1): ... not here.
6242         (c_expand_decl): Rename from c_expand_decl_stmt.
6243         Handle all C-specific expansion semantics.
6244         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
6245         STMT_LINENO.
6246         * c-format.c (handle_format_arg_attribute): Initialize
6247         format_num.
6248         * c-lang.c: Include tree-inline.h
6249         (LANG_HOOKS_EXPAND_DECL,
6250         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6251         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
6252         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
6253         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
6254         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
6255         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
6256         (c_types_compatible_p): New.
6257         * c-mudflap.c: New file.
6258         * c-objc-common.c: Include tree-mudflap.h
6259         (start_cdtor, finish_cdtor): Collapse
6260         together into
6261         (build_cdtor): ...here.  Update to construct a complete tree
6262         for the function.  No need to call push_scope, pop_scope, or
6263         clear_last_expr, or set current_function_cannot_inline.
6264         (c_missing_noreturn_ok_p): Change prototype to return
6265         bool.
6266         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
6267         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
6268         opts.c.
6269         (c_common_post_options): Don't ever use rtl inlining.
6270         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
6271         * c-pragma.c (handle_pragma_redefine_extname): Define
6272         always.
6273         (init_pragma): Activate #pragma redefine_extname for mudflap.
6274         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
6275         (pp_c_initializer): Accept any type CONSTRUCTOR.
6276         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
6277         COMPLEX_TYPE.
6278         (decl_name_str): New local function.
6279         (pp_c_direct_declarator): Call it.
6280         (pp_c_primary_expression): Call it.
6281         (pp_c_id_expression): Call it.
6282         (pp_c_statement): Call it.
6283         (print_c_tree): Create new pp object.
6284         * c-pretty-print.h (pp_c_tree_decl_identifier,
6285         print_c_tree): Declare.
6286         * c-semantics.c: Include langhooks.h
6287         (lang_expand_stmt, lang_expand_decl_stmt,
6288         find_reachable_label_1, find_reachable_label,
6289         expand_unreachable_if_stmt, expand_unreachable_stmt,
6290         genrtl_do_stmt_1): Remove.
6291         (begin_stmt_tree): Don't check for changed filename.
6292         Call annotate_with_locus.
6293         (finish_stmt_tree): Don't set line for end of function.
6294         (build_stmt): Don't check type nodes for
6295         side effects.
6296         (build_stmt): Set TREE_SIDE_EFFECTS.
6297         Set EXPR_LOCUS instead of STMT_LINENO.
6298         (lang_expand_stmt, lang_expand_decl_stmt,
6299         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6300         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6301         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
6302         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
6303         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
6304         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
6305         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
6306         find_reachable_label_1, expand_unreachable_if_stmt,
6307         expand_unreachable_stmt): Remove.
6308         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
6309         * c-simplify.c: New file.
6310         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
6311         (struct lang_type): Add fields enum_min and enum_max.
6312         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
6313         (c_expand_decl, c_missing_noreturn_ok_p,
6314         c_types_compatible_p): Declare.
6315         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
6316         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
6317         (default_function_array_conversion): Rely on build to
6318         set TREE_CONSTANT.
6319         (parser_build_binary_op, pointer_diff): Likewise.
6320         (build_unary_op, build_binary_op): Likewise.
6321         (build_array_ref):
6322         (build_external_ref): Set TREE_INVARIANT.
6323         (build_c_cast, pop_init_level): Likewise.
6324         (process_init_element): Use ASM_VOLATILE_P.
6325         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
6326         (c_finish_case): Call c_do_switch_warnings.
6327         * c.opt (fdump-): Remove.
6328         * calls.c (try_to_integrate): Remove.
6329         (prepare_call_address): Replace fndecl arg with a
6330         precomputed static chain value.
6331         (emit_call_1): New argument for full call expr.
6332         (flags_from_decl_or_type): Call special_function_p.
6333         (initialize_argument_information): Add argument
6334         may_tailcall.
6335         (purge_reg_equiv_notes): New.
6336         (expand_call): Do not try to expand calls inline.
6337         (fixup_tail_calls): New.
6338         * cfg.c: Include timevar.h and ggc.h.
6339         (bb_pool, edge_pool): Remove.
6340         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
6341         (entry_exit_blocks): Remove.
6342         (rbi_pool): Declare.
6343         (init_flow): Do not create pools.
6344         Allocate entry/exit block.
6345         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
6346         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
6347         (unlink_block): Clear b->prev_bb and b->next_bb.
6348         (compact_blocks): Clear all slots of BASIC_BLOCK array.
6349         (dump_flow_info): Work on trees too.
6350         (dump_cfg_bb_info): New.
6351         (brief_dump_cfg): New.
6352         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
6353         (find_edge): New.
6354         * cfgbuild.c (rtl_make_eh_edge): Rename from
6355         make_eh_edge.  Update all users.
6356         (find_basic_blocks): Don't call VARRAY_FREE on
6357         basic_block_info.
6358         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
6359         and newpos2.
6360         (delete_unreachable_blocks): Return changed status.
6361         (merge_seq_blocks): New.
6362         * cfghooks.c: Include tree-flow.h
6363         (tree_register_cfg_hooks, ir_type): New.
6364         (redirect_edge_and_branch): Change return type to edge.
6365         (predict_edge, predicted_by_p, can_duplicate_block_p,
6366         duplicate_block, block_ends_with_call_p,
6367         block_ends_with_condjump_p, flow_call_edges_add): New.
6368         * cfghooks.h (redirect_edge_and_branch): Change return
6369         type to edge.
6370         (predict_edge, predicted_by_p, can_duplicate_block_p,
6371         duplicate_block, block_ends_with_call_p,
6372         block_ends_with_condjump_p, flow_call_edges_add): Declare.
6373         (redirect_edge_and_branch): Change return type to edge.
6374         (struct cfg_hooks): Add fields block_ends_with_call_p,
6375         block_ends_with_condjump_p, flow_call_edges_add,
6376         predict_edge, predicted_by_p, can_duplicate_block_p and
6377         duplicate_block.
6378         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
6379         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
6380         (fixup_reorder_chain): Use initialize_bb_rbi.
6381         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
6382         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
6383         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
6384         (insn_locators_initialize): Use new info about blocks.
6385         * cfglayout.h (typedef struct reorder_block_def): Moved to
6386         basic_block.h.
6387         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
6388         removed.
6389         * cfgloop.c: Include tree.h and tree-flow.h.
6390         * cfgloop.h (create_loop_notes): Declare.
6391         * cfgloopmanip.c (create_loop_notes): New.
6392         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
6393         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
6394         and duplicate_block fields.
6395         (create_basic_block_structure): Don't look at
6396         RTX_INTEGRATED_P.
6397         (rtl_block_ends_with_call_p): New.
6398         (rtl_block_ends_with_condjump_p): New.
6399         (need_fake_edge_p): Moved from cfganal.c.
6400         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
6401         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
6402         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
6403         (cfg_layout_rtl_cfg_hooks): Ditto.
6404         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
6405         functions to be reachable.
6406         * cgraphunit.c (decide_is_function_needed):
6407         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
6408         inline functions don't need to be output.
6409         (cgraph_assemble_pending_functions): Don't do anything
6410         special for nested functions.
6411         (cgraph_mark_functions_to_output): Likewise.
6412         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
6413         (cgraph_analyze_function): Use estimate_num_insns.
6414         (cgraph_mark_functions_to_output): Likewise.
6415         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
6416         (cgraph_expand_function): Allow functions to not be
6417         emitted.
6418         (cgraph_remove_unreachable_nodes):
6419         (cgraph_recursive_inlining_p): Simplify.
6420         (lookup_recursive_calls,
6421         cgraph_decide_recursive_inlining): New.
6422         (cgraph_decide_inlining_*): Update calls of
6423         cgraph_mark_inline.
6424         * combine.c (get_pos_from_mask): Always set *plen.
6425         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
6426         ftree-based-profiling, ftree-ccp, ftree-ch,
6427         ftree-combine-temps, ftree-copyrename, ftree-dce,
6428         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
6429         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
6430         ftree-lrs): Add.
6431         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
6432         Undefine.
6433         * configure.ac: Add --enable-tree-browser option.
6434         Add --with-libbanshee option.
6435         Add GMPLIBS and GMPINC.
6436         * configure: Regenerate.
6437         * coverage.c (tree_ctr_tables): New.
6438         (coverage_counter_alloc): Use it.
6439         (build_ctr_info_value): Ditto.
6440         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
6441         (tree_coverage_counter_ref): New.
6442         * coverage.h (coverage_counter_ref): Remove declaration.
6443         (rtl_coverage_counter_ref): Declare.
6444         (tree_coverage_counter_ref): Declare.
6445         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
6446         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
6447         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
6448         (struct cse_basic_block_data): Rename enum values to not
6449         conflict with profile.h; update all uses.
6450         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
6451         in comments.
6452         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
6453         * diagnostic.h (debug_output_buffer, dump_generic_node,
6454         print_generic_stmt, print_generic_stmt_indented,
6455         print_generic_expr, print_generic_decl,
6456         debug_generic_expr, debug_generic_stmt, debug_c_tree):
6457         Declare.
6458         * dominance.c: Cache immediate dominators.
6459         * domwalk.c: New file.
6460         * domwalk.h: New file.
6461         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
6462         (gen_subprogram_die): Generate a DIE for a named
6463         return value.
6464         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
6465         (add_location_or_const_value_attribute): Likewise.
6466         (add_bound_info): Likewise.
6467         (gen_decl_die): Likewise.
6468         * emit-rtl.c (maybe_set_first_label_num): New.
6469         (copy_most_rtx): Don't copy the integrated flag.
6470         Copy the new return_val flag.
6471         * et-forest.c (MAX_NODES): Define.
6472         (record_path_before_1): Abort if len is greater than
6473         MAX_NODES.
6474         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
6475         gen_eh_region_catch, gen_eh_region_allowed,
6476         gen_eh_region_must_not_throw, get_eh_region_number,
6477         get_eh_region_may_contain_throw, get_eh_region_tree_label,
6478         set_eh_region_tree_label, expand_resx_expr): New.
6479         (expand_eh_region_start, expand_start_catch): Use them.
6480         (expand_end_catch): Tidy.
6481         (note_eh_region_may_contain_throw): Take region argument.
6482         (note_current_region_may_contain_throw): New.
6483         (get_exception_filter): Export.
6484         (collect_eh_region_array): Export.
6485         (remove_unreachable_regions): Check ERT_TRY based on reachability
6486         of catches, not reachability of continue_label.  Never remove
6487         ERT_MUST_NOT_THROW regions.
6488         (collect_rtl_labels_from_trees): New.
6489         (convert_from_eh_region_ranges): Use it.
6490         (connect_post_landing_pads): Handle dying cleanups.
6491         (struct reachable_info): Add callback data.
6492         (add_reachable_handler): Invoke the callback.
6493         (foreach_reachable_handler): New.
6494         (reachable_handlers): Use it.
6495         (arh_to_landing_pad, arh_to_label): New.
6496         (can_throw_internal_1): Split out from can_throw_internal.
6497         (can_throw_external_1): Similarly.
6498         * except.h: Update.
6499         * explow.c (emit_stack_save): Remove savearea mode check.
6500         (update_nonlocal_goto_save_area): New.
6501         (allocate_dynamic_stack_space): Use it.
6502         (probe_stack_range): Never emit loop notes.
6503         * expmed.c (extract_fixed_bit_field): Always propagate the
6504         target for the shift if it is a REG.
6505         * expr.c: Include tree-iterator.h
6506         (is_zeros_p): Remove.
6507         (categorize_ctor_elements_1, categorize_ctor_elements): New.
6508         (count_type_elements): New.
6509         (mostly_zeros_p): Use them.
6510         (expr_wfl_stack): Remove.
6511         (convert_move): Do nothing if to and from are the same.
6512         (emit_block_move_via_loop): Don't emit LOOP notes.
6513         (emit_move_insn): Don't handle CONSTANT_P_RTX.
6514         (emit_move_insn_1): Don't generate inline warnings.
6515         (expand_vars, expand_var): Split from ...
6516         (expand_expr_1): ... here.
6517         (expand_expr_real, expand_expr_real_1):  Use new macros
6518         EXPR_LOCATION and EXPR_HAS_LOCATION.
6519         * expr.h (simplify_builtin_fputs,
6520         simplify_builtin_strcpy, simplify_builtin_strncpy,
6521         expand_var, fixup_tail_calls,
6522         update_nonlocal_goto_save_area): Declare.
6523         (lookup_static_chain, expand_inline_function,
6524         mark_seen_cases): Remove.
6525         (prepare_call_address): Change type of 2nd argument to
6526         rtx.
6527         * final.c (profile_function): Update static chain test.
6528         (final): Don't look at RTX_INTEGRATED_P.
6529         * flags.h (flag_mudflap, flag_mudflap_threads,
6530         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
6531         flag_tree_dce, flag_tree_combine_temps,
6532         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
6533         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
6534         flag_tree_points_to): Declare.
6535         (enum pta_type): Declare.
6536         * flow.c (lang_missing_noreturn_ok_p): Remove.
6537         (check_function_return_warnings): Remove.
6538         (update_life_info): Update comments.
6539         (free_basic_block_vars): Don't call VARRAY_FREE for
6540         basic_block_info.
6541         (regno_uninitialized): Remove.
6542         * fold-const.c (int_const_binop): Make extern.
6543         (non_lvalue): Rely on build to set TREE_CONSTANT.
6544         (operand_equal_p): Replace only_const argument with
6545         flags.  Allow pure functions if OEP_PURE_SAME.
6546         (fold): Use OEP_ONLY_CONST.
6547         (invert_truthvalue) <NOP_EXPR> Break if argument is of
6548         boolean type.
6549         (fold_relational_hi_lo,
6550         nondestructive_fold_binary_to_constant,
6551         nondestructive_fold_unary_to_constant,
6552         fold_read_from_constant_string): New.
6553         * function.c (struct function): Remove calls_constant_p.
6554         (current_function_calls_constant_p): Remove.
6555         (inline_function_decl): Remove.
6556         (put_var_into_stack): Don't use it.
6557         (fix_lexical_addr): Likewise.
6558         (inline_function_decl): Remove extern declaration.
6559         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
6560         (trampolines_created): Move to varasm.c.
6561         (free_after_compilation): Update for removed fields.
6562         (allocate_struct_function): Likewise.
6563         (delete_handlers, lookup_static_chain): Remove.
6564         (fix_lexical_addr): Don't consider non-local variable refs.
6565         (trampoline_address): Remove.
6566         (round_trampoline_addr): Move to builtins.c.
6567         (adjust_trampoline_addr): Remove.
6568         (expand_function_start): Update for changes to static chain
6569         and nonlocal goto handling.
6570         (initial_trampoline): Move to varasm.c.
6571         (expand_function_end): Don't build trampolines or kill
6572         unreferenced nonlocal goto labels.
6573         (free_after_compilation): Don't set it.
6574         (expand_function_end): Likewise.
6575         (setjmp_vars_warning): Rename from
6576         uninitialized_vars_warning, remove uninitialized vars warning.
6577         (uninitialized_vars_warning): Remove old comment
6578         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
6579         and do not call the langhook.
6580         (expand_function_start, expand_function_end): Don't do
6581         function instrumentation here.
6582         (clear_block_marks): Rename from reorder_blocks_0, export.
6583         (blocks_nreverse): Export.
6584         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
6585         of rtl.
6586         (reset_block_changes, record_block_change, finalize_block_changes,
6587         check_block_change, free_block_changes): New functions.
6588         (assign_parms): Setting of current_function_stdarg
6589         moved ...
6590         (allocate_struct_function): ... here.
6591         * function.h (struct function): Remove x_nonlocal_labels,
6592         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
6593         x_context_display, x_trampoline_list, needs_context.
6594         Add static_chain_decl, nonlocal_goto_save_area.
6595         (struct function): Remove x_clobber_return_insn.
6596         Add tail_call_emit field, last_label_uid,
6597         unexpanded_var_list, dont_emit_block_notes,
6598         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
6599         (clear_block_marks): Declare.
6600         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
6601         (mfwrap_spec, mflib_spec): Declare.
6602         (cpp_unique_options, cc1_options): Ditto.
6603         (default_compilers): Add .F and .f90.
6604         (static_specs): Add mfwrap and mflib.
6605         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
6606         CONSTANT_RTX_P.
6607         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
6608         Update to match insns field in struct edge_def.
6609         * gdbinit.in (pgs, pge): Define.
6610         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
6611         instead of the integrated flag.
6612         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
6613         * gengtype-yacc.y (bitfieldlen): Add empty action.
6614         (struct_fields): Accept unnamed bitfields.
6615         (bitfieldlen): Split from ...
6616         (bitfieldopt): ... here.
6617         * gengtype.c (ifiles): Add tree-alias-type.h and
6618         tree-flow.h.
6619         * genrecog.c (validate_pattern): Do not handle
6620         CONSTANT_P_RTX.
6621         * gimple-low.c: New file.
6622         * gimplify.c: New file.
6623         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
6624         (restore_line_notes): Do not set RTX_INTEGRATED_P.
6625         * ifcvt.c (dead_or_predicable): Initialize local variable
6626         'earliest'.
6627         * input.h (expr_wfl_stack): Remove.
6628         * integrate.c (INTEGRATE_THRESHOLD): Remove.
6629         (setup_initial_hard_reg_value_integration): Likewise.
6630         (initialize_for_inline): Likewise.
6631         (note_modified_parmregs): Likewise.
6632         (integrate_parm_decls): Likewise.
6633         (process_reg_param): Likewise.
6634         (save_parm_insns): Likewise.
6635         (copy_insn_list): Likewise.
6636         (copy_insn_notes): Likewise.
6637         (compare_blocks): Likewise.
6638         (find_block): Likewise.
6639         (inlining): Likewise.
6640         (function_cannot_inline_p): Likewise.
6641         (parmdecl_map): Likewise.
6642         (in_nonparam_insns): Likewise.
6643         (save_for_inline): Likewise.
6644         (FIXED_BASE_PLUS): Likewise.
6645         (expand_inline_function): Likewise.
6646         (copy_rtx_and_substitute): Don't look at map->integrating,
6647         map->inline_target, and inlining, since we are never copying
6648         for integrating.
6649         Don't abort on RTX_INTEGRATED_P.
6650         (old_fun): Remove.
6651         (output_inline_function): Remove.
6652         * integrate.h (struct inline_map): Remove fields integrating,
6653         block_map, leaf_reg_map, inline_target, and local_return_label.
6654         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
6655         copy_loop_headers, never_reached_warning): Removed.
6656         (any_uncondjump_p): Reject nonlocal goto.
6657         * langhooks-def.h (lhd_types_compatible_p,
6658         lhd_expand_decl, lhd_gimplify_expr): Declare.
6659         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6660         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6661         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6662         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6663         LANG_HOOKS_GIMPLIFY_EXPR,
6664         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
6665         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6666         LANG_HOOKS_GIMPLIFY_EXPR,
6667         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
6668         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
6669         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
6670         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6671         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
6672         LANG_HOOKS_DECL_UNINIT,
6673         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
6674         * langhooks.c: Include tree-simple.h.
6675         (lhd_expand_decl): New.
6676         (lhd_types_compatible_p): New.
6677         (lhd_decl_uninit): Remove.
6678         (lhd_gimplify_expr): New.
6679         * langhooks.h (struct lang_hooks_for_rtl_expansion):
6680         Remove.
6681         (struct lang_hooks_for_functions): Add field
6682         missing_noreturn_ok_p.
6683         (struct lang_hooks): Add field expand_decl,
6684         types_compatible_p, gimplify_expr and
6685         gimple_before_inlining.
6686         Remove fields decl_uninit and rtl_expand
6687         * opts.c (decode_options): Set flag_tree_ccp,
6688         flag_tree_dce, flag_tree_dom, flag_tree_dse,
6689         flag_tree_pre, flag_tree_ter,
6690         flag_tree_live_range_split, flag_tree_sra,
6691         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
6692         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
6693         OPT_fmudflapth, OPT_fmudflapir,
6694         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
6695         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
6696         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
6697         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
6698         OPT_ftree_points_to_ and OPT_ftree_pre.
6699         * output.h (regno_uninitialized, find_basic_blocks,
6700         cleanup_cfg, delete_unreachable_blocks,
6701         check_function_return_warnings): Remove.
6702         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
6703         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
6704         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
6705         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
6706         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
6707         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
6708         Define.
6709         * passes.c (rest_of_decl_compilation):
6710         (rest_of_handle_sibling_calls): Remove.
6711         (rest_of_handle_inlining): Remove.
6712         (rest_of_handle_gcse): Do not run
6713         purge_builtin_constant_p.
6714         (rest_of_compilation): Update.
6715         Do not call copy_loop_headers.
6716         Do rtl-based profiling only when
6717         !flag_tree_based_profiling.  Register rtl-based profiling
6718         hooks.
6719         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
6720         (predicted_by_p): Rename to ...
6721         (rtl_predicted_by_p): .. this one; make global
6722         (tree_predicted_by_p): New.
6723         (dump_prediction): Add FILE argument.
6724         (predict_edge): Rename to ...
6725         (rtl_predict_edge): .. this one.
6726         (tree_predict_edge): New.
6727         (combine_predictions_for_insn): Update calls of predict_edge.
6728         (predict_loops): Break out from ...
6729         (estimate_probability): ... here; update comments; move updating
6730         of unknown probabilities from ...
6731         (estimate_bb_frequencies): ... here.
6732         (combine_predictions_for_bb): New.
6733         (tree_predict_by_opcode): New.
6734         (tree_estimate_probability): New.
6735         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
6736         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
6737         * predict.h: Add include guard.
6738         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
6739         * pretty-print.c (pp_write_text_to_stream): Make extern.
6740         * pretty-print.h (pp_write_text_to_stream): Declare.
6741         * print-rtl.c (print_rtx): Don't print the integrated flag.
6742         Print the return_val flag.
6743         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
6744         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
6745         Remove support for EXPR_WITH_FILE_LOCATION nodes.
6746         (print_node): Print TREE_INVARIANT and TREE_VISITED.
6747         * profile.c: Include cfghooks.h, tree-flow.h.
6748         (profile_hooks): New.
6749         (profile_dump_file): New.
6750         (instrument_edges): Use hooks instead of RTL-specific code.
6751         (instrument_values): Ditto.
6752         (get_exec_counts): Ditto.
6753         (compute_branch_probabilities): Ditto.
6754         (compute_value_histograms): Ditto.
6755         (branch_prob): Ditto.
6756         (find_spanning_tree): Ditto.
6757         (end_branch_prob): Ditto.
6758         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
6759         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
6760         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
6761         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
6762         (tree_register_profile_hooks): New.
6763         (rtl_register_profile_hooks): New.
6764         * ra-rewrite.c (rewrite_program): Clear variable info.
6765         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
6766         * regs.h: Add include guards.
6767         * reload.c (decompose): Clear val using memset.
6768         * rtl.def (CONSTANT_P_RTX): Remove.
6769         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
6770         (copy_loop_headers): Remove.
6771         (struct rtx_def): Replace the integrated flag with the
6772         return_val flag.
6773         (maybe_set_first_label_num): Declare.
6774         (init_branch_prob): Move declaration to value-prof.h.
6775         (end_branch_prob): Ditto.
6776         (branch_prob): Ditto.
6777         (never_reached_warning): Don't declare it.
6778         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
6779         (hoist_insn_to_edge): Update to match field insns in
6780         struct edge_def.
6781         * sbitmap.c (sbitmap_realloc): New.
6782         * sbitmap.h (sbitmap_realloc): Declare.
6783         * sibcall.c: Remove file.
6784         * simplify-rtx.c (simplify_rtx): Do not handle
6785         CONSTANT_P_RTX.
6786         * stmt.c (parse_output_constraint): Don't warn for read-write
6787         memory operand.
6788         (tail_recursion_args): Use types_compatible_p langhook.
6789         (force_label_rtx): Don't look at inline_function_decl.
6790         (label_rtx): Set LABEL_PRESERVE_P appropriately.
6791         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
6792         (declare_nonlocal_label): Remove.
6793         (expand_goto): Don't handle nonlocal gotos.
6794         (expand_nl_handler_label): Remove.
6795         (expand_nl_goto_receivers): Remove.
6796         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
6797         update_nonlocal_goto_save_area.
6798         (expand_expr_stmt_value): Check TREE_NO_WARNING.
6799         (warn_if_unused_value): Likewise.
6800         (expand_start_loop, expand_loop_continue_here,
6801         expand_end_loop): Don't create loop notes.
6802         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
6803         mark_seen_cases, check_for_full_enumeration_handling): Remove.
6804         (expand_end_case_type): Don't do warn_switch handling.
6805         (pushcase, pushcase_range) Update add_case_node calls.
6806         (add_case_node): Add dont_expand_label argument.
6807         (same_case_target_p): Don't search rtl.
6808         (expand_start_bindings_and_block, expand_end_bindings):
6809         Don't emit block notes when dont_emit_block_notes.
6810         (using_eh_for_cleanups_p): Export.
6811         (expand_return): Allow any typed rhs.
6812         (expand_stack_alloc): New.
6813         (expand_stack_save, expand_stack_restore): New.
6814         (containing_blocks_have_cleanups_or_stack_level): New
6815         function.
6816         (asm_op_is_mem_input): New fn.
6817         (expand_asm_expr): New fn.
6818         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
6819         nodes.
6820         * stor-layout.c (layout_type): Just return if type is
6821         error_mark_node.
6822         (update_alignment_for_field): Export.
6823         (variable_size): We don't care about global_bindings_p if
6824         the frontend doesn't want a list of the expressions.
6825         * system.h: Poison INTEGRATE_THRESHOLD.
6826         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
6827         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
6828         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
6829         TV_TREE_SSA_OTHER, TV_TREE_OPS,
6830         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
6831         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
6832         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
6833         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
6834         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
6835         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
6836         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
6837         TV_CONTROL_DEPENDENCES): Define.
6838         * toplev.c: Include tree-alias-common.h
6839         (current_file_decl, flag_mudflap, flag_mudflap_threads,
6840         flag_mudflap_ignore_reads, flag_tree_based_profiling,
6841         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
6842         flag_tree_dce, flag_tree_ch, flag_tree_sra,
6843         flag_tree_combine_temps, flag_tree_ter,
6844         flag_tree_live_range_split, flag_tree_dom,
6845         flag_tree_copyrename, flag_tree_dse): Declare.
6846         (f_options): Add tree-based-profiling, tree-gvn,
6847         tree-pre, tree-ccp, tree-dce,
6848         tree-dominator-opts, tree-copyrename, tree-dse,
6849         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
6850         (wrapup_global_declarations): Don't output nested inlined functions.
6851         (general_init): Call init_tree_optimization_passes.
6852         (process_options): Sorry for -ftree-based-profiling plus
6853         -ftest-coverage or -fprofile-values.
6854         * toplev.h (init_tree_optimization_passes,
6855         flag_tree_based_profiling): Declare.
6856         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
6857         * tree-alias-ander.c: New file.
6858         * tree-alias-ander.h: New file.
6859         * tree-alias-common.c: New file.
6860         * tree-alias-common.h: New file.
6861         * tree-alias-type.c: New file.
6862         * tree-alias-type.h: New file.
6863         * tree-browser.c: New file.
6864         * tree-browser.def: New file.
6865         * tree-cfg.c: New file.
6866         * tree-complex.c: New file.
6867         * tree-dfa.c: New file.
6868         * tree-dump.c (dump_enable_all): New.
6869         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
6870         (dump_node): Remove const from field suffix and swtch.
6871         (dump_files): Add null entry, .generic, .nested, .vcg,
6872         .xml and a match-all entry.
6873         (extra_dump_files, extra_dump_files_in_use,
6874         extra_dump_files_alloced): Declare
6875         (dump_option_value_info): Add raw, details, stats,
6876         blocks, vops, lineno, uid and all.
6877         (dump_register): New.
6878         (get_dump_file_info): New.
6879         (dump_begin): Call it.
6880         Do nothing for TDI_none.
6881         (dump_begin): Include phase number in dump filename.
6882         (dump_enable_all): New.
6883         (dump_switch_p_1): Split out from dump_switch_p.
6884         (dump_switch_p): Handle extra_dump_files.
6885         Start our scan at TDI_none + 1.
6886         If -fdump-tree-all was given, call dump_enable_all.
6887         * tree-dump.h: Include splay-tree.h.
6888         (dump_function, dump_function_to_file, dump_register):
6889         Declare.
6890         * tree-eh.c: New file.
6891         * tree-flow-inline.h: New file.
6892         * tree-flow.h: New file.
6893         * tree-inline.c: Re-write to handle inlining on GIMPLE.
6894         * tree-inline.h (walk_tree,
6895         walk_tree_without_duplicates): Move to tree.h.
6896         (estimate_num_insns): Declare.
6897         * tree-into-ssa.c: New file.
6898         * tree-iterator.c: New file.
6899         * tree-iterator.h: New file.
6900         * tree-mudflap.c: New file.
6901         * tree-mudflap.h: New file.
6902         * tree-nested.c: New file.
6903         * tree-nomudflap.c: New file.
6904         * tree-nrv.c: New file.
6905         * tree-optimize.c (dump_flags, vars_to_rename,
6906         in_gimple_form, all_passes, pass_gimple,
6907         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
6908         (execute_gimple, execute_rebuild_bind,
6909         gate_all_optimizations, execute_del_cfg,
6910         register_one_dump_file, register_dump_files, dup_pass_1,
6911         init_tree_optimization_passes, execute_todo,
6912         execute_one_pass, execute_pass_list): New.
6913         (clear_decl_rtl): Remove.
6914         (tree_rest_of_compilation): Update to use tree
6915         optimizers.
6916         * tree-outof-ssa.c: New file.
6917         * tree-pass.h: New file.
6918         * tree-phinodes.c: New file.
6919         * tree-pretty-print.c: New file.
6920         * tree-profile.c: New file.
6921         * tree-simple.c: New file.
6922         * tree-simple.h: New file.
6923         * tree-sra.c: New file.
6924         * tree-ssa-alias.c: New file.
6925         * tree-ssa-ccp.c: New file.
6926         * tree-ssa-copy.c: New file.
6927         * tree-ssa-copyrename.c: New file.
6928         * tree-ssa-dce.c: New file.
6929         * tree-ssa-dom.c: New file.
6930         * tree-ssa-dse.c: New file.
6931         * tree-ssa-forwprop.c: New file.
6932         * tree-ssa-live.c: New file.
6933         * tree-ssa-live.h: New file.
6934         * tree-ssa-loop.c: New file.
6935         * tree-ssa-operands.c: New file.
6936         * tree-ssa-operands.h: New file.
6937         * tree-ssa-phiopt.c: New file.
6938         * tree-ssa-pre.c: New file.
6939         * tree-ssa.c: New file.
6940         * tree-ssanames.c: New file.
6941         * tree-tailcall.c: New file.
6942         * tree.c: Include tree-iterator.h, basic-block.h and
6943         tree-flow.h.
6944         (tree_node_kind): Add phi_nodes and ssa names.
6945         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
6946         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
6947         (make_node_stat): Handle PHI_NODE and SSA_NAME.
6948         <'c'> Set TREE_INVARIANT.
6949         (copy_node_stat): Abort if trying to copy a
6950         STATEMENT_LIST.
6951         Clear TREE_VISITED.
6952         Clear annotation field.
6953         (build_constructor): Copy TREE_INVARIANT from vals.
6954         Don't clear TREE_CONSTANT.
6955         (expr_first, expr_last, expr_length): Remove.
6956         (staticp): Pass unknown component references to the language.
6957         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
6958         (skip_simple_arithmetic): Likewise.
6959         (stabilize_reference_1): Likewise.
6960         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
6961         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
6962         STATEMENT_LIST.
6963         (lhd_unsave_expr_now): Remove.
6964         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
6965         (recompute_tree_invarant_for_addr_expr): New.
6966         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
6967         Call recompute_tree_invarant_for_addr_expr.
6968         Set TREE_INVARIANT accordingly.
6969         (build2_stat): Don't handle CALL_EXPR.
6970         (build3_stat): Don't call build2_stat for CALL_EXPRs.
6971         (build_expr_wfl): Remove.
6972         (annotate_with_file_line, annotate_with_locus): New.
6973         (simple_cst_equal): Call simple_cst_list_equal to compare
6974         CONSTRUCTOR_ELTS pointers.
6975         (iterative_hash_expr): Don't hash types associated
6976         with conversions.  Instead hash on the signedness of the
6977         toplevel object and the operand of the conversion.
6978         (dump_tree_statistics): Call ssanames_print_statistics
6979         and phinodes_print_statistics.
6980         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
6981         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
6982         needs_to_live_in_memory): New.
6983         (initializer_zerop): Handle VECTOR_CST.  Don't check
6984         AGGREGATE_TYPE_P for CONSTRUCTOR.
6985         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
6986         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
6987         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
6988         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
6989         (CALL_EXPR): Add another operand.
6990         (EXPR_WITH_FILE_LOCATION): Remove.
6991         (SWITCH_EXPR): Add another operand.
6992         * tree.h: Update various comments.
6993         (union tree_ann_d): Forward declare.
6994         (struct tree_common): Add fields nowarning_flag,
6995         invariant_flag and visited.
6996         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
6997         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
6998         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
6999         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
7000         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
7001         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
7002         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
7003         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
7004         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
7005         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
7006         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
7007         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
7008         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
7009         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
7010         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
7011         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
7012         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
7013         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
7014         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
7015         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
7016         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
7017         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
7018         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
7019         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
7020         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
7021         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
7022         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
7023         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
7024         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
7025         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
7026         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
7027         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
7028         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
7029         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
7030         TDF_UID,): Define.
7031         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
7032         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
7033         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
7034         EXPR_WFL_SET_LINECOL): Remove.
7035         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
7036         make_phi_node, init_phinodes, fini_phinodes,
7037         release_phi_node, phinodes_print_statistics,
7038         init_ssanames, fini_ssanames, make_ssa_name,
7039         release_ssa_name, ssanames_print_statistics,
7040         annotate_with_file_line, build_empty_stmt,
7041         annotate_with_locus, expr_only, categorize_ctor_elements,
7042         count_type_elements, add_var_to_bind_expr, is_essa_node,
7043         expand_stack_alloc, expand_stack_save,
7044         expand_stack_restore, add_case_node, operand_equal_p,
7045         nondestructive_fold_unary_to_constant,
7046         nondestructive_fold_binary_to_constant,
7047         fold_read_from_constant_string, int_const_binop,
7048         strip_float_extensions, simplify_builtin, c_strlen,
7049         recompute_tree_invarant_for_addr_expr,
7050         needs_to_live_in_memory, make_vector,
7051         setjmp_vars_warning, update_alignment_for_field,
7052         expand_asm_expr, asm_op_is_mem_input,
7053         containing_blocks_have_cleanups_or_stack_level,
7054         create_artificial_label, gimplify_function_tree,
7055         get_name, unshare_expr, walk_tree,
7056         walk_tree_without_duplicates, in_gimple_form): Declare.
7057         (struct tree_exp): Add fields locus and block.
7058         (struct tree_ssa_name, struct edge_def, struct
7059         tree_phi_node, struct tree_eref_common, struct
7060         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
7061         union alias_var_def, struct tree_statement_list_node,
7062         struct tree_statement_list, enum operand_equal_flag): Declare.
7063         (enum tree_node_structure_enum): Add TS_SSA_NAME,
7064         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
7065         TS_STATEMENT_LIST.
7066         (union tree_node): Add fields ssa_name, phi, eref, ephi,
7067         euse and stmt_list.
7068         (function_cannot_inline_p, uninitialized_vars_warning,
7069         save_for_inline, output_inline_function, all_cases_count,
7070         check_for_full_enumeration_handling,
7071         declare_nonlocal_label): Remove.
7072         (enum tree_dump_index): Add TDI_none, TDI_tu,
7073         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
7074         * unroll.c (unroll_loop): Don't clear map->inline_target.
7075         * unwind-sjlj.c (uw_install_context): Make a proper static inline
7076         function.
7077         * value-prof.c (value_prof_hooks): New.
7078         (find_values_to_profile): Rename to rtl_find_values_to_profile.
7079         Move rtl-specific bits in from branch_prob.
7080         (value_profile_transformations): Rename to
7081         rtl_value_profile_transformations.
7082         (struct value_prof_hooks): New.
7083         (rtl_value_prof_hooks): New.
7084         (rtl_register_value_prof_hooks): New.
7085         (tree_find_values_to_profile): New stub.
7086         (tree_value_profile_transformations): New stub.
7087         (tree_value_prof_hooks): New stub.
7088         (tree_register_value_prof_hooks): New stub.
7089         (find_values_to_profile): New.
7090         (value_profile_transformations): New.
7091         * value-prof.h: Add multiple inclusion guard.
7092         (struct histogram_value): Change rtx fields to void *.
7093         (rtl_register_value_prof_hooks): New declaration.
7094         (tree_register_value_prof_hooks): New declaration.
7095         (find_values_to_profile): New declaration.
7096         (free_profiled_values): New declaration.
7097         (value_profile_transformations): New declaration.
7098         (struct profile_hooks): New declaration.
7099         (init_branch_prob): Declaration moved from rtl.h.
7100         (branch_prob): Declaration moved from rtl.h.
7101         (end_branch_prob): Declaration mooved from rtl.h.
7102         (tree_register_profile_hooks): New declaration.
7103         (rtl_register_profile_hooks): New declaration.
7104         (tree_profile_hooks): New declaration.
7105         (rtl_profile_hooks): New declaration.
7106         * varasm.c: Include tree-mudflap.h.
7107         (TRAMPOLINE_ALIGNMENT): Remove.
7108         (make_decl_rtl): Call mudflap_enqueue_decl.
7109         (assemble_static_space):
7110         (assemble_trampoline_template): Set and return
7111         TRAMPOLINE_ALIGNMENT.
7112         * varray.c (element): Add GENERIC_PTR_NOGC entry.
7113         Add entry for 'tree *'.
7114         Add entry for struct edge_def *.
7115         (varray_copy): New.
7116         * varray.h (enum varray_data_enum): Add
7117         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
7118         VARRAY_DATA_TREE_PTR.
7119         (union varray_data_tag): Corresponding changes.
7120         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
7121         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
7122         VARRAY_EDGE, VARRAY_TREE_PTR,
7123         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
7124         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
7125         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
7126
7127         * config/*/*: Various updates for changed macros, tree
7128         codes, etc.  Check ChangeLog.tree-ssa.
7129
7130         * doc/cfg.texi: New file.
7131         * doc/tree-ssa.texi: New file.
7132         * doc/c-tree.texi: Document new codes.
7133         * doc/gccint.texi: Include new files.
7134         * doc/install.texi: Document new features.
7135         * doc/invoke.texi: Document new switches.
7136         * doc/passes.texi: Document new passes.
7137         * doc/rtl.texi: Update changed RTL codes.
7138         * doc/sourcebuild.texi: Update build instructions.
7139         * doc/standards.texi: Document Fortran changes.
7140         * doc/tm.texi: Update.
7141
7142 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
7143
7144         Replace several arrays with a struct of arrays.
7145         * combine.c (struct reg_stat): New.
7146         (init_reg_last_arrays): Renamed to...
7147         (init_reg_last): ...this.  Callers adjusted.
7148         (reg_stat): New.
7149         (combine_instructions): Allocate it and use it.
7150         (reg_last_death, reg_last_set, reg_last_set_value,
7151         reg_last_set_label, reg_last_set_table_tick,
7152         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
7153         reg_last_set_mode, reg_last_set_nonzero_bits,
7154         reg_last_set_sign_bit_copies): Replace throughout
7155         with items of reg_stat.
7156
7157 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7158
7159         PR optimization/15100
7160         * combine.c (distribute_notes): Don't create a dangling
7161         REG_LIBCALL/REG_RETVAL note.
7162
7163 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7164
7165         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
7166
7167         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
7168         negv2si2.
7169
7170 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7171
7172         * doc/md.texi (Standard Names): Fix typo in vec_init description.
7173
7174 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
7175
7176         * doc/gty.texi (GTY Options): Clarify example.
7177
7178 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
7179
7180         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
7181         Add const qualifier to altivec vector type if one is needed.
7182
7183 2004-05-11  Paul Brook  <paul@codesourcery.com>
7184
7185         * flags.h (flag_short_enums): Update comment.
7186         * opts.c (decode_options): Set flag_short_enums to 2.
7187         * toplev.c (flag_short_enums): Update comment.
7188         (process_options): Call default_short_enums target hook.
7189
7190 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
7191
7192         PR target/14063
7193         * config/rs6000/altivec.md (altivec_dssall):
7194         Change to unspec_volatile.
7195         (altivec_dss): Likewise.
7196
7197 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
7198
7199         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
7200         vnor.
7201         ("one_cmplv8hi2"): Same.
7202         ("one_cmplv4si2"): Same.
7203
7204 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
7205
7206         PR target/15130
7207         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
7208         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
7209         into account.  Compute the correct number of general registers
7210         for the return value.  Generate a special push/pop sequence when
7211         failing to get a temporary register for non SHmedia epilogue.
7212         (sh_expand_epilogue): Add an argument to show whether it's for
7213         sibcall or not.  Set the 3rd argument of output_stack_adjust to
7214         -1 if needed.
7215         (sh_need_epilogue): Call sh_expand_epilogue with 0.
7216         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
7217         with 1.
7218         (epilogue): Call sh_expand_epilogue with 0.
7219
7220 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
7221
7222         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
7223         goto a cleanup label.  After the cleanup, free the allocated memory.
7224
7225 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
7226
7227         * config/rs6000/altivec.h (vec_sld): Add overloads for
7228         argument/return types of 'vector bool int', 'vector bool short'
7229         and 'vector bool char'.
7230
7231 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
7232
7233         * c-decl.c (store_parm_decls_newstyle): Correct test for a
7234         nested function.
7235
7236 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
7237
7238         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
7239         treating missing ones as "".
7240         * config/mips/mips.md: Remove constraints from match_operands and
7241         match_scratches if they appear in define_expands (except reload*),
7242         define_peephole2s, define_splits or attribute specifications.
7243         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
7244         constraint strings.
7245
7246 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7247
7248         * config/rs6000/rs6000.c (function_arg_boundary): Always align
7249         AltiVec vectors.
7250         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
7251         vectors by refererence.  Align the same for TARGET_64BIT to a 16
7252         byte boundary.  Remove useless code.  Add function comment.
7253         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
7254         call to where it belongs.
7255         (function_arg_partial_nregs): Return true for all TARGET_32BIT
7256         -mabi=no-altivec AltiVec vectors.  Fix debug output.
7257         (rs6000_va_arg): Adjust for AltiVec change.
7258
7259 2004-05-10  Paul Brook  <paul@codesourcery.com>
7260
7261         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7262         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7263         (TARGET_DOUBLEWORD_ALIGN): Use it.
7264         (WCHAR_TYPE): Define.
7265         (WCHAR_SIZE_TYPE): Define.
7266         (SIZE_TYPE): Define.
7267
7268 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7269
7270         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
7271         when size is 8 bytes.
7272         (function_arg_advance): Account for stack space used by AltiVec
7273         args when -mabi=altivec.  Simplify alignment calculations.  For
7274         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
7275         (function_arg): Similarly.
7276         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
7277         not AltiVec ABI.
7278         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
7279         Correct alignment, and align before testing reg count.  Remove
7280         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
7281         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
7282         TARGET_FPRS here..
7283         (rs6000_function_value): .. not here before call.
7284
7285 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7286
7287         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
7288
7289 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
7290
7291         PR 15007
7292         * c-decl.c (current_file_decl): Rename to all_translation_units,
7293         adjust comment.
7294         (pop_scope): If popping file_scope, construct a
7295         TRANSLATION_UNIT_DECL and make it the context of all the
7296         symbols in the scope.
7297         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
7298         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
7299         anything to current_file_decl.
7300         (pushdecl_top_level): Likewise.
7301         (store_parm_decls_newstyle): Adjust check for nested function.
7302         (c_write_global_declarations): Update for renamed variable.
7303
7304 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7305
7306         * config/rs6000/rs6000-protos.h
7307         (rs6000_conditional_register_usage): Protoize.
7308
7309         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
7310
7311         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
7312         function.
7313
7314 2004-05-08  Roger Sayle  <roger@eyesopen.com>
7315
7316         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
7317         where op is a comparison operator and C1 and C2 are integer constants
7318         into a range check.
7319         (fold): Call fold_div_compare.
7320
7321 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7322
7323         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
7324         problems with earlier versions of the GNU compiler.
7325
7326 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
7327
7328         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
7329         Declare.
7330
7331         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
7332         (rs6000_hard_regno_mode_ok): New.
7333         (rs6000_init_hard_regno_mode_ok): New.
7334         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
7335
7336         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
7337         result.
7338
7339 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
7340
7341         * config/rs6000/altivec.h (vector, pixel, bool): Do not
7342         define as macros #ifdef __APPLE_ALTIVEC__.
7343
7344 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
7345
7346         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
7347         Generate appropriate parallels for vector arguments
7348         passed to vararg functions. (function_arg): make the call
7349         to rs6000_mixed_function_arg for vector args as needed.
7350
7351 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7352
7353         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
7354         EABI_FLOAT_VARARGS_P.
7355
7356 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7357
7358         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
7359         * config/mips/mips.c (override_options): Disable branch likely
7360         instructions if TUNE_MIPS5500.
7361
7362 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7363
7364         * config/mips/mips.c (override_options): Allow the hi and lo registers
7365         to store any integral mode, not just MODE_INTs.
7366
7367 2004-05-07  Paul Brook  <paul@codesourcery.com>
7368
7369         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7370         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7371         (TARGET_DOUBLEWORD_ALIGN): Use it.
7372         (WCHAR_TYPE): Define.
7373         (WCHAR_SIZE_TYPE): Define.
7374         (SIZE_TYPE): Define.
7375
7376 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7377
7378         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
7379         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
7380
7381 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
7382
7383         * loop-doloop.c (doloop_valid_p): Make sure that body
7384         gets freed.
7385
7386 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
7387
7388         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
7389         declaration.
7390         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
7391         (sparc_skip_caller_unimp): New global variable.
7392         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
7393         Use it instead of SKIP_CALLERS_UNIMP_P.
7394         * config/sparc/sparc.md (call expander): Add sanity check.
7395         (call_address_struct_value_sp32): Re-sync with expander.
7396         (call_symbolic_struct_value_sp32): Likewise.
7397         (return peepholes): Use 'sparc_skip_caller_unimp' instead
7398         of custom predicate.
7399
7400 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7401
7402         PR c++/14962
7403         * c-pragma.c (handle_pragma_redefine_extname): Only change
7404         the assembler name of FUNCTION_DECLs and VAR_DECLs.
7405
7406 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7407
7408         * optabs.h (enum optab_index): Add new OTI_log1p.
7409         (log1p_optab): Define corresponding macro.
7410         * optabs.c (init_optabs): Initialize log1p_optab.
7411         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
7412         patterns.
7413         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
7414         using log1p_optab.
7415         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
7416         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7417
7418         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
7419
7420         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
7421         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
7422         Prototype here.
7423         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
7424         x87's fyl2xp1 instruction.
7425         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
7426         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
7427         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
7428         log1p  and log1pl built-ins as inline x87 intrinsics.
7429
7430 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
7431
7432         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
7433         * config/arm/freebsd.h: Likewise.
7434         * config/ia64/freebsd.h: Likewise.
7435         * config/sparc/freebsd.h: Likewise.
7436
7437 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
7438
7439         PR optimization/15296
7440         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
7441         getting last consecutive label at a branch.
7442         (relax_delay_slots): Similar, near top of loop.
7443
7444 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7445
7446         PR target/15202
7447         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
7448         register to general register.
7449
7450 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
7451
7452         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
7453         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
7454         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
7455         (STACK_BOUNDARY): Delete.
7456
7457 2004-05-06  Stuart Hastings  <stuart@apple.com>
7458
7459         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
7460         mistakenly clobbered by 1.423.
7461
7462 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7463
7464         * doc/invoke.texi: Document -mvr4130-align.
7465         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
7466         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
7467         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
7468         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
7469         * config/mips/mips.md: Include sched-int.h.
7470         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
7471         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
7472         (override_options): Enable -mvr4130-align at -O3 and above.
7473         (mips_sim_insn): New variable.
7474         (mips_sim): New structure.
7475         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
7476         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
7477         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
7478         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
7479         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
7480         (mips_reorg): Call vr4130_align_insns.
7481         (vr4130_last_insn): New variable.
7482         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
7483         (vr4130_swap_insns_p, vr4130_reorder): New functions.
7484         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
7485         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
7486         (mips_use_dfa_pipeline_interface): Return true for the same.
7487         * config/mips/4130.md: New file.
7488         * config/mips/mips.md: Include it.  Add a peephole2 to convert
7489         "mult;mflo" into "mtlo;macc".
7490         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
7491         target of maccs.
7492         (*msac_using_macc): New pattern.
7493
7494 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7495
7496         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
7497         (ir_vr55_hilo): Split into...
7498         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
7499         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
7500         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
7501         Add various multiplication bypasses.
7502         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
7503         multiplication.
7504
7505 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
7506
7507         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
7508         attribute to "XF".
7509
7510 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
7511
7512         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
7513         (fmod_optab, drem_optab): Define corresponding macros.
7514         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
7515         * genopinit.c (optabs): Implement fmod_optab and drem_optab
7516         using fmod?f3 and drem?f3 patterns.
7517         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
7518         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
7519         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
7520         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
7521         flag_unsafe_math_optimizations is set.
7522
7523         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
7524         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
7525
7526         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
7527         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
7528         Prototype here.
7529         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
7530         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
7531         fprem and fprem1 instructions.
7532         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
7533         Rename insn definition to x86_fnstsw_1.
7534         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
7535         x87 instructions.
7536         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
7537         and fmodl built-ins as inline x87 intrinsics.
7538         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
7539         and dreml built-ins as inline x87 intrinsics.
7540
7541 2004-05-05  Roger Sayle  <roger@eyesopen.com>
7542
7543         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
7544
7545 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
7546
7547         PR driver/9822
7548         * doc/invoke.texi (Spec Files): Remove documentation of %c.
7549
7550 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
7551
7552         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
7553         representation.
7554
7555 2004-05-06  Paul Brook  <paul@codesourcery.com>
7556
7557         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
7558         (arm_coproc_mem_operand): ... To this.
7559         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
7560         (arm_legitimate_index_p): Ditto.
7561         (vfp_mem_operand): Rename ...
7562         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
7563         (vfp_secondary_reload_class): Use it.
7564         (output_move_double): Use doubleword load/store instructions.
7565         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
7566         * config/arm/arm.h (TARGET_LDRD): Define.
7567         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
7568         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
7569         New splitter for invalid doubleword loads.
7570         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
7571         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
7572         * doc/md.texi: Document Uy constraint.
7573
7574 2004-05-05  Jan Hubicka  <jh@suse.cz>
7575
7576         PR opt/14980
7577         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
7578         inline clones.
7579
7580 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7581
7582         PR target/15290
7583         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
7584         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
7585
7586 2004-05-05  Mike Stump  <mrs@apple.com>
7587
7588         * config/darwin-c.c (add_framework): Copy the directory name as it
7589         can be freed later.  Also, ensure we always allocate enough room
7590         for the cached framework information.
7591         (find_subframework_header): Keep track of the directory where the
7592         subframework header was found.
7593         (framework_construct_pathname): Speed up by not trying to re-add a
7594         framework.
7595         * cppfiles.c (search_path_exhausted): Arrange for the missing
7596         header callback to be able to set the directory where the header
7597         was found.
7598         (cpp_get_dir): Add.
7599         * cpplib.h (missing_header_cb): Add a parameter.
7600         (cpp_get_dir): Add.
7601
7602 2004-05-03  Mike Stump  <mrs@apple.com>
7603
7604         * doc/invoke.texi (Directory Options): Document -iquote.
7605         * doc/cpp.texi: Likewise.
7606         * doc/cppopts.texi: Likewise.
7607         * c-opts.c (c_common_missing_argument): Add -iquote processing.
7608         (c_common_handle_option): Likewise.
7609         * c.opt (iquote): Add.
7610         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
7611         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
7612
7613         * c-opts.c (case OPT_I): Deprecate -I- support.
7614         * doc/invoke.texi: Likewise.
7615         * doc/cpp.texi: Likewise.
7616         * doc/cppopts.texi: Likewise.
7617
7618 2004-05-05  Steven Bosscher  <stevenb@suse.de>
7619
7620         * basic-block.h (free_basic_block_vars): Update prototype.
7621         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
7622         argument.
7623         (life_analysis): Update call.
7624         * ifcvt.c (if_convert): Likewise.
7625         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
7626         * passes.c (rest_of_handle_final): Likewise.
7627         (rest_of_compilation): Likewise.
7628         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7629
7630         * emit-rtl.c (next_real_insn): Use INSN_P.
7631         (prev_real_insn): Likewise.
7632
7633 2004-05-05  Eric Christopher  <echristo@redhat.com>
7634
7635         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
7636         representation.
7637
7638 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
7639
7640         * config/rs6000/rs6000.c (build_opaque_vector_type):
7641         New function.
7642         (rs6000_init_builtins): Use it.
7643
7644 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
7645
7646         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
7647         (func_table): Change type from char ** to vms_func_ref.
7648         (write_rtnbeg):  Update to reflect func_table change.  Use
7649         fde->funcdef_number instead of rtnnum in output.
7650         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
7651
7652 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7653             Richard Henderson  <rth@redhat.com>
7654
7655         PR target/14899
7656
7657         * c-common.c (vector_types_convertible_p): New function.
7658         * c-typeck.c (comptypes): Recurse on vector types.
7659         (convert_for_assignment): Use vector_types_convertible_p.
7660         (digest_init): Use vector_types_convertible_p to check
7661         validness of constant vector initializers; otherwise treat
7662         them as scalars.
7663         * tree.c (make_or_reuse_type): New.
7664         (build_common_tree_nodes): Use it.
7665         * cp/call.c (standard_conversion): Likewise.
7666         * cp/typeck.c (comptypes): Recurse on vector types.
7667         (convert_for_assignment): Use vector_types_convertible_p.
7668
7669 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
7670
7671         * config/mips/mips.c (override_options): Default to no
7672         generation of branch-likely operations when tuning for
7673         CPUs where they tend to have a negative performance impact
7674         (e.g., SB-1).
7675
7676 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7677
7678         * expr.c (store_constructor_field): Don't call store_constructor
7679         if bitsize is not a multiple of a byte.
7680
7681 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
7682
7683         * reload1.c (inherit_piecemeal_p): New function.
7684         (emit_reload_insns): When reloading a group of hard registers, use
7685         inherit_piecemeal_p to decide whether the values of individual hard
7686         registers can be inherited.
7687
7688 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7689
7690         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
7691         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
7692         * config/t-linux (LIB2ADDEHDEP): Likewise.
7693
7694 2004-05-04  Paul Brook  <paul@codesourcery.com>
7695
7696         * config/arm/crti.asm: Push an even number of registers.
7697         * config/arm/crtn.asm: And restore them.  Load via sp.
7698
7699 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7700
7701         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
7702         Collect overhead information.
7703         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
7704         parameter and pass it through.
7705         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
7706         MEM_STAT_DECL parameter and pass it through.
7707         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
7708         MEM_STAT_DECL parameter and pass it through.
7709
7710 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7711
7712         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
7713
7714         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
7715
7716         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
7717         rs6000_hard_regno_nregs.
7718
7719 2004-05-03  Eric Christopher  <echristo@redhat.com>
7720
7721         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
7722         prologue insn instead of setting up call.
7723         (s390_emit_epilogue): Ditto.
7724         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
7725         (define_constants): Add numbers for above patterns.
7726
7727 2004-05-03  Eric Christopher  <echristo@redhat.com>
7728
7729         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
7730         * config/s390/s390.c (s390_conditional_register_usage): ...here.
7731         * config/s390/s390-protos.h: Prototype.
7732
7733 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
7734
7735         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
7736         assignment.
7737
7738 2004-05-03  Eric Christopher  <echristo@redhat.com>
7739
7740         * config/mips/mips.md: Fix branch length attribute definition.
7741
7742 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7743
7744         * config.gcc: Remove --enable-altivec support.
7745
7746         * config/rs6000/altivec-defs.h: Remove.
7747
7748 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7749
7750         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
7751         * fixinc/fixincl.x: Regenerate.
7752
7753 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7754
7755         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
7756         definition.
7757         (log?f2, log10?f2, log2?f2): Reimplement expanders with
7758         float_truncate insn.
7759         (*fxtractsf3, *fxtractdf3): Remove insn definition.
7760         (logb?f2): Reimplement expanders with float_truncate insn.
7761
7762 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
7763
7764         PR 14718
7765         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
7766         force_type_die for CONST_DECL.
7767
7768 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7769             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7770
7771         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
7772         tm-dwarf2.h to tm_file.
7773         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
7774         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
7775         (ASM_DEBUG_SPEC): Delete.
7776
7777 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7778
7779         * optabs.h (enum optab_index): Add new OTI_expm1.
7780         (expm1_optab): Define corresponding macro.
7781         * optabs.c (init_optabs): Initialize expm1_optab.
7782         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
7783         patterns.
7784         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
7785         using expm1_optab.
7786         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
7787         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7788
7789         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
7790         to implement expm1, expm1f and expm1l built-ins as inline x87
7791         intrinsics.
7792
7793 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7794
7795         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7796         * config/frv/frv.md (*return_true, *return_false): New patterns.
7797
7798 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7799
7800         * rtl.h (PHI_NODE_P): Remove.
7801
7802 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
7803
7804         PR middle-end/14988
7805         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
7806         when passed -2 as 'align'.
7807         (put_var_into_stack): Use 'bool' as the type for the three local
7808         predicates.  Adjust calls to put_reg_into_stack.
7809         When passed a CONCAT, instruct put_reg_into_stack to use
7810         a consecutive stack slot for the second part.
7811         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
7812         'consecutive_p' parameter.  Turn the three predicates into 'bool'
7813         parameters.  Retrieve the register mode from 'reg'.
7814         When consecutive_p is true, instruct assign_stack_local_1 to use
7815         BITS_PER_UNIT alignment.
7816         (put_addressof_into_stack): Use 'bool' as the type for the two
7817         local predicates. Adjust call to put_reg_into_stack.
7818
7819 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7820
7821         * fold-const.c (fold_convert_const, fold): Add missing
7822         FIX_ROUND_EXPR case.
7823
7824 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7825
7826         * configure.ac (FLEX, BISON): Only use tools from the build tree
7827         if build equals host.
7828         * configure: Rebuilt.
7829
7830         * config/frv/frv-protos.h (frv_expand_epilogue,
7831         frv_expand_fdpic_call): Add bool argument.
7832         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
7833         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
7834         (frv_expand_epilogue): Use new argument to decide whether to emit
7835         return instruction or copy the return address to LR.
7836         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
7837         sibcalls.
7838         (sibcall_operand): New.
7839         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
7840         PLUS nor LABEL_REF.  Add sibcall_operand.
7841         * config/frv/frv.md (call, call_value): Pass false to
7842         frv_expand_fdpic_call.
7843         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
7844         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
7845         sibcall_value_internal, sibcall_value_fdpicdi): New.
7846         (return_unsigned_true, return_unsigned_false): New.
7847         (epilogue): Adjust call to frv_expand_epilogue.
7848         (sibcall_epilogue): New.
7849
7850         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
7851         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
7852         before redefining them.
7853
7854 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7855
7856         * builtins.c (fold_fixed_mathfn): New function.
7857         (fold_builtin_lround, fold_builtin): Use it.
7858
7859 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
7860
7861         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
7862         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
7863
7864 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7865
7866         * config/cris/cris.h: Revert my "fix comment typos" patch.
7867
7868 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
7869
7870         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
7871
7872 2004-05-01  Falk Hueffner  <falk@debian.org>
7873
7874         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
7875         builtin_insll): Disallow 0 as first input operand.
7876
7877 2004-05-01  Falk Hueffner  <falk@debian.org>
7878
7879         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
7880
7881 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
7882
7883         PR middle-end/15054
7884         * expr.c (expand_expr_real): Do not call preserve_temp_slots
7885         on a TARGET_EXPR temp.
7886         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
7887         TARGET_EXPR temp slots.
7888
7889 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
7890
7891         * simplify-rtx.c (simplify_ternary_operation): When
7892         converting an IF_THEN_ELSE to a relational op, return
7893         correct mode.
7894
7895 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7896
7897         * builtins.c (fold_builtin_round): Fix comment typo.
7898         (fold_builtin_lround): New function.
7899         (fold_builtin): Use it.
7900
7901 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
7902
7903         PR target/11608
7904         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
7905         more like the one in config/dbxelf.h.
7906
7907 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
7908
7909         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
7910         and adjust definition accordingly.
7911         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
7912         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
7913         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
7914         VECTOR_TYPE.
7915
7916 2004-04-30  Jason Merrill  <jason@redhat.com>
7917
7918         PR c++/14587
7919         * config/i386/winnt.c (associated_type): Look for attributes on
7920         the TYPE_MAIN_VARIANT of *this.
7921         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
7922         apply the attributes to the variants.
7923
7924 2004-04-30  Paul Brook  <paul@codesourcery.com>
7925
7926         * config.gcc: Simplify arm --with-{cpu,tune} test.
7927         * config/arm/arm-cores.def: Document whitespace restrictions.
7928
7929 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7930
7931         PR other/1963
7932         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
7933
7934 2004-04-30  Brian Ford  <ford@vss.fsi.com>
7935             DJ Delorie  <dj@redhat.com>
7936
7937         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7938         (DWARF2_DEBUGGING_INFO): Define to enable.
7939         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
7940         DWARF2.
7941         * configure.ac (Target-specific assembler checks)
7942         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
7943         relocs.
7944         * configure: Regenerate.
7945         * config.in: Likewise.
7946
7947         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7948         (ASM_OUPUT_DWARF_OFFSET): Define.
7949
7950 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7951
7952         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
7953         (s390_emit_call): New function prototype added.
7954         (s390_tls_get_offset): Function removed.
7955         * config/s390/s390.c (s390_function_ok_for_sibcall,
7956         s390_call_saved_register_used_p): New functions.
7957         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
7958         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
7959         (s390_emit_tls_call_insn): New function.
7960         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
7961         emit_call_insn.
7962         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
7963         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
7964         added.
7965         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
7966         register number used to hold the target address for sibcalls.
7967         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
7968         New expanders.
7969         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
7970         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
7971         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
7972         Expanders removed.
7973         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
7974         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
7975         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
7976         ("epilogue"): Changed the call to s390_emit_epilogue to use the
7977         new parameter.
7978
7979 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7980
7981         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
7982         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
7983         reg-stack.c, varasm.c, config/alpha/ev4.md,
7984         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
7985         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
7986         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
7987         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
7988         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
7989         config/ia64/itanium2.md, config/ip2k/ip2k.c,
7990         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
7991         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
7992         comment typos.
7993
7994 2004-04-30  Paul Brook  <paul@codesourcery.com>
7995
7996         * config.gcc: Default ep9312 to hard-float.
7997         * config/arm/arm-cores.def: Add ARCH field.
7998         * config/arm/arm.c (FL_FOR_ARCH*): Define.
7999         (arm_arch_cirrus): New variable.
8000         (all_cores): Set and use arch.
8001         (all_architectures): Ditto.
8002         (arm_arch_name): New variable.
8003         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
8004         Set and use arm_arch_cirrus.
8005         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
8006         (enum processor_type): Update ARM_CORE define.
8007         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
8008         (CPP_SPEC): Remove %(cpp_cpu_arch).
8009         (CPP_ARCH_DEFAULT_SPEC): Remove.
8010         (CPP_CPU_ARCH_SPEC): Remove.
8011         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
8012         (FPUTYPE_DEFAULT): Don't define here.
8013
8014 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
8015
8016         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
8017         updates too.
8018
8019 2004-04-30  Paul Brook  <paul@codesourcery.com>
8020
8021         * arm.c (arm_needs_doubleword_align): Use mode alignment.
8022
8023 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
8024
8025         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
8026         vec_sububs.
8027         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
8028         duplicates.
8029
8030 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
8031
8032         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
8033         atan2?f3 expanders.
8034
8035 2004-04-29  Nick Clifton  <nickc@redhat.com>
8036
8037         Bug 14093
8038         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
8039         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
8040         Delete static from definition.
8041         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
8042
8043 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
8044
8045         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
8046         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
8047         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
8048         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
8049
8050 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
8051
8052         * commom.opt (Wfatal-errors): Add it.
8053         * diagnostic.c (flag_fatal_errors): Define it.
8054         (diagnostic_action_after_output): Check for flag_fatal_errors.
8055         * flags.h (flag_fatal_errors): Declare it.
8056         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
8057         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
8058
8059 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
8060
8061         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
8062         blocks which have kill flag set.
8063
8064 2004-04-29  Ben Elliston  <bje@au.ibm.com>
8065
8066         * configure.ac (--with-as): Abort if user-supplied assembler
8067         cannot be executed.
8068         (--with-ld): Likewise for the linker.
8069         * configure: Regenerate.
8070
8071 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8072
8073         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
8074         isn't NULL before using it.
8075
8076 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
8077
8078         PR target/15189
8079         * config/mips/mips.md (load_df_low): Use default length.
8080         (load_df_high, store_df_high): Likewise.
8081
8082 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8083
8084         * config/mips/mips.md, config/mips/sb1.md,
8085         config/rs6000/rs6000.c: Fix comment typos.
8086
8087 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8088
8089         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
8090         Fix comment typos.
8091
8092 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
8093
8094         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
8095         (delete_if_ordinary): Use above macro.
8096         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
8097         Update copyright.
8098         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
8099
8100 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
8101
8102         * c-decl.c (get_parm_info): Use the correct tag keywords when
8103         warning about type declarations in prototypes.
8104
8105 2004-04-29  Paul Brook  <paul@codesourcery.com>
8106
8107         * config.gcc: Pull list of cores from arm-cores.def.
8108
8109 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8110
8111         * combine.c (combine_simplify_rtx): Adjust call to use
8112         simplify_relational_operation.  Do not use SELECT_CC_MODE
8113         when a comparison already has a MODE_CC mode.
8114
8115 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8116
8117         (simplify_set): simplify_relational_operation may now
8118         return another relational expression.
8119         * cse.c (fold_rtx): simplify_relational_operation now
8120         takes of computing the comparison mode.
8121         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
8122         remove dead code.
8123         (do_compare_rtx_and_jump): Likewise.
8124         * integrate.c (subst_constants): simplify_relational_operation
8125         may now return another relational expression.
8126         * simplify-rtx.c (simplify_gen_relational): Move most code to
8127         the new simplify_relational_operation and
8128         simplify_relational_operation_1 functions.
8129         (simplify_relational_operation): Rewritten.
8130         (simplify_relational_operation_1): New function.
8131         (simplify_ternary_operation): simplify_relational_operation
8132         may now return another relational expression.
8133         (simplify_rtx): Remove unnecessary temp variable.
8134
8135 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
8136
8137         * reg-stack.c (swap_to_top): New function.
8138         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
8139         swap_to_top().
8140         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
8141         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
8142         UNSPEC_FSCALE_EXP.
8143
8144         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
8145         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
8146         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
8147         x87's fscale insn.
8148         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
8149         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
8150         patterns.
8151
8152 2004-04-28  Serge Belyshev  <1319@bot.ru>
8153
8154         PR 14944
8155         * coverage.c (read_counts_file): Fix usage of warning () call.
8156         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
8157
8158 2004-04-28  Ben Elliston  <bje@au.ibm.com>
8159
8160         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
8161         options with "-" in the option index.
8162         (SPARC Options): Likewise.
8163         (M32R/D Options): Likewise.
8164
8165 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8166
8167         * convert.c (convert_to_integer): Convert (long)round -> lround,
8168         etc.
8169
8170 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
8171
8172         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
8173         Return false if we do not have fp register.
8174         (addrs_ok_for_quad_peep): Rename to ...
8175         (mems_ok_for_quad_peep): this.
8176         Add check for volatile memory.
8177         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
8178         Rename to ...
8179         (mems_ok_for_quad_peep): this.
8180         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
8181         to peephole2's.
8182         (lfq_power2): New instruction.
8183         (stfq_power2): Likewise.
8184
8185 2004-04-28  Jan Hubicka  <jh@suse.cz>
8186
8187         PR c/15004
8188         * function.c (do_warn_unused_parameter): Break out form ...
8189         (expand_function_end): ... here; warn only when not using cgraphunit.
8190         * function.h (do_warn_unused_parameter): Declare.
8191         * cgraphunit.c: Include function.h.
8192         (cgraph_finalize_function): Do unused parameter warning.
8193         * Makefile.in (cgraphunit.o): Depend on function.h
8194
8195 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8196
8197         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
8198         calling install-info on $(DESTDIR)$(infodir)/dir already being
8199         present.
8200
8201 2004-04-28  Paul Brook  <paul@codesourcery.com>
8202
8203         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
8204
8205 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8206
8207         * gcse.c (find_moveable_store): Do not accept store insns with
8208         REG_EH_REGION note.
8209
8210 2004-04-28  Paul Brook  <paul@codesourcery.com>
8211
8212         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
8213         * function.c (assign_temp): Ditto.
8214         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
8215
8216 2004-04-28  Paul Brook  <paul@codesourcery.com>
8217
8218         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
8219
8220 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
8221
8222         * var-tracking.c (variable_different_p): Add a parameter
8223         compare_current_location, compare current location of variable parts
8224         if it is true.
8225         (dataflow_set_different_1): Pass compare_current_location == false.
8226         (dataflow_set_different_2): Pass compare_current_location == false.
8227         (emit_notes_for_differences_1): Pass compare_current_location == true.
8228
8229 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8230
8231         * config/s390/s390.md ("casesi"): Mark jump table access as
8232         non-trapping and unchanging.
8233
8234 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8235
8236         PR debug/14829
8237         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
8238         callers.
8239         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
8240         number for indexing hard_regno_nregs array.
8241
8242 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
8243
8244         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
8245         * config/darwin-crt2.c: Only have contents on __ppc__.
8246
8247 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
8248
8249         * config/xtensa/xtensa.c (call_insn_operand): Check
8250         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
8251         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
8252         * config/xtensa/xtensa.md (call, call_value): Likewise.
8253
8254 2004-04-27  Wu Yongwei  <adah@sh163.net>
8255
8256         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
8257         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
8258         (__gthread_mutex_init_function): Replace CreateMutex with
8259         initialization of custom mutex using CreateSemaphore.
8260         (__gthread_mutex_lock): Use InterlockedIncrement.
8261         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
8262         (__gthread_mutex_unlock): Use InterlockedDecrement and
8263         ReleaseSemaphore to unlock
8264         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
8265         __gthread_mutex_lock, __gthread_mutex_trylock,
8266         __gthread_mutex_unlock): Adjust to match inline versions in
8267         gthr-win32.h.
8268
8269 2004-04-27  Paul Brook  <paul@codesourcery.com>
8270
8271         * config/arm/arm.c (arm_promote_prototypes): New function.
8272         (TARGET_PROMOTE_PROTOTYPES): Use it.
8273
8274 2004-04-27  Paul Brook  <paul@codesourcery.com>
8275
8276         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
8277
8278 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
8279
8280         * config/alpha.c (alpha_end_function): For OpenVMS gas,
8281         correctly output .pdesc directive before .end.
8282
8283 2004-04-26  James E Wilson  <wilson@specifixinc.com>
8284
8285         Bug 14927
8286         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
8287         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
8288
8289 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
8290
8291         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
8292         * config/pa/pa-hpux10.h: Likewise.
8293         * config/pa/pa-hpux11.h: Likewise.
8294
8295 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
8296
8297         * doc/invoke.texi (Overall Options): Document default for -o
8298         for PCH files.
8299
8300 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8301
8302         * builtins.c (expand_builtin_update_setjmp_buf): New function.
8303         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
8304         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
8305
8306 2004-04-26  Paul Brook  <paul@codesourcery.com>
8307
8308         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
8309
8310 2004-04-26  Paul Brook  <paul@codesourcery.com>
8311
8312         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
8313
8314 2004-04-25  Roger Sayle  <roger@eyesopen.com>
8315
8316         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
8317         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
8318         X % -1 as 0.
8319
8320 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
8321
8322         PR bootstrap/15141
8323         * except.c (connect_post_landing_pads): Delete insns after the
8324         barrier when generating a unwind_resume_libfunc call.
8325
8326 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8327
8328         PR/c++ 15119
8329         * tree.c (substitute_placeholder_in_expr, case 4): New case,
8330         for TARGET_EXPR.
8331
8332 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8333
8334         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8335         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
8336         inhibit_libc is defined.
8337
8338 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
8339
8340         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
8341         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
8342         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
8343         (TARGET_SCHED_VARIABLE_ISSUE): Define.
8344         (mips_adjust_cost): Move later in file, next to other sched hooks.
8345         (mips_macc_chains_last_hilo): New variable.
8346         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
8347         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
8348         * config/mips/mips.md (may_clobber_hilo): New attribute.
8349
8350 2004-04-24  Roger Sayle  <roger@eyesopen.com>
8351             Bruce Korb  <bkorb@gnu.org>
8352
8353         * fixinc/inclhack.def (aix_syswait_2): New fix.
8354         * fixinc/fixincl.x: Regenerate.
8355         * fixinc/tests/base/sys/wait.h: Update for new test.
8356
8357 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
8358
8359         PR target/14960
8360         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
8361         to non_fixed_size, and leave out fixed_size from the sum.
8362         (generate_set_vrsave): Correct clobbers.
8363         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
8364         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
8365         (rs6000_libcall_value): Likewise.
8366         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
8367         (FUNCTION_ARG_REGNO_P): Likewise.
8368
8369 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8370
8371         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
8372         is a CONST_INT.
8373         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
8374         with NARROW_OP1 instead of OP1.
8375
8376 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8377
8378         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
8379         and __s390x__ hosts.
8380
8381 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8382
8383         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
8384         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
8385         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
8386         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
8387         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
8388         * builtins.c (expand_builtin_fork_or_exec): New.
8389         (expand_builtin): Call it.
8390         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
8391         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
8392         * c-common.c (PID_TYPE): New macro.
8393         (c_common_nodes_and_builtins): Initialize pid_type_node.
8394         * calls.c (special_function_p): Do not handle fork and exec.
8395         (expand_call): Do not handle ECF_FORK_OR_EXEC.
8396         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8397         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
8398         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8399         __gcov_execv, __gcov_execvp, __gcov_execve): New.
8400         * tree.h (enum tree_index): Add TI_PID_TYPE.
8401         (pid_type_node): New macro.
8402         (ECF_FORK_OR_EXEC): Removed.
8403
8404 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8405
8406         PR optimization/13985
8407         * cfgloopmanip.c (fix_loop_placements): New prototype.
8408         Call fix_bb_placements on the preheader of loops that have
8409         been reparented.
8410         (remove_path): Adjust call to fix_loop_placements.
8411
8412 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
8413
8414         * config/darwin7.h: New file.
8415         * config.gcc (*-*-darwin*): Add darwin7.h if the
8416         version is greater than 6.
8417         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
8418         (MATH_LIBRARY): Wrap in ifdefs.
8419
8420 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
8421
8422         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
8423         loading iWMMXt registers with a frame pointer.  Use post-increment
8424         without a frame pointer.
8425         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
8426
8427 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
8428
8429         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
8430         mode" rather than "-funit-at-a-time" since -O2 enables it
8431         without requiring -f* options.  Refer to -fprofile-generate and
8432         -fprofile-use correctly.  Move -funit-at-a-time among options
8433         enabled by -O.  Add information about unit-at-a-time caveats.
8434
8435 2004-04-22  Per Bothner  <per@bothner.com>
8436
8437         * line-map.h (struct line_maps):  New field highest_line.
8438         (linemap_position_for_column):  Make non-inline function.
8439         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
8440         * line-map.c (linemap_init):  Clear highest_line field.
8441         (linemap_add):  Set highest_line field.
8442         (linemap_line_start):  Minor optimization - use highest_line field.
8443         Reduce maximum column hint to 10000.  Update highest_line field.
8444         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
8445         * cpphash.h (struct cpp_reader):  Remove line field - instead use
8446         line_table->highest_line.
8447         (saved_line):  Remove unused field.
8448         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
8449         Use  line_table's highest_line field instead of cpp_reader's line.
8450         * cpplib.c (start_directive):  Likewise use highest_line field.
8451         (do_line, do_linemarker):  Likewise just use newest map.
8452         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
8453         * cpperror.c (cpp_error):  Likewise use highest_line field.
8454         * cppfiles.c (open_file_failed:  Likewise.
8455         (cpp_make_system_header):  Likewise use newest map and highest_line.
8456         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
8457         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
8458         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
8459         _cpp_lex_direct):  Likewise use highest_line.
8460         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
8461         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
8462         and use newest map.
8463         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
8464         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
8465         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
8466
8467 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
8468
8469         PR bootstrap/14992
8470         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
8471         * config/linux.h (USE_LD_AS_NEEDED): Define.
8472         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
8473         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
8474         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
8475         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
8476         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
8477         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
8478         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
8479
8480 2004-04-22  Per Bothner  <per@bothner.com>
8481
8482         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
8483         Fixes PR preprocessor/15067.
8484
8485 2004-04-23  Andreas Schwab  <schwab@suse.de>
8486
8487         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
8488         avoid aliasing warning.
8489
8490 2004-04-22  Jan Hubicka  <jh@suse.cz>
8491             Mostafa Hagog <mustafa@il.ibm.com>
8492
8493       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
8494       * cfgloopanal.c (expected_loop_iterations): Change the return value
8495
8496 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
8497
8498         * cselib.h (struct elt_loc_list): Remove canon_loc field.
8499         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
8500         (cselib_invalidate_mem): Remove all canon_loc and canon_x
8501         traces.
8502
8503 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
8504
8505         Revert
8506         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8507
8508                 * var-tracking.c (variable_part_different_p): Variable parts
8509                 differ when the most recent locations differ.
8510
8511 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
8512
8513         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
8514         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
8515         (embedded_pic_offset): Delete.
8516         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
8517         MASK_* constants.
8518         (TARGET_EMBEDDED_PIC): Delete.
8519         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
8520         (ASM_SPEC): Remove -membedded-pic.
8521         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
8522         (ASM_OUTPUT_CASE_LABEL): Likewise.
8523         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
8524         * config/mips/windiss.h (ASM_SPEC): Likewise.
8525         * config/mips/mips.c (struct machine_function): Remove
8526         embedded_pic_fnaddr_rtx.
8527         (TARGET_ENCODE_SECTION_INFO): Remove override.
8528         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
8529         (override_options): Remove -membedded-pic handling.
8530         (print_operand): Remove handling of '%S'.
8531         (mips_select_section: Remove -membedded-pic handling.
8532         (mips_encode_section_info): Delete.
8533         (mips_output_conditional_branch): Remove mention of -membedded-pic.
8534         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
8535         -membedded-pic handling.
8536         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
8537
8538 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
8539
8540         * var-tracking.c (frame_base_decl): Remove useless GTY.
8541
8542 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
8543
8544         * config/rs6000/rs6000.c (rs6000_override_options): Error when
8545         user wants altivec and e500 instructions.
8546
8547 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8548
8549         PR target/14813
8550         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
8551         in .init_array section to ...
8552         * config/ia64/crtbegin.asm: Here.
8553
8554         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
8555         and hidden if HAVE_INITFINI_ARRAY is defined.
8556
8557 2004-04-21  James E Wilson  <wilson@specifixinc.com>
8558
8559         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
8560         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
8561         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
8562         (fp_register_operand, lo_operand): New.
8563         (mips_rtx_costs): Add TUNE_SB1 support.
8564         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
8565         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
8566         (mips_multipass_dfa_lookahead): New.
8567         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
8568         TUNE_SB1): New.
8569         (TARGET_SWITCHES): Add -mfp-exceptions support.
8570         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
8571         (BRANCH_COST): Fix whitespace.
8572         * config/mips/mips.md: Include sb1.md.
8573         * config/mips/sb1.md: New file.
8574         * doc/invoke.texi: Document -mfp-exceptions.
8575
8576         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
8577         comment.
8578         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
8579         (fixincl.o-warn): Delete.
8580
8581 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8582
8583         * config/rs6000/rs6000 (print_operand) ['z']:
8584         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
8585
8586 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
8587
8588         * config.gcc: Support --with-arch=iwmmxt for ARM.
8589
8590 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8591
8592         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
8593         in two more places; remove unneeded force_reg
8594
8595 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8596
8597         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
8598         for TARGET_MACHO.
8599         (print_operand): For TARGET_MACHO check to see if we need a stub
8600         and output one if we need it.
8601
8602         PR debug/15033
8603         * dwarf2out.c (rtl_for_decl_location): Check for NULL
8604         rtl.
8605
8606 2004-04-20  James E Wilson  <wilson@specifixinc.com>
8607
8608         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
8609         (vall_value_gp): Likewise.
8610
8611 2004-04-20  DJ Delorie  <dj@redhat.com>
8612
8613         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
8614         variables stored in word registers, then in memory.
8615
8616 2004-04-20  Eric Christopher  <echristo@redhat.com>
8617
8618         * cp/parser.c (cp_parser_declaration): Move translate
8619         up before tokens are lexed.
8620
8621 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
8622
8623         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
8624         (asin_optab, acos_optab): Define corresponding macros.
8625         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
8626         * genopinit.c (optabs): Implement asin_optab and acos_optab
8627         using asin?f2 and acos?f2 patterns.
8628         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
8629         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
8630         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
8631         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8632
8633         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
8634         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
8635         acos, acosf and acosl built-ins as inline x87 intrinsics.
8636
8637 2004-04-20  Paul Brook  <paul@codesourcery.com>
8638
8639         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
8640
8641 2004-04-20  Paul Brook  <paul@codesourcery.com>
8642
8643         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
8644
8645 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
8646
8647         Revert part of 2004-04-17 change that moved -frename-registers
8648         to -O1.  -frename-registers is buggy.
8649
8650         * toplev.c (flag_rename_registers): Initialize to 0.
8651         * doc/invoke.texi (Optimize options): Move -frename-registers
8652         to "Not triggered by any -O level" section.  Adjust commentary
8653         accordingly.
8654
8655 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
8656
8657         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
8658
8659 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
8660
8661         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
8662         for mflo and mfhi instructions.
8663         (mips_output_move): Remove mflo and mfhi handling.
8664         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
8665         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
8666         Likewise various define_peephole2s.
8667         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
8668         alternatives.
8669         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
8670         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
8671         (mfhilo_di, mfhilo_si): New patterns.
8672
8673 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8674
8675         * function.c (assign_parms): Force
8676         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
8677
8678 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8679
8680         * var-tracking.c (variable_part_different_p): Variable parts differ
8681         when the most recent locations differ.
8682
8683 2004-04-19  James E Wilson  <wilson@specifixinc.com>
8684
8685         * rtl.h (reg_set_last): Delete declaration.
8686         * rtlanal.c (reg_set_last): Delete.
8687
8688 2004-04-19  Roger Sayle  <roger@eyesopen.com>
8689
8690         * fold-const.c (fold_convert): Make function extern/public.
8691         * tree.h (fold_convert): Prototype here.
8692         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8693         expand_builtin_strrchr, expand_builtin_strpbrk,
8694         expand_builtin_mempcpy, expand_builtin_bcopy,
8695         expand_builtin_bzero, expand_builtin_memcmp,
8696         expand_builtin_strcmp, expand_builtin_strncmp,
8697         stabilize_va_list, expand_builtin_sprintf,
8698         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
8699         fold_builtin_exponent, fold_builtin_mempcpy,
8700         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
8701         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
8702         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
8703
8704 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
8705
8706         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
8707         (move_from_CR_gt_bit): New.
8708         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
8709         E500.
8710         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
8711         E500.
8712
8713         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
8714         (tstsfeq_gpr): Same.
8715         (cmpsfgt_gpr): Same.
8716         (tstsfgt_gpr): Same.
8717         (cmpsflt_gpr): Same.
8718         (tstsflt_gpr): Same.
8719         (e500_cceq_ior_compare): New.
8720         (e500_flip_gt_bit): New.
8721
8722         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
8723         (print_operand): Add 'c' and 'D'.
8724         (rs6000_generate_compare): Rewrite to generate correct rtl.
8725         (rs6000_emit_sCOND): Handle E500.
8726         (output_cbranch): Adjust for changes in rs6000_generate_compare.
8727         (output_e500_flip_gt_bit): New.
8728
8729         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
8730         Protoize.
8731
8732 2004-04-19  Eric Christopher  <echristo@redhat.com>
8733
8734         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
8735
8736 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
8737
8738         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
8739         fix information.
8740
8741 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8742
8743         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
8744         download URL.
8745
8746 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
8747
8748         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
8749         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
8750
8751 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
8752
8753         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
8754         (fold_builtin): Update caller to match.
8755
8756         PR bootstrap/15009
8757         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
8758
8759         PR bootstrap/14999
8760         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
8761
8762 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8763
8764         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
8765
8766         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
8767         (expand_mult_highpart_optab): Likewise.
8768         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
8769
8770 2004-04-19  Paul Brook  <paul@codesourcery.com>
8771
8772         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
8773         floatunssisf2, floatunssidf2): New patterns.
8774
8775 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
8776
8777         PR other/14918
8778         * doc/invoke.texi (-fprofile-generate): Document requirement to
8779         use -fprofile-generate when linking.
8780
8781         * doc/extend.texi (Strong Using): Warn users against using this
8782         feature.
8783
8784 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
8785
8786         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
8787         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
8788         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
8789         * config/mips/mips.c (struct mips16_constant): Renamed from struct
8790         constant.  Propogate change throughout file.
8791         (struct machine_function): Remove insns_len.
8792         (mips_string_length, mips16_strings, string_constants): Delete.
8793         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
8794         when generating mips16 code.  Remove special mips16 treatment of
8795         string constants.
8796         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
8797         to have the form LABEL+CONSTANT.
8798         (mips_symbolic_address_p): Fix comment.
8799         (m16_usym8_4, m16_usym5_4): Delete.
8800         (mips_output_function_epilogue): Remove mips16 string handling.
8801         (mips_output_mi_thunk): Call mips16_lay_out_constants.
8802         (mips_select_section, mips_encode_section_info): Remove mips16
8803         string handling.
8804         (struct mips16_constant_pool): New.
8805         (add_constant): Take a mips16_constant_pool structure.  Keep pool
8806         sorted into order of ascending mode size.  Keep track of the highest
8807         possible start address, taking padding and the masking of the base PC
8808         value into account.
8809         (dump_constants_1): New function, split out from dump_constants.
8810         Handle vector constants.  Use gen_consttable_{int,float} rather than
8811         separate functions for each mode.
8812         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
8813         rather than separate functions for each alignment.
8814         (mips_find_symbol): Delete.
8815         (mips16_insn_length): New function, split out from
8816         mips16_lay_out_constants.
8817         (mips16_rewrite_pool_refs): New function.
8818         (mips16_lay_out_constants): Rework. Remove string handling.
8819         Always create an inline constant pool.
8820         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
8821         (UNSPEC_ALIGN): New constants.
8822         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
8823         (UNSPEC_ALIGN_[248]): Delete.
8824         (consttable_int, consttable_float, align): New patterns.
8825         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
8826
8827 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
8828
8829         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
8830         __unn_args_eq.
8831
8832 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
8833
8834         PR target/14715
8835         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
8836         with STARTING_FRAME_OFFSET.
8837
8838 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8839
8840         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
8841         * config/mips/mips.c (macc_msac_operand): New function.
8842         * config/mips/mips.md (*msac): Move after *macc.
8843         (*msac2): New.  Generalize macc-related peepholes so that they apply
8844         to msac too.
8845
8846 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
8847
8848         * opts.c (decode_options): Do not enable flag_rename_registers
8849         and flag_web at -O3.
8850         * toplev.c (flag_rename_registers): Initialize
8851         flag_rename_registers and flag_web to
8852         AUTODETECT_FLAG_VAR_TRACKING.
8853         (default_debug_hooks): New global.
8854         (process_options): Initialize default_debug_hooks.  Warn if
8855         -fvar-tracking specified but not supported by the current
8856         debug format.  Do not run var tracking at -O0 or if not
8857         supported by the current debug format, even if
8858         -fvar-tracking was given.  If -fno-rename-registers
8859         is not specified, always run register renaming if var
8860         tracking is supported by the default debugging information
8861         format for the target, and we are at -O1 or higher; similarly
8862         for -fweb, but only at -O2 or higher.
8863         * doc/invoke.texi (Optimize Options): Document this.
8864
8865 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8866
8867         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
8868         * configure: Regenerate.
8869
8870 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8871
8872         * gcc.c (used_arg): Check whether an option has been removed.
8873
8874 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8875
8876         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
8877         debugging on Solaris 7 and up.
8878
8879 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8880
8881         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
8882         IRIX 5 port.
8883         Remove -save-temps workaround, handled automatically.
8884         Require GNU binutils 2.15 for debugging.
8885         Remove SGI make warnings since GNU make is now required.
8886         (Specific, mips-sgi-irix6): Some markup fixes.
8887         Describe MIPSpro C problems and workarounds.
8888         Mention working O32 ABI support.
8889         Recommend GNU as 2.15 for O32 with debugging.
8890         Remove description of fixed structure pass/return bug.
8891
8892 2004-04-16  DJ Delorie  <dj@redhat.com>
8893
8894         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
8895         TYPE_FIELDS.
8896         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
8897
8898 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8899
8900         * pa.md: Remove unnecessary declarations for asm_out_file.
8901
8902         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
8903         SAR register.  Fix comment.
8904         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
8905         (%cr11).
8906
8907         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
8908
8909 2004-04-16  Nick Clifton  <nickc@redhat.com>
8910
8911         * config/arm/arm.c (arm_override_options): Revert previous patch.
8912         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
8913         be safely built.
8914
8915 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8916
8917         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
8918         bug.
8919         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
8920         TARGET_DEFAULT): Changed. Ditto.
8921         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
8922         TARGET_ENDIAN_DEFAULT): Added. Ditto.
8923         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
8924         (TARGET_ENDIAN_DEFAULT): Added.
8925
8926 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8927
8928         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
8929         ATTR_CONST_NOTHROW_LIST.
8930
8931 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8932
8933         PR/middle-end 14915
8934         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
8935         BITS_BIG_ENDIAN.
8936
8937 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
8938
8939         * ra-debug.c (ra_print_rtx): Add break's to case legs.
8940
8941 2004-04-14  James E Wilson  <wilson@specifixinc.com>
8942
8943         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
8944
8945 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
8946
8947         * libada-mk.in: New file.
8948         * configure.ac: Create libada-mk from libada-mk.in.
8949         * configure: Regenerate.
8950
8951 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
8952
8953         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
8954         (logb_optab, ilogb_optab): Define corresponding macros.
8955         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
8956         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
8957         using logb?f2 and ilogb?i2 patterns.
8958         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
8959         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
8960         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
8961         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8962
8963         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
8964         and UNSPEC_XTRACT_EXP.
8965
8966         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
8967         patterns to implement fxtract x87 instruction.
8968         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
8969         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
8970         intrinsics.
8971         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
8972         x87's fxtract insn.
8973
8974 2004-04-14  Eric Christopher  <echristo@redhat.com>
8975
8976         * config/mips/t-elf: Enable multilibs by default.
8977
8978 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
8979
8980         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
8981         previous fix to check HAVE_return at runtime too.
8982
8983 2004-04-14  Nick Clifton  <nickc@redhat.com>
8984
8985         * config/arm/arm.c (arm_override_options): If the user has not
8986         specified an ABI, then default to AAPCS for the iWMMXt processor.
8987         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
8988         * config/arm/t-xscale-coff: Likewise.
8989
8990 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8991
8992         * builtins.c (fold_builtin_isdigit): New.
8993         (fold_builtin): Handle BUILT_IN_ISDIGIT.
8994         * defaults.h: Add TARGET_DIGIT0 and sort.
8995         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
8996
8997 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8998
8999         * builtins.c (fold_builtin_cabs, fold_builtin): Use
9000         `mathfn_built_in' to determine the new builtin.
9001         * fold-const.c (fold): Likewise.
9002
9003 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
9004
9005         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
9006         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
9007         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
9008         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
9009         (ASM_SPEC): Update accordingly.
9010         * config/mips/mips.c: Update after above renaming.
9011         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
9012         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
9013
9014 2004-04-13  James E Wilson  <wilson@specifixinc.com>
9015
9016         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
9017         increment errorcount and return false instead of true.
9018
9019 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
9020
9021         * optabs.c (expand_twoval_unop): Reorder function arguments.
9022         * builtins.c (expand_builtin_mathfn_3): Update calls to
9023         expand_twoval_unop.
9024
9025         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
9026         and UNSPEC_TAN_TAN. Add missing comment.
9027
9028         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
9029         patterns to implement fptan x87 instruction.
9030         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
9031         and tanl built-ins as inline x87 intrinsics. Define corresponding
9032         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
9033         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
9034         x87's fptan insn.
9035
9036 2004-03-13  Richard Henderson  <rth@redhat.com>
9037
9038         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
9039         for LABEL_REFs.
9040
9041         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
9042         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
9043         * doc/invoke.texi: Update to match.
9044
9045         * varasm.c (unlikely_text_section): Use assemble_align instead of
9046         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
9047         correct alignment argument.
9048
9049 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
9050
9051         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
9052         after setting reg_last_reload_reg for optional output reloads.
9053
9054 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
9055
9056         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
9057         Definition of these two macros are corrected by adding
9058         matchine right paren.
9059
9060 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
9061
9062         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
9063
9064 2004-04-12  Roger Sayle  <roger@eyesopen.com>
9065
9066         * config/i386/i386.c (output_387_reg_move): New function.
9067         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
9068         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
9069         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
9070         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
9071         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
9072
9073 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9074
9075         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
9076         TYPE_DECL.
9077         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
9078         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
9079         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
9080         Use skip_simple_arithmetic to find SAVE_EXPR.
9081         (force_type_save_exprs, force_type_save_exprs_1): New functions.
9082         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
9083         Properly chain multiple pointers.
9084         (copy_tree_r): Copy a TYPE_DECL.
9085         * tree.c (variably_modified_type_p): Add some missing tests and
9086         make some other minor changes.
9087         * tree.h (force_type_save_exprs): New declaration.
9088
9089 2004-04-12  Roger Sayle  <roger@eyesopen.com>
9090
9091         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
9092         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
9093         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
9094         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
9095         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
9096         x%-1 into 0 (or x&0 if x has side-effects).
9097
9098 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9099
9100         * config/rs6000/rs6000.md: Document why a pattern is not
9101         available.
9102
9103         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
9104         of floats on the E500.
9105         (branch_positive_comparison_operator): Do not allow NE even on the
9106         E500.
9107
9108 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9109
9110         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
9111         in_text_unlikely_section to in_unlikely_text_section.
9112
9113 2004-04-11  Roger Sayle  <roger@eyesopen.com>
9114
9115         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
9116         calling convention to allow a NULL_TREE to be returned.  Factor
9117         sanity checks from callers, return NULL_TREE when appropriate.
9118         (fold): Handle COMPOUND_EXPR operands of binary expressions
9119         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
9120         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
9121         calls to fold_binary_op_with_conditional_arg.
9122
9123 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9124
9125         * config/mips/iris5.h (current_section_flags):  Add
9126         in_unlikely_executed_text and default case.
9127
9128 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
9129
9130         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
9131         failure on solaris. Place ifdef HAVE_return around gen_ret call.
9132         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
9133         HAVE_return and place it around the place where it is needed.
9134
9135 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
9136
9137         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
9138         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
9139         and NORMAL_TEXT_SECTION_NAME.
9140         (unlikely_text_section): Check targetm.have_named_sections
9141         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
9142         instead of SECTION_FORMAT_STRING.
9143         * config/mips/iris5.h (current_section_name): Add
9144         in_unlikely_executed_text case and move the abort into the switch.
9145         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
9146         (NORMAL_TEXT_SECTION_NAME): Remove.
9147         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
9148         (SECTION_FORMAT_STRING): Remove.
9149         * defaults.h (SECTION_FORMAT_STRING): Remove.
9150         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
9151         (SECTION_FORMAT_STRING): Remove.
9152
9153 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
9154
9155         * c-typeck.c (common_type): Prefer long long to long when same
9156         precision.
9157
9158 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
9159
9160         PR 14887
9161         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
9162         mode argument.
9163         * config/ia64/ia64.c (ia64_hpux_file_end): Check
9164         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
9165
9166 2004-04-09  Roger Sayle  <roger@eyesopen.com>
9167
9168         * simplify-rtx.c (mode_signbit_p): New function to check whether
9169         an RTX is an immediate constant that represents the most significant
9170         bit of a given machine mode.
9171         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
9172         C is the sign bit.
9173         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
9174         when C2 is the sign bit.
9175         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
9176         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
9177         sign bit.
9178
9179 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9180
9181         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
9182         TYPE_MODE.
9183
9184 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
9185
9186         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
9187         of TREE_READONLY for types.
9188
9189 2004-04-09  Caroline Tice  <ctice@apple.com>
9190
9191         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
9192         (struct basic_block_def):  Add new field, partition.
9193         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
9194         definitions.
9195         (partition_hot_cold_basic_blocks): Add extern function
9196         declaration.
9197         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
9198         include statements.
9199         (N_ROUNDS): Increase the maximum number of rounds by 1.
9200         (branch_threshold): Add array value for new round.
9201         (exec_threshold): Add array value for new round.
9202         (push_to_next_round_p): New function.
9203         (add_unlikely_executed_notes): New function.
9204         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
9205         (mark_bb_for_unlikely_executed_section): New function.
9206         (add_labels_and_missing_jumps): New function.
9207         (add_reg_crossing_jump_notes): New function.
9208         (fix_up_fall_thru_edges): New function.
9209         (find_jump_block): New function.
9210         (fix_crossing_conditional_branches): New function.
9211         (fix_crossing_unconditional_branches): New function.
9212         (fix_edges_for_rarely_executed_code): New function.
9213         (partition_hot_cold_basic_blocks): New function.
9214         (find_traces):  Add an extra round for partitioning hot/cold
9215         basic blocks.
9216         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
9217         and only cold blocks, into the last (extra) round of collecting traces.
9218         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
9219         over crossing edges.
9220         (bb_to_key):  Add code to correctly identify cold blocks when
9221         doing partitioning.
9222         (connect_traces): Modify to connect all the non-cold traces first, then
9223         go back and connect up all the cold traces.
9224         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
9225         * cfg.c (entry_exit_blocks): Add initialization for partition field in
9226         entry and exit blocks.
9227         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
9228         if we are doing hot/cold partitioning.
9229         * cfgcleanup.c (cfglayout.h): Add new include statement.
9230         (try_simplify_condjump): Modify to not attempt on blocks with jumps
9231         that cross section boundaries.
9232         (try_forward_edges): Likewise.
9233         (merge_blocks_move_predecessor_nojumps): Likewise.
9234         (merge_blocks_move_successor_nojumps): Likewise.
9235         (merge_blocks_move): Likewise.
9236         (try_crossjump_to_edge): Modify to not attempt after we have done
9237         the block partitioning.
9238         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
9239         cross section boundaries.
9240         (try_optimize_cfg): Likewise.
9241         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
9242         jumps that cross section boundaries.
9243         * cfglayout.c (flags.h): Add new include statement.
9244         (update_unlikely_executed_notes):  New function.
9245         (fixup_reorder_chain):  Add code so when a new jumping basic block is
9246         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
9247         updated appropriately.
9248         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
9249         introduced by this optimization.
9250         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
9251         extern function declaration.
9252         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
9253         list of notes that can be deleted.
9254         (create_basic_block_structure):  Add initialization for partition field.
9255         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
9256         section boundaries.
9257         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
9258         cross section boundaries.
9259         (commit_one_edge_insertion): Add code so newly created basic block
9260         ends up in correct (hot or cold) section.  Modify to disallow
9261         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
9262         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
9263         crosses section boundaries.
9264         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
9265         cross section boundaries.
9266         (force_nonfallthru_and_redirect): Modify to make sure new basic block
9267         ends up in correct section, with correct notes attached.
9268         * common.opt (freorder-blocks-and-partition):  Add new flag for this
9269         optimization.
9270         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
9271         the end of functions are written into the correct (hot or cold)
9272         section.
9273         (dbx_source_file): Add code so writing debug file information
9274         doesn't incorrectly change sections.
9275         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
9276         in partitioning hot/cold basic blocks into separate sections.
9277         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
9278         section partitioning.
9279         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
9280         conditional branches can span all of memory.
9281         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
9282         unconditional branches can span all of memory.
9283         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
9284         (final_scan_insn):  Add code to check for NOTE instruction indicating
9285         whether basic block belongs in hot or cold section, and to make sure
9286         the current basic block is being written to the appropriate section.
9287         Also added code to ensure that jump table basic blocks end up in the
9288         correct section.
9289         * flags.h (flag_reorder_blocks_and_partition):  New flag.
9290         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
9291         one of the branches has a jump that crosses between sections.
9292         (find_if_case_2): Likewise.
9293         (ifcvt): Modify to not attempt to mark loop exit edges after
9294         hot/cold partitioning has occurred.
9295         * opts.c (decode_options): Code to handle new flag,
9296         flag_reorder_blocks_and_partition; also to turn it off if
9297         flag_exceptions is on.
9298         (common_handle_option): Code to handle new flag,
9299         flag_reorder_blocks_and_partition.
9300         * output.h (unlikely_text_section): New extern function declaration.
9301         (in_unlikely_text_section): New extern function declaration.
9302         * passes.c (rest_of_handle_stack_regs):  Add
9303         flag_reorder_blocks_and_partition as an 'or' condition for calling
9304         reorder_basic_blocks.
9305         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
9306         as an 'or' condition for calling reorder_basic_blocks.
9307         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
9308         * print-rtl.c (print_rtx): Add code for handling new note,
9309         NOTE_INSN_UNLIKELY_EXECUTED_CODE
9310         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
9311         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
9312         cross between section boundaries.
9313         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
9314         indicating the basic block containing it belongs in the cold section.
9315         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
9316         between hot and cold sections.
9317         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
9318         initialize this flag, and to tie it to the command-line option
9319         freorder-blocks-and-partition.
9320         * varasm.c (cfglayout.h):  Add new include statement.
9321         (unlikely_section_label_printed):  New global variable, used for
9322         determining when to output section name labels for cold sections.
9323         (in_section):  Add in_unlikely_executed_text to enum data structure.
9324         (text_section):  Modify code to use SECTION_FORMAT_STRING and
9325         NORMAL_TEXT_SECTION_NAME macros.
9326         (unlikely_text_section):  New function.
9327         (in_unlikely_text_section):  New function.
9328         (function_section):  Add code to make sure beginning of function is
9329         written into correct section (hot or cold).
9330         (assemble_start_function):  Add code to make sure stuff is written to
9331         the correct section.
9332         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
9333         to an if statement that was checking 'in_text_section'.
9334         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
9335         condition to an if statement that was checking 'in_text_section'.
9336         (default_section_type_flags_1):  Add check: if in cold section
9337         flags = SECTION_CODE.
9338         * config/darwin.c (darwin_asm_named_section):  Modify to use
9339         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
9340         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
9341         specifically for the i386.
9342         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
9343         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
9344         text string to something more informative.
9345         (NORMAL_TEXT_SECTION_NAME): Add new definition.
9346         (SECTION_FORMAT_STRING):  Add new definition.
9347         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
9348         '!in_unlikely_text_section' as an 'and' condition to an if statement
9349         that was already checking '!in_text_section'.
9350         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
9351         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
9352         sure these are properly defined for linux on ppc.
9353         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
9354         for this new flag.
9355         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
9356         reg_note.
9357         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
9358         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
9359         these new macros.
9360
9361 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9362
9363         * function.c (gen_mem_addressof): When changing the RTX from a REG
9364         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
9365
9366 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9367
9368         PR target/14888
9369         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
9370         truncxfdf2_noop): Provide dummy "fmov" implementations.
9371
9372 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
9373
9374         * gcc.c (default_compilers): Add missing initializers.
9375
9376         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9377         Return 1 if file was successfully mapped.
9378
9379 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
9380
9381         PR pch/13419
9382         PR pch/14137
9383         Radar #: 3315288
9384         * doc/invoke.texi (Precompiled Headers): Suggest -o
9385         to put an output file in a particular place.  Be more detailed
9386         about which options affect PCH validity and which options
9387         might not work.
9388         * c-pch.c (pch_matching): New.
9389         (MATCH_SIZE): New.
9390         (struct c_pch_validity): New field 'match'.
9391         (pch_init): Handle pch_matching.
9392         (c_common_valid_pch): Check pch_matching.
9393
9394         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
9395
9396 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
9397
9398         * doc/invoke.texi (Precompiled Headers): Warn about known
9399         problems.
9400
9401 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
9402
9403         PR c++/14808
9404         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
9405         to 1 if ASM_OUTPUT_DEF is defined.
9406         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
9407         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
9408         Set to non-zero iff not a one_only decl.
9409
9410 2004-04-08  Paul Brook  <paul@codesourcery.com>
9411
9412         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
9413
9414 2004-04-08  Paul Brook  <paul@codesourcery.com>
9415
9416         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
9417         PROMOTE_FOR_CALL_ONLY.
9418         * config/arm/arm-protos.h (arm_function_value): Declare.
9419         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9420         (TARGET_PROMOTE_PROTOTYPES): Return false.
9421         (arm_function_value): New function.
9422         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
9423         (FUNCTION_VALUE): Call arm_function_value.
9424         * config/cris/cris.h (PROMOTE_MODE): Rename ...
9425         (PROMOTE_FUNCTION_MODE): ... to this.
9426         (PROMOTE_FOR_CALL_ONLY): Remove.
9427         * config/mmix/mmix.h: Likewise.
9428         * config/s390/s390.h: Likewise.
9429         * config/sparc/sparc.h: Likewise.
9430         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
9431         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
9432         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
9433         (PROMOTE_FOR_CALL_ONLY): Remove.
9434
9435 2004-04-08  Joel Sherrill <joel@oarcorp.com>
9436
9437         PR ada/14538
9438         * ada/5rosinte.adb: Remove fake mprotect() body.
9439         * ada/5rosinte.ads: Add SA_SIGINFO.
9440         * ada/5rtpopsp.adb: Rewrite to use new interface.
9441         * ada/init.c: Reorder so the simple single OS conditional __rtems__
9442         is tested before more complex ones which mix UNIX and embedded
9443         systems in the conditional.
9444
9445 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
9446
9447         PR ada/14665
9448         * ada/osint.adb (Find_Program_Name): Rework to properly handle
9449         filenames which end in .exe or have versioning suffixes like VMS.
9450
9451 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
9452
9453         PR target/10129
9454         * config/darwin.c (darwin_encode_section_info): When the decl has
9455         a DECL_INITIAL, it is only defined also when it is not a common.
9456
9457 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9458
9459         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
9460         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
9461
9462 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
9463
9464         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
9465         global register variables.
9466
9467 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
9468
9469         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
9470         rpc_xdr_lvalue_cast_b): New fixes.
9471         * fixinc/fixincl.x: Regenerate.
9472         * fixinc/tests/base/rpc/xdr.h: Add new tests.
9473
9474 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
9475
9476         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
9477         to power4 and power5 entries.
9478
9479 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
9480
9481         * c-common.h (pending_lang_change): Mark for PCH.
9482
9483 2004-04-07  Caroline Tice  <ctice@apple.com>
9484
9485         * gcc.c (main): Move 'break' in main loops (on an error)
9486         to wait until error processing has occurred.
9487
9488 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
9489
9490         * config.gcc: Stop changing enable_threads midstream.
9491         Replace uses of enable_threads_flag with enable_threads.
9492         * configure.ac: Replace uses of enable_threads_flag with
9493         enable_threads.  Improve autoconf quotation in one place.
9494         * configure: Regenerate.
9495
9496 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
9497
9498         * builtins.c: Implement support for sincos function.
9499         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
9500         BUILT_IN_COS{,F,L}.
9501         (expand_builtin_mathfn_3): New function.
9502         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
9503         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
9504         flag_unsafe_math_optimization is set.
9505
9506         * optabs.h (enum optab_index): Add new OTI_sincos.
9507         (sincos_optab): Define corresponding macro.
9508
9509         * optabs.c (init_optabs): Initialize sincos_optab.
9510         (expand_twoval_unop): New function.
9511
9512         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
9513         patterns.
9514
9515         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
9516         and UNSPEC_SINCOS_SIN.
9517
9518         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
9519         sincosxf3): New patterns to implement sincos, sincosf and sincosl
9520         built-ins as inline x87 intrinsics. Define splits for
9521         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
9522         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
9523         sincos patterns.
9524         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
9525         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
9526
9527         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
9528         x87's fsincos insn.
9529
9530 2004-04-06  Devang Patel  <dpatel@apple.com>
9531
9532         PR 14467
9533         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
9534
9535 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9536
9537         * doc/install.texi: Update HP-UX 11 installation procedure.
9538
9539 2004-04-06  Paul Brook  <paul@codesourcery.com>
9540
9541         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
9542
9543 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9544
9545         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
9546         when the TLS address is generated by a function call.
9547         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
9548         (tls_local_dynamic): Likewise.
9549
9550 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
9551
9552         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
9553         and TYPE_VOLATILE.
9554
9555 2004-04-05  Caroline Tice  <ctice@apple.com>
9556
9557         * gcc.c (combine_flag): New global variable, for new driver option.
9558         (struct compiler): Add two new fields, to be used when
9559         combining multiple input files in a single pass (IMA).
9560         (default_compilers):  Add values for the new fields to all
9561         compiler entries. Modify the "@c" compiler entry for doing IMA
9562         properly with "-save-temps" and the "combine" flag.
9563         (option_map):  Add new driver option, "--combine", to tell driver
9564         to pass multiple input files to compiler at one time.
9565         (have_o_argbuf_index): New global variable.
9566         (store_arg): Modify to assign value to have_o_argbuf_index.
9567         (struct infile):  Add three new fields, to help with IMA.
9568         (display_help): Add help for new "combine" option.
9569         (process_command): Remove local variable have_o; add code to check
9570         for new "combine" option; remove assignment to combine_inputs.
9571         (do_spec_1):  Modify to deal with IMA better.
9572         (main): Make variable 'lang_n_infiles' local to entire function
9573         rather than to a single block.  Use flag combine_flag to
9574         determine whether to do IMA or not; Modify loop initializing
9575         infiles to deal properly with linker files.
9576         Add code for doing preprocessing in presence of
9577         IMA with "-save-temps" flag.  Modify "main" loop to handle
9578         multiple input files, in multiple languages, with or without
9579         preprocessing,  gracefully.
9580         * toplev.c (set_src_pwd): Modify to not complain if attempting to
9581         re-set it to same directory it's previously been set to (avoid
9582         irritating, meaningless warning messages when doing IMA with
9583         save-temps).
9584         * doc/invoke.texi: Add "-combine" to list of Overall Options;
9585         remove documentation about IMA that is no longer accurate; Add
9586         documentation explaining what "-combine" does.
9587         * ada/lang-specs.h: Add initialization values for new fields in
9588         "struct compiler".
9589         * cp/lang-specs.h: Likewise.
9590         * f/lang-specs.h: Likewise.
9591         * java/lang-specs.h: Likewise.
9592         * objc/lang-specs.h: Likewise.
9593         * treelang/lang-specs.h: Likewise.
9594
9595 2004-04-05  David Edelsohn
9596
9597         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
9598         symbol handling.
9599
9600 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
9601             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9602
9603         PR optimization/13424 (hppa), bootstrap/14462, c/14828
9604         * pa.md: Use replace_equiv_address to retain the attributes of the
9605         memory operands used in the split and peephole2 patterns for optimizing
9606         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
9607
9608 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9609
9610         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
9611         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9612         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
9613         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
9614         PARM_DECL.
9615         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
9616         for a type.
9617         * print-tree.c (print_node): Properly handle side-effects, readonly,
9618         and constant flags.
9619         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
9620         and TREE_CONSTANT if not a type.
9621         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
9622         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
9623         (NON_TYPE_CHECK): New macro.
9624         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
9625
9626 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
9627
9628         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
9629         to DWARF2_DEBUG unconditionally.
9630         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
9631
9632 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
9633             Nathanael Nerode  <neroden@gcc.gnu.org>
9634
9635         PR target/14548
9636         * config.host: Set the shell variable host_can_use_collect2.
9637         Set it to yes by default, and to no for alpha*-dec-*vms*,
9638         i[34567]86-*-mingw32*, and powerpc-*-beos*.
9639         * configure.ac: Set and substitute the shell variable collect2.
9640         Give an error if use_collect2 is yes and host_can_use_collect2 is
9641         no.
9642         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
9643         uses.  Initialize to @collect2@.
9644         (STAGESTUFF): Remove $(USE_COLLECT2).
9645         * config/alpha/x-vms (USE_COLLECT2): Don't set.
9646         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
9647         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
9648         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
9649         * configure: Regenerate.
9650
9651 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9652
9653         * simplify-rtx.c (simplify_binary_operation): Constant fold
9654         DIV, MOD, UDIV and UMOD using div_and_round_double.
9655
9656 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9657
9658         PR c++/14804
9659         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
9660         RECORD_TYPEs.
9661
9662 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9663
9664         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
9665         documentation.
9666
9667 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9668
9669         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
9670         updating the REG_EQUAL note on an insn's libcall_insn.
9671
9672 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9673
9674         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
9675
9676 2004-04-03  Roger Sayle  <roger@eyesopen.com>
9677
9678         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
9679         with reorder_operands_p.
9680
9681 2004-04-03  Jan Hubicka  <jh@suse.cz>
9682
9683         * md.texi (vec_set, vec_extract, vec_init): Document.
9684
9685 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
9686
9687        * opts.c (decode_options): Do function inlining with very small
9688        max-inline-insns-* parameters when optimizing for size.
9689
9690 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
9691
9692         * config/i386/i386.h (TARGET_NOCONA): New macro.
9693         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
9694         (processor_type): Add PROCESSOR_NOCONA.
9695
9696         * config/i386/i386.md (cpu): Add nocona to the attribute values.
9697
9698         * config/i386/i386.c (nocona_cost): New variable.
9699         (m_NOCONA): New macro.
9700         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9701         x86_branch_hints, x86_use_sahf, x86_single_stringop,
9702         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
9703         x86_integer_DFmode_moves, x86_partial_reg_dependency,
9704         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
9705         x86_decompose_lea, x86_arch_always_fancy_math_387,
9706         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
9707         x86_ext_80387_constants, x86_four_jump_limit):
9708         (override_options): Add nocona_cost to processor_target_table.
9709         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
9710         (incdec_operand): Prevent inc/dec generation for Nocona too.
9711         (ix86_issue_rate): Add PROCESSOR_NOCONA.
9712
9713 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
9714
9715         * rtlanal.c (find_reg_note): Manually
9716         unswitch the loop.
9717
9718 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
9719
9720         * genemit.c (gen_split): Change prototype of generated code.
9721         * genrecog.c (write_action): Adjust prototype for and calls to
9722         gen_split_*.
9723         * gensupport.c (struct queue_elem): Add split field.
9724         (queue_pattern): Return a value.  Clear the split field.
9725         (process_rtx): Maintain an association between an insn and the
9726         split generated from it for a define_insn_and_split.
9727         (process_one_cond_exec): Generate a new split for a
9728         define_insn_and_split.
9729         * config/arm/arm-protos.h (arm_split_constant): Add insn
9730         parameter.
9731         (emit_constant_insn): New function.
9732         (arm_gen_constant): Use it.
9733         * config/arm/arm.md: Adjust calls to arm_split_constant.
9734
9735 2004-04-02  Jan Hubicka  <jh@suse.cz>
9736
9737         * cgraph.c: Add overall comment.
9738         (cgraph_inline_hash): New global variable.
9739         (cgraph_create_node): Break out from ...
9740         (cgraph_node): ... here.
9741         (cgraph_edge): New function.
9742         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
9743         (cgraph_remove_edge): Accept edge, intead of source and destination.
9744         (cgraph_redirect_edge_callee): New.
9745         (cgraph_remove_node): Update all new datastructures.
9746         (cgraph_record_call, cgraph_remove_call): Kill.
9747         (dump_cgraph_node): Break out from ... ; dump new datastructures.
9748         (dump_cgraph): ... here.
9749         (cgraph_function_possibly_inlined_p): Use new hashtable.
9750         (cgraph_clone_edge, cgraph_clone_node): New.
9751         * cgraph.h: Include hashtab.h
9752         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
9753         fields, add inlined_to pointer.
9754         (cgraph_node): Add pointer to next_clone.
9755         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
9756         (cgraph_remove_call, cgraph_record_call): Kill.
9757         (cgraph_inline_hash): Declare.
9758         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
9759         cgraph_redirect_edge_callee): Declare.
9760         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
9761         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
9762         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
9763         * cgraphunit.c: Add overall comment.
9764         (cgraph_optimize_function): Kill.
9765         (cgraph_assemble_pending_functions): Do not assemble inline clones.
9766         (cgraph_finalize_function): Update call of cgraph_remove_node
9767         (record_call_1): Record call sites.
9768         (cgraph_create_edges): Accept node instead of decl argument.
9769         (error_found): New static variable.
9770         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
9771         (cgraph_analyze_function): Update for new datastructures.
9772         (cgraph_finalize_compilation_unit): Plug memory leak.
9773         (cgraph_optimize_function): Kill.
9774         (cgraph_expand_function): Do not use cgraph_optimize_function.
9775         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
9776         cgraph_inlined_callees): Kill.
9777         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
9778         clones.
9779         (estimate_growth): Simplify.
9780         (cgraph_clone_inlined_nodes): New function.
9781         (cgraph_mark_inline_edge): Re-implement.
9782         (cgraph_mark_inline): Likewise.
9783         (cgraph_check_inline_limits): Simplify.
9784         (cgraph_recursive_inlining_p): New.
9785         (update_callee_keys): Break out from ...
9786         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
9787         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
9788         Likewise.
9789         (cgraph_expand_all_functions):  Remove inline clones from the ordered
9790         list.
9791         (cgraph_preserve_function_body_p): New predicate.
9792         (cgraph_optimize): Verify cgraph.
9793         * function.h (struct function): Add fields saved_tree/saved_args.
9794         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
9795         * toplev.c (rest_of_compilation): Do not free cfun.
9796         * tree-inline.c: Include function.h
9797         (struct inline_data): Add saving_p field; replace decl/current_decl by
9798         node/current_node.
9799         (insert_decl_map): New function.
9800         (copy_body_r): Handle saving; update cgraph datastructure.
9801         (copy_body): Handle recursive inlining.
9802         (initialize_inlined_parameters): Likewise.
9803         (expand_call_inline): Propagate node attributes; update cgraph.
9804         (optimize_inline_calls): Verify that datastructure still match.
9805         (save_body): New function.
9806         * tree-inline.h (save_body): New.
9807         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
9808         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
9809         * langhooks.c (lang_hooks): Add update_decl_after_saving.
9810
9811 2004-04-01  Serge Belyshev  <1319@bot.ru>
9812
9813         PR target/14702
9814         * config/i386/i386.md: fix source operand constraints in
9815         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
9816
9817 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9818
9819         * fold-const.c (folda): Preserve types of comparisons.
9820
9821 2004-04-01  Richard Henderson  <rth@redhat.com>
9822
9823         * toplev.c (backend_init): Move init_optimization_passes call ...
9824         (lang_dependent_init): ... here.
9825
9826 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
9827             Jakub Jelinek  <jakub@redhat.com>
9828
9829         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
9830         -lgcc --as-needed -lgcc_s --no-as-needed by default.
9831         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
9832         * configure: Rebuilt.
9833         * config.in: Rebuilt.
9834         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
9835         (stage2-start, stage3-start, stage4-start): Likewise.
9836         (stageprofile-start, stagefeedback-start): Likewise.
9837
9838 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9839
9840         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
9841         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9842         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9843         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9844         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
9845         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
9846         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
9847         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
9848         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
9849         * config/sparc/t-linux: Removed.
9850
9851 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9852
9853         PR c++/14755
9854         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
9855         "bitfld++ == const" to "++bitfld == const + incr" transformations.
9856
9857 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9858
9859         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
9860         * stor-layout.c (layout_decl): Likewise.
9861         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
9862         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
9863         * print-tree.c (print_node): Handle various used of unsigned_flag.
9864         * tree.def (BIT_FIELD_REF): Update comment.
9865         * tree.h (TREE_UNSIGNED): Deleted.
9866         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
9867
9868 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9869
9870         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
9871         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
9872         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
9873         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
9874         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
9875         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
9876         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
9877         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
9878         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
9879         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
9880         REAL_TYPE, not INTEGER_TYPE.
9881         (layout_type, case VECTOR_TYPE): Simplify code.
9882         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
9883         * tree.h: Update comments.
9884         (STRIP_NOPS): Use TYPE_UNSIGNED.
9885         (TYPE_UNSIGNED): New macro.
9886         (TYPE_TRAP_SIGNED): Remove now redundant check.
9887         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
9888
9889 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9890
9891         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
9892
9893 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
9894
9895         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
9896         Add darwin-fpsave.asm, darwin-vecsave.asm,
9897         and darwin-world.asm.
9898         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
9899         as the asm files contain altivec instructions.
9900         * config/rs6000/darwin-fpsave.asm: New file.
9901         * config/rs6000/darwin-vecsave.asm: New file.
9902         * config/rs6000/darwin-world.asm: New file.
9903
9904 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
9905
9906         * gengtype-yacc.y (option, stringseq): Add missing
9907         terminating semicolon.
9908
9909 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
9910
9911         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
9912         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
9913         tls_dtprel_ha_32, tls_dtprel_ha_64,
9914         tls_dtprel_lo_32, tls_dtprel_lo_64,
9915         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
9916         tls_tprel_ha_32, tls_tprel_ha_64,
9917         tls_tprel_lo_32, tls_tprel_lo_64,
9918         tls_got_tprel_32, tls_got_tprel_64,
9919         tls_tls_32, tls_tls_64): Replace register_operand with
9920         gpc_reg_operand.
9921
9922 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
9923
9924         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
9925         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
9926         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
9927         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
9928         *ctrdi_internal6): Replace register_operand with
9929         nonimmediate_operand.
9930
9931 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
9932
9933         * fold-const.c (fold): Reassociate multiply expression
9934         with an adjacent non-multiply expression to use
9935         architecture's multiply-add instruction.
9936
9937 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
9938
9939         * gengtype.c (create_option): New function.
9940         * gengtype.h: Prototype it.
9941         * gengtype-yacc.y (stringseq): New rule.
9942         (option): Use create_option.  Add new bare ID production.  Use
9943         stringseq, not STRING directly.
9944
9945         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
9946         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
9947         * varray.h, config/alpha/alpha.c:
9948         Use new shorter form of GTY markers.
9949
9950         * doc/gty.texi: Rewrite.
9951
9952 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
9953
9954         * config/darwin.c (machopic_function_base_name):
9955         Remove current_name and getting the name of the
9956         current function.
9957
9958 2004-03-30  Nick Clifton  <nickc@redhat.com>
9959
9960         * config/arm/arm.md (thumb_jump): Reduce the backward branch
9961         range, and increase the forward branch range, to allow for
9962         the fact that the PC will be off by 4.
9963
9964 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
9965
9966         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
9967
9968 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9969
9970         * config/rs6000/rs6000.c (output_vec_const_move):
9971         Find all cases of EASY_VECTOR_15_ADD_SELF.
9972         (easy_vector_constant_add_self): Accept
9973         all vector constant loadable by vsplt* and vadd*.
9974         (easy_vector_same): Use easy_vector_splat_const.
9975         (easy_vector_const): Use easy_vector_splat_const.
9976         (easy_vector_splat_const): New function.
9977         (gen_easy_vector_constant_add_self): New function.
9978
9979         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
9980         New prototype.
9981
9982         * config/rs6000/altivec.md (movv4si splitter): Change to
9983         emit move insn with halfed vector constant.
9984         (*movv8hi splitter): Likewise.
9985         (*movv16qi splitter): Likewise.
9986
9987 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9988
9989         PR 11591
9990         * config/rs6000/rs6000.c (rs6000_legitimate_address):
9991         Allow any offset to argument pointer in no-strict case.
9992
9993 2004-03-30  Jan Hubicka  <jh@suse.cz>
9994
9995         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
9996         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
9997         dump file in non-unit-at-a-time mode.
9998
9999 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
10000
10001         * config/cris/cris.h: Correct #ifdef to test for
10002         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
10003         HAVE_AS_MUL_BUG_ABORT_OPTION.
10004
10005 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10006
10007         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
10008         the address inside the old RTL.
10009
10010 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
10011
10012         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
10013         (struct c_binding, struct c_scope): Add chain_next
10014         attributes to GTY markers.
10015         (struct lang_identifier, struct lang_tree_node): Define
10016         here...
10017         * c-tree.h: ... not here.  No longer need to declare struct
10018         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
10019         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
10020         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
10021
10022         PR 14734, 11944
10023         * c-decl.c (get_parm_info): If error_mark_node is encountered
10024         in the bindings chain, unbind and discard it; don't abort.
10025
10026 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
10027             Dorit Naishlos <dorit@il.ibm.com>
10028
10029         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
10030         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
10031
10032 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
10033
10034         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
10035
10036         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
10037         (m68hc11_attribute_table): New attribute "page0" to mark a global
10038         variable as being allocated from within page0 section.
10039         (m68hc11_encode_label): New function.
10040         (m68hc11_strip_name_encoding): New function.
10041         (m68hc11_page0_symbol_p): New function.
10042         (m68hc11_indirect_p): Accept global variables marked in page0.
10043         (m68hc11_encode_section_info): Lookup "page0" attribute.
10044
10045         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
10046         represents access to page0 variables.
10047
10048         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
10049         ("*logicalsi3_silshl16_zext"): Likewise.
10050         ("*ashldi3_const32"): Likewise.
10051         (peephole2 ashift): Likewise.
10052
10053 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
10054
10055         * c-tree.h (C_DECL_REGISTER): New.
10056         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
10057         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
10058         (build_array_ref, c_mark_addressable): Set and use it.
10059         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
10060         Allow structures with volatile fields to be declared register.
10061         Don't check TREE_ADDRESSABLE before warning about taking address
10062         of register.
10063         * c-decl.c (finish_decl): Don't allow structures with volatile
10064         fields to be placed in named register.
10065         * doc/trouble.texi: Remove reference to structures with volatile
10066         fields in registers.
10067
10068 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
10069
10070         * function.c (thread_prologue_and_epilogue): Move
10071         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
10072         before the epilogue.
10073
10074 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
10075
10076         * expr.c (store_constructor): Use gen_int_mode to correctly
10077         sign-extend CONST_INT value.
10078
10079 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10080
10081         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
10082         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
10083         * doc/extend.texi: Likewise.
10084
10085 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
10086
10087         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
10088           with TYPE_ORIG_SIZE_TYPE.
10089
10090 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
10091
10092         PR 14219
10093         * c-typeck.c (build_binary_op): Do not allow comparisons of
10094         vectors.
10095
10096 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
10097
10098         * config.gcc: Remove sparc-tti-*.
10099         * config/sparc/pbd.h: Delete.
10100
10101         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
10102         * config/sparc/aout.h: Likewise.
10103
10104         * config/sparc/sparc.h: Remove if 0'd code.
10105         * config/sparc/sparc.md (call): Remove if 0'd code.
10106         (call_value): Likewise.
10107         (nonlocal_goto): Likewise.
10108         (unimp_insn): Delete.
10109
10110 2004-03-25  Roger Sayle  <roger@eyesopen.com>
10111
10112         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
10113         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
10114
10115 2004-03-25  Richard Henderson  <rth@redhat.com>
10116
10117         PR 11527
10118         * c-typeck.c (pop_init_level): Emit pending init elements earlier
10119         rather than later.
10120
10121 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10122
10123         * builtins.c (fold_builtin): Fix error in last change.
10124
10125 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
10126
10127         * config/mips/mips.h: Formatting fix.
10128
10129 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10130
10131         * builtins.def: Add ctype builtins.
10132         * doc/extend.texi: Likewise.
10133
10134 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10135
10136         * builtins.c (fold_builtin): Add new builtin optimizations for
10137         sqrt and/or cbrt.
10138         * fold-const.c (fold): Likewise.
10139
10140 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
10141
10142         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
10143         (rs6000_sched_groups): New variable.
10144         (processor_target_table): Add power5.
10145         (rs6000_override_options): Set rs6000_sched_insert_nops,
10146         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
10147         from rs6000_sched_groups.
10148         (output_cbranch): Use rs6000_always_hint.
10149         (rs6000_variable_issue): Use rs6000_sched_groups.
10150         (rs6000_adjust_cost): Add CPU_POWER5.
10151         (is_microcoded_insn): Use rs6000_sched_groups.
10152         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
10153         Return 2 for POWER5 cracked instructions.
10154         (is_cracked_insn): Use rs6000_sched_groups.
10155         (is_branch_slot_insn): Use rs6000_sched_groups.
10156         (rs6000_issue_rate): Add CPU_POWER5.
10157         (rs6000_sched_finish): Use rs6000_sched_groups.
10158         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
10159         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
10160         (DEFAULT_SCHED_COSTLY_DEP): Delete.
10161         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
10162         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
10163         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
10164         * config/rs6000/power5.md: New file.
10165         * doc/invoke.texi: Add power5 option.
10166
10167 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10168
10169         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
10170         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
10171         * doc/invoke.texi: Fix a typo.
10172
10173 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10174
10175         PR optimization/9707.
10176         * stmt.c (emit_case_nodes): Emit equality comparisons instead
10177         of recursing if both children are single-valued cases with no
10178         children.
10179
10180 2004-03-25  Paul Brook  <paul@codesourcery.com>
10181
10182         * config/arm/arm.c (vfp_print_multi): Remove.
10183         (arm_output_fldmx): New function.
10184         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
10185         (arm_expand_prologue): Update to match.
10186         (arm_get_vfp_saved_size): New Function.
10187         (arm_get_frame_offsets): Use it.
10188         (arm_output_epilogue): Use new functions.
10189
10190 2004-03-24  Richard Henderson  <rth@redhat.com>
10191
10192         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
10193         (reg_known_value, reg_known_value_size): Likewise; make static.
10194         (reg_known_equiv_p): Make static.
10195         (clear_reg_alias_info): Update for new indexing.
10196         (get_reg_known_value, set_reg_known_value): New.
10197         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
10198         (canon_rtx): Use them.
10199         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
10200         Don't play queer offsetting games with reg_known_value and
10201         reg_known_equiv_p.
10202         (end_alias_analysis): Free reg_known_value with gc.
10203         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
10204         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
10205         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
10206         functions instead.
10207
10208 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
10209
10210         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
10211         config/i386/mmintrin.h: Update copyright.
10212
10213 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10214
10215         * configure.ac: Add --enable-werror-always (for top level bootstrap
10216         support).
10217         * configure: Regenerate.
10218
10219 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
10220
10221         * objc/objc-act.c (objc_comptypes): Treat comparisons
10222         between 'Class' and '<class> *' as explicitly invalid.
10223
10224 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
10225
10226         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
10227         (-fprofile-values): Add enabled with profile-{generate,use}.
10228         (-fvpt): Same.
10229         (-ftracer): Add enabled with profile-use.
10230         (-funit-at-a-time): Add enabled at -O2,-O3.
10231         (-funroll-loops): Add enabled with profile-use.
10232         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
10233         (max-gcse-passes): Mention default.
10234         (max-cse-path-length): Mention default.
10235
10236 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10237
10238         * Makefile.in (STRICT2_WARN): Reorder.
10239         * configure.ac: Check for -Wold-style-definition, and use it
10240         in strict1_warn if it's available.
10241         * configure: Regnerate.
10242
10243 2004-03-24  Paul Brook  <paul@nowt.org>
10244
10245         * config.gcc <arm>: Add --with-abi=
10246         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
10247         thumb_far_jump_used): Remove prototypes.
10248         (arm_needs_doubleword_align): Add prototype.
10249         (thumb_compute_initial_elimination_offset): Ditto.
10250         * config/arm/arm.c (arm_get_frame_offsets): New function.
10251         (use_return_insn, output_return_instruction, arm_output_epilogue,
10252         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
10253         arm_expand_prologue, thumb_expand_epilogue): Use it.
10254         (arm_abi, target_abi_name, all_arm_abis): New variables.
10255         (arm_override_options): Set them.  Set structure padding for AAPCS.
10256         (arm_return_in_memory): Update ABI check.
10257         (arm_init_cumulative_args): Initialize can_split.
10258         (arm_needs_doubleword_align): New function.
10259         (arm_function_arg): Don't split args after pushing to stack. Handle
10260         doubleword/even reg alignment.
10261         (arm_va_arg): Handle all doubleword aligned args.
10262         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
10263         on ABI, not CPU.
10264         (arm_compute_save_reg0_reg12_mask): Fix comment.
10265         (thumb_get_frame_size, thumb_get_frame_size): Remove.
10266         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
10267         value for alignment.
10268         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
10269         to match.
10270         (thumb_compute_initial_elimination_offset): New function.
10271         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
10272         unneccessary rounding.
10273         * config/arm/arm.h (target_abi_name): Declare.
10274         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
10275         arm_abi_type, ARM_DEFAULT_ABI): Define.
10276         (ARM_FLAG_ATPCS): Remove.
10277         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
10278         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
10279         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
10280         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
10281         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
10282         Contitionalize on ABI, not CPU.
10283         (struct arm_stack_offsets): Define.
10284         (struct machine_function): Add stack_offsets.  Remove frame_size.
10285         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
10286         pushed.
10287         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
10288         doubleword alignment.
10289         (THUMB_INITIAL_ELIMINATION_OFFSET,
10290         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
10291         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
10292         * config/arm/arm.md (align_8): Enable for all targets.
10293         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
10294         (ARM_DEFAULT_ABI): Define.
10295         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
10296         -mstructure-size-boundary.
10297
10298 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10299
10300         * configure.ac: Check for -Wno-variadic-macros; don't use
10301         -pedantic (in stage 1 or a simple 'make all') unless it's available,
10302         and if it's available, use it.  Also, clean up check for
10303         -Wno-long-long.
10304         * configure: Regenerate.
10305
10306 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10307
10308         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
10309         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
10310         (MULTILIB_DEFAULTS): Use it.
10311         (MIPS_CPU_STRING_DEFAULT): Remove.
10312         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
10313         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
10314         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
10315         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
10316         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
10317         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
10318         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
10319         accordingly.
10320
10321 2004-03-24  DJ Delorie  <dj@redhat.com>
10322             Richard Sandiford  <rsandifo@redhat.com>
10323
10324         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
10325         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
10326         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
10327         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
10328         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
10329         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
10330         if TARGET_FIX_VR4122.
10331         * config/mips/mips.md (define_attr length): Account for nops inserted
10332         after macc and dmult when using -mfix-vr4122-bugs.
10333         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
10334         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
10335         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
10336         * config/mips/vr4122-div.S: New file.
10337         * doc/invoke.texi: Document -mfix-vr4122-bugs.
10338
10339 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10340
10341         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
10342         (TARGET_MIPS4130): New macro.
10343         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
10344         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
10345         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
10346         with PROCESSOR_R4130.
10347         * config/mips/mips.md (define_attr cpu): Add r4130.
10348         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
10349
10350 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10351             Richard Sandiford  <rsandifo@redhat.com>
10352
10353         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
10354
10355 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
10356
10357         PR preprocessor/14438
10358         * cpplib.c (do_pragma): Remove line_change call after pragma
10359         handler.
10360
10361 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
10362
10363         * doc/extend.texi (ARM Built-in Functions): Replace with correct
10364         declarations.
10365
10366 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10367
10368         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
10369         if flag_unsafe_math_optimizations.
10370         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
10371         and TARGET_80387 expand using truncdfsf2_noop pattern.
10372         (truncxfsf2): Likewise using truncxfsf2_noop.
10373         (truncxfdf2): Likewise using truncxfdf2_noop.
10374         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
10375
10376 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
10377
10378         * hooks.c (hook_constcharptr_tree_null): New hook.
10379         * hooks.h (hook_constcharptr_tree_null): New prototype.
10380         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
10381         * target.h (mangle_fundamental_type): New target hook.
10382         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
10383         target hook at rs6000_mangle_fundamental_type.
10384         (rs6000_mangle_fundamental_type): New function.
10385         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
10386
10387 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
10388
10389         PR 12267, 12391, 12560, 13129, 14114, 14133
10390         * c-tree.h: Forward declare struct c_binding.  Declare
10391         c_override_bindings_to_false.  Update prototypes.
10392         (struct lang_identifier): Update comments.  Change fields to be
10393         struct c_binding *.
10394         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
10395         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
10396         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
10397         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
10398         * c-common.h: Update prototypes.
10399         * c-decl.c (struct c_scope): Update commentary.  Remove names,
10400         names_last, parms, parms_last, tags, and shadowed fields.  Add
10401         bindings and depth fields.
10402         (scope_freelist): Move to more appropriate location.
10403         (c_print_identifier): Update for changes to struct lang_identifier.
10404         (objc_mark_locals_volatile): Update for new bindings structures.
10405         (global_bindings_p): Honor c_override_global_bindings_to_false.
10406         (pushlevel): Rename to push_scope; take no arguments; use the
10407         scope_freelist; initialize scope->depth and check for overflow.
10408         (poplevel): Rename to pop_scope; totally rewritten for new bindings
10409         structures.
10410         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
10411         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
10412         Improve some commentary.  Adjust handling of forward parm decls.
10413         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
10414         Preserve C_DECL_IN_EXTERNAL_SCOPE.
10415         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
10416         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
10417         decls.  Rewrite for new bindings structures.  Improve commentary.
10418         Eliminate the copy_node call.
10419         (implicit_decl_warning): Use the "diag" idiom (as seen in
10420         locate_old_decl) to reduce code duplication; call locate_old_decl
10421         if appropriate.  Relocate to remove need for forward declaration.
10422         (implicitly_declare): Adjust for new bindings structures.  Kludge
10423         around Objective-C not-really-builtin functions.
10424         (undeclared_variable): Improve diagnostics.  If current_function_decl
10425         is nonnull but current_function_scope is null, use current_scope.
10426         Use bind.
10427         (lookup_tag): Adjust for new bindings structures.  Kludge around
10428         Objective-C's tag declarations that wind up in the external scope.
10429         (lookup_name): Adjust for new bindings structures.  Kludge around
10430         c-common.c's pseudo-typedefs that wind up in the external scope.
10431         (lookup_name_current_level): Rename lookup_name_in_scope; take a
10432         second argument indicating the scope to examine; rewrite for
10433         new bindings structures.
10434         (c_init_decl_processing): Adjust for renamed functions.  Do not
10435         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
10436         First scope pushed is the external scope, not the global scope.
10437         (builtin_function): Use bind, not pushdecl.  Adjust other bits
10438         for new data structures.  Keep track of builtins that should be
10439         made visible automatically.
10440         (start_decl): Adjust diagnostics.  Remove unnecessary call to
10441         expand_decl.
10442         (grokparms): Return 0 if arg_types is error_mark_node.
10443         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
10444         reversed sense.  Rewrite for new bindings structures.  Do not
10445         leave any decls in the scope, to prevent pop_scope from doing
10446         contradictory things with them.
10447         (finish_struct, finish_enum): Remove redundant diagnostics.
10448         (build_enumerator): Don't cascade diagnostics for error_mark_node.
10449         Mark location where -pedantic changes the meaning of the program.
10450         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
10451         parameter decls into the function's scope structure using bind.
10452         Warn here about function definitions in the wrong style.
10453         Adjust diagnostics.
10454         (store_parm_decls): Correct the determination of whether a
10455         function was defined with a prototype.
10456         (c_write_global_declarations): Operate on all file decls and on
10457         the external scope.  Split body of the loop to...
10458         (c_write_global_declarations_1): ... this new function, to avoid
10459         code duplication.
10460         (truly_local_externals, first_builtin_decl, last_builtin_decl)
10461         (make_scope, pop_scope, in_parm_level_p, set_block)
10462         (any_external_decl, record_external_decl, bind_label, getdecls)
10463         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
10464         (c_reset_state): Delete.
10465         (visible_builtins, c_override_global_bindings_to_false)
10466         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
10467         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
10468         (external_scope, binding_freelist, bind, free_binding_and_advance)
10469         (push_file_scope, pop_file_scope): New.
10470         (pushtag, pushdecl_top_level, lookup_label, declare_label)
10471         (define_label, c_make_fname_decl, finish_decl)
10472         (mark_forward_parm_decls, build_compound_literal)
10473         (grokdeclarator, start_function, check_for_loop_decls)
10474         (identifier_global_value, record_builtin_type): Minor adjustments
10475         for new bindings structures.  Improve diagnostics and commentary.
10476         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
10477         pushlevel/poplevel respectively.
10478         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
10479         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
10480         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
10481         correct loop over multiple translation units; call fatal_error if
10482         requested to compile more than one file at once.  (This disables
10483         IMA temporarily - an up-front error being preferable to a crash.)
10484         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
10485         (all actions): Adjust calls to pushlevel/poplevel.
10486         (parsing_iso_function_signature): Delete.
10487         (extdef_1): Fold into extdef.
10488         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
10489         warn here about function definitions in the wrong style.
10490         (after_tyle_declarator, parm_declarator_starttypename)
10491         (parm_declarator_nostarttypename, notype_declarator): Remove
10492         commented-out productions.
10493         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
10494         an empty TREE_LIST node.  Adjust calls to get_parm_info.
10495         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
10496         to suppress -Wold-style-definition after this error.
10497         (c_parse_file): Don't clear the binding stack or call
10498         finish_fname_decls here.  Correct comment.
10499         * c-typeck.c (same_translation_unit_p): Export.
10500         (common_type): Use c_override_global_bindings_to_false, not
10501         pushlevel/poplevel/declare_parm_level.
10502         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
10503         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
10504         and LANG_HOOKS_GETDECLS with do-nothing stubs.
10505         * objc/objc-lang.c: Likewise.
10506         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
10507         get_parm_info.
10508         (OBJC_VOID_AT_END): Delete; replace all uses
10509         with void_list_node.
10510         (generate_forward_declaration_to_string_table): Delete.
10511         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
10512
10513         * coverage.c (create_coverage): Don't pushdecl anything.
10514         * langhooks.c (lhd_clear_binding_stack): Call
10515         lang_hooks.decls.poplevel, not poplevel.
10516         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
10517         circular list rather than going into an infinite loop.
10518
10519 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
10520
10521         * optabs.c (expand_binop): When synthesizing double word rotates
10522         from single word shifts, use a new register target if the provided
10523         target is not a REG already.
10524
10525 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10526
10527         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
10528         * c-common.c (handle_mode_attribute): Add extra arg to
10529         build_pointer_type_for_mode and build_reference_type_for_mode.
10530         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
10531         for INTEGER_CST.
10532         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
10533         Chain pointers via TYPE_NEXT_PTR_TO.
10534         (build_reference_type_for_mode): Similarly.
10535         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
10536         and build_reference_type_for_mode.
10537         (tree_check4_failed): New function.
10538         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
10539         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
10540         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
10541         Add check.
10542
10543 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10544
10545         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
10546         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
10547         when both A and B are nonnegative.
10548         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
10549         nonzero.
10550
10551 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10552
10553         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
10554         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
10555
10556 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10557
10558         PR optimization/14669
10559         * fold-const.c (fold): Only unwiden integer comparisons for equality
10560         and inequality operators, or when the signedness doesn't change.
10561
10562 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
10563
10564         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10565         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
10566         * config/sparc/t-linux: New file.
10567
10568 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
10569
10570         * gcse.c (can_assign_to_reg_p): New function, split out from...
10571         (want_to_gcse_p): ...here.
10572         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
10573         the rhs of a store.
10574
10575 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
10576
10577         * c-typeck.c (same_translation_unit_p): Fix pasto.
10578
10579 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
10580
10581         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
10582         (PARAM_MAX_SCHED_REGION_INSNS): New.
10583         * sched-rgn.c: Include params.h
10584         (MAX_RGN_BLOCKS): Delete.
10585         (MAX_RGN_INSNS): Delete.
10586         (too_large): Return bool.  Convert to PARAM_VALUE.
10587         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
10588         * doc/invoke.texi (param): Document max-sched-region-blocks and
10589         max-sched-region-insns.
10590
10591 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10592
10593         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
10594         for base types.
10595
10596 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10597
10598         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
10599         change.
10600
10601 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
10602
10603         PR c/14069
10604         * c-decl.c (finish_struct): Change type of incorrect flexible array
10605         field into error_mark_node.
10606
10607 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
10608
10609         PR target/14580
10610         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
10611         who are not local for Darwin PIC.
10612
10613 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
10614
10615         * regrename.c (regrename_optimize): Set regs_ever_live for all
10616         registers introduced as replacement.
10617
10618 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10619
10620         PR middle-end/14470
10621         * expr.c (mark_queue): New function.
10622         (emit_insns_enqueued_after_mark): New function replacing
10623         emit_queue.  Clear the body of emitted queued insns.
10624         (emit_queue): Call emit_insns_enqueued_after_mark.
10625         (store_expr): Mark the increment queue on entry.  Emit
10626         only the incrementations queued when expanding the source.
10627
10628 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
10629
10630         * configure.ac: Allow --disable-coverage-flags (for the future benefit
10631         of top level bootstrap, and consistency).  Reindent.
10632         * configure: Regenerate.
10633
10634 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10635
10636         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
10637         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
10638         unnecessary casts.
10639
10640 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
10641
10642         PR target/14291
10643         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
10644         __MINGW32__.
10645
10646 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10647
10648         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
10649         to nonimmediate_operand.
10650         ("*doloop_di"): Likewise.
10651
10652 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
10653
10654         * real.h (struct real_value): Use the same type for all
10655         bitfields.  Rename exp to uexp.
10656         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
10657         Adjust all uses of exp...
10658         * builtins.c: ... here, ...
10659         * emit-rtl.c: ... here, and ...
10660         * real.c: ... and here.
10661
10662 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10663
10664         * pretty-print.c (pp_base_maybe_space): New function.
10665         * pretty-print.h (pp_base_maybe_space): Declare.
10666         (pp_maybe_space): New macro.
10667
10668 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10669
10670         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
10671
10672 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10673
10674         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
10675         of using register multiplication cost.
10676         (expand_mult): Adapt choose_mult_variant call.
10677         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
10678         of MODE; pass appropriate cost bound.  Adjust result when
10679         performing signed multiplication by a negative constant.
10680         Don't use intermediate modes larger than word_mode.
10681
10682 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10683
10684         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
10685         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
10686         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
10687         * explow.c (expr_size): Likewise.
10688         * expr.h (placeholder_list, find_placeholder): Deleted.
10689         * expr.c (store_constructor): Likewise.
10690         (get_inner_reference): Likewise.  Also don't call find_placeholder.
10691         (placeholder_list, find_placeholder): Deleted.
10692         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
10693         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
10694         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
10695         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
10696         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
10697         Likewise.
10698         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
10699         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
10700         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
10701         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
10702         Clean up by using first_rtl_op.
10703         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
10704         (substitute_placeholder_in_expr): New function.
10705         * tree.def (WITH_RECORD_EXPR): Deleted.
10706         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
10707         (substitute_placeholder_in_expr): New.
10708
10709 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
10710
10711         * dojump.c (prefer_and_bit_test): Fix which part of
10712         the and_test is replaced.
10713
10714 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10715
10716         * frontends.texi: Add missing line.
10717
10718 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
10719             Chris Devers  <cdevers@pobox.com>
10720             Joseph S. Myers  <jsm@polyomino.org.uk>
10721
10722         * doc/frontends.texi: Rewrite.
10723         * doc/gcc.texi: Update last modification date.
10724
10725 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
10726
10727         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
10728         message before redirecting the edge.
10729
10730 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10731
10732         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
10733         flag.
10734         * explow.c (force_not_mem): Set REG_POINTER flag according to
10735         MEM_POINTER one.
10736         * rtl.h (MEM_POINTER): New macro.
10737         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
10738         for MEM_POINTER.
10739
10740 2004-03-20  Roger Sayle  <roger@eyesopen.com>
10741
10742         PR target/13889
10743         * cse.c (fold_rtx): Avoid substituting constants into unary
10744         conversion operations.
10745
10746 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10747
10748         * fold-const.c (fold): Replace "expr" with "t".
10749
10750 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
10751
10752         PR c/12373
10753         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
10754         DECL_ORIGINAL_TYPE if there isn't one.
10755
10756 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10757
10758         * fold-const.c (fold): Replace "final_type" with "type".
10759         Remove variable "final_type".
10760
10761 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10762
10763         * fold-const.c (fold): Constify "type".
10764         Replace "TREE_TYPE (t)" with "type".
10765
10766 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10767
10768         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
10769         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
10770         via (*targetm.foo) () with targetm.foo ().
10771
10772 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10773
10774         PR other/14630
10775         * doc/install.texi: Add info directory category and entry.
10776
10777 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10778
10779         * fold-const.c (fold): Replace "t" with "tem" where it is used
10780         as a temporary variable.  Remove "orig_t" and all of its uses.
10781
10782 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10783
10784         * fold-const.c (fold): Remove variable "invert".
10785         Move the handling of relational expressions that can be folded
10786         to a constant ...
10787         (fold_relational_const): ... here.
10788         (tree_expr_nonzero_p): New.
10789
10790 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10791
10792         PR c/14635
10793         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
10794         DEF_GCC_BUILTIN.
10795
10796 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
10797
10798         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
10799         (GTFILES): Add $(srcdir)/dojump.h.
10800         (gt-dojump.h): New dependency.
10801         * dojump.c (and_reg, and_test, shift_test): New static variables.
10802         (prefer_and_bit_test): New function.
10803         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
10804
10805 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10806
10807         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
10808         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
10809         reorg.c, tree.h: Fix comment typos.
10810
10811 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10812
10813         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
10814         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
10815         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
10816         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
10817         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
10818         vmsdbgout.c: Replace calls via (*targetm.foo) () with
10819         targetm.foo ().
10820
10821 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
10822
10823         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
10824         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
10825         always_inline attribute.
10826         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
10827         Treat expansion as completed even if literal argument is
10828         invalid (so that other expansions are not tried in vain).
10829
10830 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10831
10832         * loop-doloop.c (add_test): Replace GEN_INT (0) with
10833         const0_rtx.
10834
10835 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10836
10837         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
10838         ...
10839         (fold_abs_const): ... here.
10840
10841 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10842
10843         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
10844
10845 2004-03-19  Denis Chertykov  <denisc@overta.ru>
10846
10847         PR target/11520
10848         * config/avr/avr.md ("call_insn"): Handle explicit integer
10849         specially.
10850         (call_value_insn): Likewise.
10851
10852 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10853
10854         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
10855
10856 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10857
10858         * fold-const.c (negate_expr): Move the handling of constants
10859         ...
10860         (fold_negate_const): ... here.
10861
10862 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10863
10864         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
10865         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
10866         * tree.c (debug_no_type_hash): Deleted.
10867         (type_hash_canon): Abort if passed a variant.
10868         Check lang_hooks.types.hash_types.
10869         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
10870         (build_array_type): Remove unnecessary allocation of pointer type.
10871         (build_complex_type): Properly qualify resulting type.
10872
10873 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
10874
10875         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
10876
10877 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
10878
10879         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
10880         (expand_mult): ...here.
10881         (extract_high_half): New, split out from expand_mult_highpart.
10882         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
10883         (expand_highpart): Evaluate the cost of a shift/add sequence,
10884         then see if any of the specialized optabs are cheaper.
10885
10886 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
10887
10888         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
10889
10890 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10891
10892         * convert.c (convert_to_real): Add more math builtins.
10893
10894 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10895
10896         * convert.c (convert_to_real): Reformat using switch stmt.
10897
10898 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10899
10900         * c-common.c (pointer_int_sum): Do not complain about using
10901         pointers to pointers-to-members.
10902
10903 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10904
10905         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
10906         have moved to the target hooks structure".
10907
10908 2004-03-18  James E Wilson  <wilson@specifixinc.com>
10909
10910         * config/mips/mips.md (type): Split move into arith and fmove.  Split
10911         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
10912         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
10913         Likewise.
10914         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
10915         Likewise.
10916         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
10917         rm7_fp_quick): Likewise.
10918         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
10919         rm9k_fquick): Likewise.
10920         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
10921         Likewise.
10922         (ir_sr70_icmp): Delete.
10923
10924 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10925
10926         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
10927         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
10928         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
10929         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
10930         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
10931         Protect with proper check.
10932         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
10933         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
10934         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
10935         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
10936         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
10937         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
10938         not TYPE_FIELDS.
10939         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
10940
10941 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
10942
10943         * gcse.c (eliminate_partially_redundant_loads): Reject change if
10944         dest is set between beginning and current insn.
10945
10946 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10947
10948         * c-decl.c (grokdeclarator): Do not complain about redeclaring
10949         visible "static" identifiers "extern" in a local scope.
10950         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
10951         post-increments/decrements.
10952
10953 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
10954
10955         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
10956         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
10957         (xtensa_va_start): Remove assignment to current_function_arg_words.
10958
10959 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
10960
10961         * alias.c (record_set): Detect the case where a register is assigned
10962         a new value that has the same base term as the old one.
10963
10964 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10965
10966         * doloop.c: Removed.
10967         * loop-doloop.c: New file.
10968         * Makefile.in (doloop.o): Remove.
10969         (loop-doloop.o): New.
10970         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
10971         * cfgloopanal.c (get_loop_level): New function.
10972         * loop-iv.c (iv_number_of_iterations): Handle case when loop
10973         is leaved immediatelly.
10974         * loop.c (strength_reduce): Do not call doloop optimization.
10975         * loop.h (LOOP_BCT): Removed.
10976         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
10977         (rest_of_handle_loop2): Call doloop_optimize_loops.
10978         (rest_of_compilation): Test for optimizations moved to
10979         rest_of_handle_loop2.
10980
10981 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
10982
10983         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
10984         for mixed mode.
10985         (rs6000_emit_prologue): Ditto.
10986         (rs6000_emit_epilogue): Ditto.
10987         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
10988         macro for mixed mode.
10989
10990 2004-03-18  Jan Hubicka  <jh@suse.cz>
10991
10992         * predict.c (propagate_freq): Compute correctly frequency of
10993         EXIT_BLOCK.
10994
10995 2004-03-17  Eric Christopher  <echristo@redhat.com>
10996
10997         * builtins.c (apply_args_size): Use reg_raw_mode.
10998         (apply_result_size): Ditto.
10999
11000 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11001
11002         PR target/14620
11003         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
11004
11005 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
11006
11007         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
11008         32-bit builds when defaulting to 32-bit.
11009
11010 2004-03-17  Jan Hubicka  <jh@suse.cz>
11011
11012         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
11013         array.
11014
11015 2004-03-17  James E Wilson  <wilson@specifixinc.com>
11016
11017         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
11018         (hazard_nop): Change type to nop.
11019         (type): Split arith into arith, shift, slt, clz.  Delete darith.
11020         Fix all uses.  Change arith to multi if more than one insn emitted.
11021         * config/mips/5400.md (ir_vr54_arith): Likewise.
11022         * config/mips/5500.md (ir_vr55_arith): Likewise.
11023         * config/mips/7000.md (rm7_int_other): Likewise.
11024         * config/mips/9000.md (rm9k_int): Likewise.
11025         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
11026
11027 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
11028
11029         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
11030         to hold the subtype tree instead of recomputing it several times.
11031
11032 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
11033
11034         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
11035         CC_INVERT.
11036         * config/mn10300/mn10300.md (cc): Remove "invert".
11037
11038 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11039
11040         * builtins.c (integer_valued_real_p): Add builtin rint.
11041         (fold_builtin): Likewise.
11042         * convert.c (convert_to_real): Likewise.
11043
11044         * convert.c (convert_to_real): Fix typos in `long double'
11045         builtins.
11046
11047 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
11048
11049         PR c++/14481
11050         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
11051         generated COMPOUND_EXPRs.
11052
11053 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11054
11055         * config/h8300/t-rtems (h8300-*-rtems*): New.
11056
11057 2004-03-16  Eric Christopher  <echristo@redhat.com>
11058
11059         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
11060
11061 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
11062
11063         * config/i386/i386-protos.h: Add a prototype for
11064         ix86_reverse_condition.
11065         * config/i386/i386.c (ix86_reverse_condition): New.
11066         * config/i386/i386.h (REVERSE_CONDITION): Use
11067         ix86_reverse_condition.
11068         * config/i386/i386.md: Use ix86_reverse_condition instead of
11069         REVERSE_CONDITION.
11070
11071 2004-03-16  J. Brobecker  <brobecker@gnat.com>
11072
11073         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
11074
11075 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11076
11077         PR bootstrap/12974
11078         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
11079
11080 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
11081
11082         * c-common.c (c_common_type_for_mode): Build vector types on
11083         demand.
11084         (handle_mode_attribute): Deprecate using the mode attribute
11085         to create vector types.  Fix indentation.
11086         (vector_type_node_list): Remove.
11087         (handle_vector_size_attribute): Create vector types on demand.
11088         Strip a NON_LVALUE_EXPR from the attribute if there is one.
11089         * c-typeck.c (comptypes): Make vector types compatible if they
11090         have the same underlying mode.
11091         (convert_for_assignment): Use comptypes to convert between
11092         vector types.
11093         * tree.c (build_common_tree_nodes_2): Do not create vector types.
11094         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
11095         vector types.
11096         * tree.h: Remove vector types.
11097         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
11098         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
11099         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
11100         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
11101         * doc/extend.texi (Vector Types): Document how to use the
11102         vector_size attribute to create vectors, rather than mode.
11103
11104         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
11105         * config/i386/emmintrin.h: Likewise.
11106         * config/i386/mmintrin.h: Likewise.
11107         * config/i386/xmmintrin.h: Likewise.
11108         * config/sh/ushmedia.h: Likewise.
11109
11110 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
11111
11112         * config/freebsd-spec.h, config/arc/arc-protos.h,
11113         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
11114         config/arm/linux-gas.h, config/arm/semi.h,
11115         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
11116         config/ia64/freebsd.h, config/mips/7000.md,
11117         config/mips/9000.md, config/ns32k/ns32k-protos.h,
11118         config/sparc/pbd.h: Update copyright.
11119
11120 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11121
11122         PR target/14577
11123         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
11124
11125 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
11126
11127         * combine.c (combine_simplify_rtx): Remove the "last"
11128         parameter and its documentation.  Adjust recursive calls.
11129         (simplify_logical): Always perform the only simplification
11130         controlled by "last", if the simplified expression is
11131         actually different.
11132         (try_combine): Do not pass the "last" parameter to
11133         combine_simplify_rtx.
11134
11135 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
11136
11137         PR target/14599
11138         * config/mips/mips.md (UNSPEC_GP): New constant.
11139         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
11140         an UNSPEC instead of (reg $gp).
11141         (mips16_gp_pseudo_reg): Change accordingly.
11142         (print_operand): Print $gp directly when handling CONST_GP_P.
11143
11144 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11145
11146         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
11147         * longlong.h: Make code 68060 clean when compiling for m68060.
11148
11149 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11150
11151         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
11152         * doc/md.texi: Clarify description of "i" constraint.
11153
11154 2004-03-15  James E Wilson  <wilson@specifixinc.com>
11155
11156         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
11157         Split store into store, fpstore, fpidxstore.  Fix all uses.
11158         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
11159         Likewise.
11160         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
11161         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
11162         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
11163         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
11164         ir_sr70_fstore): Likewise.
11165
11166 2004-03-15  Richard Henderson  <rth@redhat.com>
11167
11168         PR middle-end/14535
11169         * except.c (collect_one_action_chain): Record action for cleanup
11170         outer of exception spec.
11171
11172 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
11173
11174         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11175         Fix the check for abort and only do the mmap if we can.
11176
11177 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
11178
11179         * config/sparc/sparc.h: Rework comments about the code model
11180         in 64-bit environment and the mode 'Pmode'.
11181         * doc/invoke.texi (SPARC options): Rework description of the
11182         different code models supported in 64-bit environment.
11183
11184 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11185
11186         * defaults.h (REVERSIBLE_CC_MODE): Define.
11187         * jump.c (reversed_comparison_code_parts): Don't check if
11188         REVERSIBLE_CC_MODE is defined.
11189
11190 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11191
11192         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
11193         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
11194         hosthooks.h, params.h, ra-colorize.c, web.c,
11195         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
11196         config/avr/avr-protos.h, config/avr/avr.md,
11197         config/fr30/fr30-protos.h, config/fr30/fr30.md,
11198         config/h8300/fixunssfsi.c, config/i386/darwin.h,
11199         config/i386/freebsd.h, config/i386/freebsd64.h,
11200         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
11201         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
11202         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
11203         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
11204         config/pa/pa64-regs.h, config/rs6000/aix41.h,
11205         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
11206         config/sparc/aout.h, config/sparc/freebsd.h,
11207         config/sparc/litecoff.h, config/vax/vax-protos.h,
11208         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
11209         copyright.
11210
11211 2004-03-15  Paul Brook  <paul@codesourcery.com>
11212
11213         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
11214
11215 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11216
11217         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
11218         (pp_c_cv_qualifier): Document.
11219         (pp_c_space_for_pointer_operator): Likewise.
11220         (pp_c_integer_constant): Likewise.
11221         (pp_c_identifier): Likewise.
11222         (pp_c_init_declarator): Don't print function body.
11223
11224 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11225
11226         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
11227         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
11228         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
11229         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
11230         wording and grammar.
11231
11232 2004-03-14  Roger Sayle  <roger@eyesopen.com>
11233
11234         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
11235         with lang_hooks.foo ().
11236         * builtins.c (expand_builtin_va_arg): Likewise.
11237         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
11238         c_common_type_for_mode, c_common_nodes_and_builtins,
11239         handle_mode_attribute, handle_vector_size_attribute): Likewise.
11240         * c-convert.c (convert): Likewise.
11241         * c-format.c (check_format_types): Likewise.
11242         * c-objc-common.c (c_tree_printer): Likewise.
11243         * c-typeck.c (build_unary_op, build_conditional_expr,
11244         build_binary_op): Likewise.
11245         * calls.c (try_to_integrate, expand_call,
11246         emit_library_call_value_1): Likewise.
11247         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
11248         Likewise.
11249         * cgraphunit.c (record_call_1, cgraph_analyze_function,
11250         cgraph_expand_function): Likewise.
11251         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
11252         * coverage.c (build_fn_info_type, build_ctr_info_type,
11253         build_gcov_info, create_coverage): Likewise.
11254         * dbxout.c (dbxout_init): Likewise.
11255         * diagnostic.c (diagnostic_report_current_function): Likewise.
11256         * dojump.c (do_jump): Likewise.
11257         * dwarf2out.c (dwarf2_name): Likewise.
11258         * except.c (init_eh): Likewise.
11259         * explow.c (expr_size, int_expr_size): Likewise.
11260         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
11261         Likewise.
11262         * expr.c (store_expr, store_constructor, safe_from_p,
11263         expand_expr_real, do_store_flag, try_casesi): Likewise.
11264         * function.c (push_function_context_to, pop_function_context_from,
11265         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
11266         put_var_into_stack, allocate_struct_function, current_function_name):
11267         Likewise.
11268         * integrate.c (copy_decl_for_inlining, expand_inline_function):
11269         Likewise.
11270         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
11271         lhd_print_error_function): Likewise.
11272         * opts.c (handle_option, decode_options): Likewise.
11273         * passes.c (open_dump_file): Likewise.
11274         * print-tree.c (print_node): Likewise.
11275         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
11276         expand_decl_cleanup, emit_case_nodes): Likewise.
11277         * stor-layout.c (variable_size): Likewise.
11278         * toplev.c (announce_function, wrapup_global_declarations,
11279         check_global_declarations, compile_file, default_tree_printer,
11280         process_options, lang_dependent_init, finalize): Likewise.
11281         * tree-dump.c (dequeue_and_dump): Likewise.
11282         * tree-inline.c (remap_decl, remap_block, copy_body_r,
11283         initialize_inlined_parameters, declare_return_variable,
11284         inlinable_function_p, expand_call_inline, optimize_inline_calls,
11285         walk_tree, copy_tree_r): Likewise.
11286         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11287         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
11288         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
11289         variably_modified_type_p, dump_tree_statistics): Likewise.
11290         * varasm.c (assemble_variable, compare_constant, copy_constant,
11291         force_const_mem, compute_reloc_for_constant, output_constant,
11292         output_addressed_constants, initializer_constant_valid_p): Likewise.
11293
11294 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
11295
11296         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
11297
11298 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
11299
11300         * doc/install.texi: Reflect autoconf and automake version for
11301         libffi. Update autoconf version to 2.59.
11302
11303 2004-03-13  Roger Sayle  <roger@eyesopen.com>
11304
11305         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
11306         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
11307         make_range, build_range_check, fold_range_test, unextend,
11308         constant_boolean_node, fold_binary_op_with_conditional_arg,
11309         fold_truthop, fold_mathfn_compare, fold_inf_compare,
11310         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
11311         with lang_hooks.foo ().
11312
11313 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
11314
11315         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
11316
11317 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
11318
11319         * doc/install.texi: Note status of -fnew-ra.
11320
11321 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11322
11323         PR middle-end/14470
11324         * expr.c (store_expr): Call emit_queue before generating the move
11325         from the temporary to the original target.  Protect the temporary
11326         from emit_queue.
11327
11328 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
11329
11330         PR target/14533
11331         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
11332         other than UNSPEC_GOTOFF.
11333
11334 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
11335
11336         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
11337         to arm_legitimate_index_p.  Update all callers with SET as default
11338         value.
11339         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
11340         range if OUTER is a sign-extend operation on QImode.  Correctly
11341         reject shift operations on sign-extended QImode addresses.
11342         (bad_signed_byte_operand): Delete.
11343         (arm_extendqisi_mem_op): New function.
11344         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
11345         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
11346         constraints.
11347         (CONSTRAINT_LEN): New.
11348         (EXTRA_CONSTRAINT): Delete.  Replace with...
11349         (EXTRA_CONSTRAINT_STR): ... this.
11350         (PREDICATE_CODES): Remove bad_signed_byte_operand.
11351         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
11352         is now always default.
11353         (define_splits for bad sign-extend loads): Delete.
11354         (arm_extendqisi, arm_extendqisi_v5): Likewise.
11355         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
11356         Rework 'U' constraint to 'Uv'.
11357         * arm-protos.h: Remove bad_signed_byte_operand.  Add
11358         arm_extendqisi_mem_op.
11359         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
11360         Add Uq constraint.
11361
11362 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
11363
11364         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
11365         with targetm version.
11366
11367         PR target/14567
11368         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
11369         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
11370         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
11371         Update all users of RS6000_ARG_SIZE.
11372         (function_arg_advance): Count fregno using mode size.
11373         (function_arg): Handle long double split over regs and memory.
11374         (function_arg_partial_nregs): Likewise.
11375         (rs6000_va_arg): Repackage complex args.
11376
11377 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
11378
11379         PR target/14047
11380         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
11381         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
11382         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
11383
11384 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
11385
11386         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
11387         prototype.
11388         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
11389         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
11390
11391 2004-03-12  Andrew Pinski  <apinski@apple.com>
11392
11393         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11394         Use ret instead of result. Use addr instead of base.
11395
11396 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
11397
11398         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
11399         fixes required by libstdc++ and update installation instructions
11400         for libstdc++.a.
11401
11402 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
11403
11404         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
11405         leading '@' on fastcall symbols before stripping suffix.
11406
11407 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11408
11409         * combine.c (unmentioned_reg_p): New function to check whether an
11410         expression is a "specialization" of another, i.e. that there are
11411         no registers or memory references mentioned in the first that don't
11412         appear in the second.
11413         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
11414         (combine_instructions): Also try combining instructions using the
11415         REG_EQUAL note from a preceding log-linked instruction.
11416
11417 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11418
11419         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
11420
11421 2004-03-12  Matt Austern  <austern@apple.com>
11422
11423         * target.h (struct gcc_target): New target hook, unwind_label.
11424         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
11425         * output.h (default_emit_unwind_label): New function.
11426         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
11427         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
11428         (TARGET_SUPPORTS_HIDDEN): New target macro.
11429         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
11430         that corresponds to this FDE.
11431         (FRAME_BEGIN_LABEL): Allow target to override default label.
11432         (output_call_frame_info): If FDEs are linknonce, then use extra
11433         indirection for FDE encoding, output a label for each FDE, and
11434         output an empty label for each function without an FDE.
11435         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
11436         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
11437         decls with DECL_ONE_ONLY set, if that macro is defined.
11438         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
11439         for a SUPPORTS_ONE_ONLY target.
11440         * config/darwin-protos.h (darwin_unique_section): Declare.
11441         (darwin_asm_named_section): Likewise.
11442         (darwin_section_type_flags): Likewise.
11443         (darwin_non_lazy_pcrel): Likewise.
11444         (darwin_emit_unwind_label): Likewise.
11445         (darwin_make_decl_one_only): Likewise.
11446         * config/darwin.c (machopic_finish): Get rid of tweak that
11447         eliminate stubs for symbols that are defined.
11448         (darwin_encode_section_info): Don't treat weak functions as defined.
11449         (darwin_make_decl_one_only): Define.
11450         (darwin_asm_named_section): Likewise.
11451         (darwin_section_type_flags): Likewise.
11452         (darwin_unique_section): Likewise.
11453         (darwin_emit_unwind_label): Likewise.
11454         (darwin_non_lazy_pcrel): Likewise.
11455         (darwin_asm_output_dwarf_delta): Difference between two labels is
11456         local only if both labels are local.
11457         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
11458         (ASM_MAKE_LABEL_LINKONCE): Likewise.
11459         (TARGET_SUPPORTS_HIDDEN): Likewise.
11460         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
11461         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
11462         (FRAME_BEGIN_LABEL): Likewise.
11463         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
11464         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11465         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
11466         (TARGET_ASM_UNIQUE_SECTION): Define.
11467         (EH_FRAME_SECTION_NAME): Define.
11468         (EH_FRAME_SECTION_ATTR): Likewise.
11469         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
11470         (TARGET_ASM_NAMED_SECTION): Likewise.
11471         (TARGET_SECTION_TYPE_FLAGS): Likewise.
11472         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
11473         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
11474         TARGET_ASM_EMIT_UNWIND_LABEL.
11475
11476 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11477
11478         * builtins.c (expand_builtin_mathfn): Add pow10* to the
11479         existing exp10* case.
11480         (expand_builtin): Likewise.
11481
11482 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11483
11484         * doc/tm.texi (registers) <Values in Registers>: Add
11485         entry for REGMODE_NATURAL_SIZE.
11486
11487 2004-03-12  Richard Henderson  <rth@redhat.com>
11488
11489         PR target/14547
11490         * target.h (struct gcc_target): Move calls substructure before
11491         booleans.  Add split_complex_arg.
11492         * function.c (assign_parms, split_complex_args): Use it.
11493         * calls.c (expand_call): Likewise.
11494         (split_complex_values): Likewise.  Check for splittable types
11495         before allocating memory.
11496         (split_complex_types): Likewise.
11497         * system.h (SPLIT_COMPLEX_ARGS): Poison.
11498         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
11499         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
11500         * config/alpha/alpha.c (alpha_split_complex_arg): New.
11501         (TARGET_SPLIT_COMPLEX_ARG): New.
11502         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
11503         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
11504         (rs6000_override_options): Zap it for non-AIX.
11505         (rs6000_function_value): Use targetm.calls.split_complex_arg.
11506         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
11507         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
11508         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
11509         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
11510         SPLIT_COMPLEX_ARGS entry.
11511
11512 2004-03-11  Richard Henderson  <rth@redhat.com>
11513
11514         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
11515         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
11516         (alpha_emit_xfloating_arith): Update to match.
11517         (alpha_emit_xfloating_compare): Likewise.
11518         (alpha_emit_xfloating_cvt): Likewise.
11519         (alpha_emit_xfloating_libcall): Take already built symbol,
11520         mark call const.
11521         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
11522         op1 in a register.
11523
11524 2004-03-11  Richard Henderson  <rth@redhat.com>
11525
11526         PR target/14539
11527         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
11528
11529         * simplify-rtx.c (simplify_relational_operation): Fix typo.
11530
11531 2004-03-11  Richard Henderson  <rth@redhat.com>
11532
11533         PR middle-end/14477
11534         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
11535
11536 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11537
11538         PR target/14262
11539         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
11540         defined, pass small BLKmode values in registers in the low-order part.
11541
11542 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11543
11544         * combine.c (if_then_else_cond): Check for NULL return value of
11545         simplify_gen_subreg.
11546
11547 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11548
11549         PR target/14496
11550         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
11551         TARGET_SINGLE_FLOAT.
11552
11553 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
11554
11555         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
11556         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
11557         * config/ia64/ia64.c (ia64_init_libfuncs): New.
11558         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
11559
11560 2004-03-11  Roger Sayle  <roger@eyesopen.com>
11561
11562         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
11563         -((int)X>>C) where C is an integer constant one bit less than the
11564         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
11565         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
11566
11567         * simplify-rtx.c (simplify_unary_operation): Also implement the
11568         above transformations at the RTL level.
11569
11570 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
11571
11572         * real.c (encode_ibm_extended): Do round low word.
11573
11574 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
11575
11576         * config/arm/arm.md (is_xscale): Comment this attribute and move
11577         it a bit further up in the file, closer to related attributes.
11578
11579 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
11580
11581         * config/host-solaris.c (sol_gt_pch_use_address): Add
11582         missing terminating marker to comment.
11583
11584 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11585
11586         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
11587         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
11588         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
11589         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
11590         move_operand as source predicate in all cases.
11591         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
11592         Test reg_or_0_operand.  Use move_operand as source predicate.
11593         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
11594         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
11595         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
11596         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
11597         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
11598         Use move_operand as source predicate.  Remove 'K' constraint.
11599         (*movqi_internal): Likewise movqi_internal.
11600         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
11601         reg_or_0_operand.  Use move_operand as source predicate.
11602         (*movsf_softfloat): Likewise movsf_internal2.
11603         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
11604         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
11605         (*movdf_softfloat): Likewise movdf_internal2.
11606         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
11607         for DImode if !TARGET_64BIT.
11608         (mips_legitimize_move): Simplify accordingly.
11609
11610 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11611
11612         PR/14362
11613         * var-tracking.c (struct variable_def): Added field refcount.
11614         (variable_htab_free): Decrease the refcount and delete variable
11615         only if there are no more references.
11616         (unshare_variable): New function.
11617         (vars_copy_1): Increase refcount instead of copying the variable.
11618         (variable_union): Share the variables where possible, unshare
11619         the variables if needed.
11620         (variable_different_p): Return false if var1 and var2 are
11621         the same structure.
11622         (variable_was_changed): Init the refcount of new variable.
11623         (set_frame_base_location): Unshare variable if needed.
11624         (set_variable_part): Init the refcount of new variable.
11625         Unshare the variables if needed.
11626         (delete_variable_part): Unshare the variables if needed.
11627         (emit_notes_for_differences_1): Init the refcount of new variable.
11628         (vt_add_function_parameters): Do not add function parameters to
11629         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
11630         (vt_initialize): Do not add frame_base_decl to IN set of
11631         ENTRY_BLOCK_PTR because it is unused anyway.
11632
11633 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11634
11635         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
11636         (vars_copy): Likewise.
11637         (variable_union): Likewise.
11638         (set_variable_part): Likewise.
11639         (delete_variable_part): Likewise.
11640
11641 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
11642
11643         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
11644         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
11645         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
11646         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
11647         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
11648         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
11649         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
11650         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
11651         config/stormy16/stormy16.c: Fix comment typos and formatting.
11652
11653 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
11654
11655         * configure: Regenerate, since I forgot to while committing Paolo's
11656         changes.
11657
11658 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
11659
11660         PR ada/14131
11661         Move language detection to the top level.
11662         * configure.ac: Remove code to detect languages,
11663         it now lives exclusively in the top level.
11664         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
11665         top level, renamed to ACX_PROG_GNAT.
11666
11667 2004-03-10  Richard Henderson  <rth@redhat.com>
11668
11669         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
11670         extra arguments.
11671         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
11672         and host_xmake_file fragments.
11673         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
11674         (gt_pch_restore): Similarly for gt_pch_use_address.
11675         (default_gt_pch_get_address): New.
11676         (mmap_gt_pch_get_address): Split out of gt_pch_save.
11677         (default_gt_pch_use_address): Split out of gt_pch_restore.
11678         (mmap_gt_pch_use_address): Likewise.
11679         * hooks.c (hook_voidp_size_t_null): Remove.
11680         (hook_bool_voidp_size_t_false): Remove.
11681         * hooks.h: Likewise.
11682         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
11683         default_ or mmap_ definitions.
11684         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
11685         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
11686         and gt_pch_use_address.
11687         * config/host-linux.c, config/host-solaris.c: New files.
11688         * config/x-linux, config/x-solaris: New files.
11689         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
11690         Update for changed definition.
11691         (darwin_rs6000_gt_pch_use_address): Likewise.
11692         * doc/hostconfig.texi: Update docs.
11693
11694 2004-03-10  Richard Henderson  <rth@redhat.com>
11695
11696         PR c/14517
11697         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
11698         except for pedantic c90 mode.
11699
11700 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
11701
11702         * configure.ac: Bump AC_PREREQ to 2.59.
11703         * configure: Regenerate.
11704
11705 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
11706
11707         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
11708         (exp10_optab, exp2_optab): Define corresponding macros.
11709         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
11710         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
11711         using exp10?f2 and exp2?f2 patterns.
11712         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
11713         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
11714         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
11715         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11716
11717         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
11718         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
11719         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
11720
11721 2004-03-10  Anthony Green  <green@redhat.com>
11722
11723         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
11724
11725 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11726
11727         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
11728         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
11729         __LONGDOUBLE128.
11730         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
11731         TARGET_OS_AIX_CPP_BUILTINS.
11732         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
11733         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
11734         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
11735         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
11736         previous change.
11737
11738 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11739
11740         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
11741
11742 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11743
11744         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11745         __LONGDOUBLE128 on AIX.
11746
11747 2004-03-10  Andrew Haley  <aph@redhat.com>
11748
11749         PR optimization/14381
11750         * function.c (expand_function_end): Emit a blockage insn before
11751         the epilogue when -fnon-call-exceptions is used.
11752
11753         * except.c (expand_start_all_catch): Make comment more accurate.
11754
11755 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11756
11757         PR target/14480
11758         * config/rs6000/t-rtems: Add missing file on branch.
11759
11760 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
11761
11762         * dbxout.c (dbxout_symbol_location): Do not output references
11763         to optimized-out constant pool symbols.
11764
11765 2004-03-10  Andreas Schwab  <schwab@suse.de>
11766
11767         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
11768         twon34_r.
11769
11770 2004-03-09  James E Wilson  <wilson@specifixinc.com>
11771
11772         * alias.c (alias_sets_might_conflict_p): New.
11773         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
11774         * common.opt (Wstrict-aliasing=): New.
11775         * flags.h (warn_strict_aliasing): Change type to int.
11776         * opts.c (warn_strict_aliasing): Change type to int.
11777         (common_handle_option): Handle OPT_Wstrict_aliasing_.
11778         * tree.h (alias_sets_might_conflict_p): Declare it.
11779         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
11780
11781 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
11782
11783         PR bootstrap/12371
11784         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
11785         (CALL_USED_REGISTERS): Likewise.
11786         (REG_CLASS_CONTENTS): Likewise.
11787         (REG_ALLOC_ORDER): New.
11788         (REGNO_REG_CLASS): Use regno_reg_class.
11789         * config/m68k/m68k.c: Add regno_reg_class array.
11790
11791 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
11792
11793         * config/ia64/ia64.md (divsi3): Fix algorithm.
11794           (udivsi3): Ditto.
11795           (setf_exp_xf): Remove '*' from name.
11796         * testsuite/gcc.dg/20040309-1.c: New test.
11797
11798 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
11799
11800         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
11801         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
11802         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
11803         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
11804         (sparc_aout_select_rtx_section): Don't check
11805         SUNOS4_SHARED_LIBRARIES.
11806         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
11807
11808 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
11809
11810         PR other/14474
11811         * doc/md.texi (Pattern Ordering, Dependent Patterns)
11812         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
11813         INTERNALS".
11814
11815 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11816
11817         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
11818         (LIBGCC_SPEC): Update to match.
11819
11820 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11821
11822         * c-decl.c (last_function_parms, last_function_parm_tags)
11823         (last_function_parm_others, current_function_parms)
11824         (current_function_parm_tags, current_function_parm_others):
11825         Delete.
11826         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
11827         New macros.
11828         (grokdeclarator): For function definitions, save the arg-info
11829         block from the declarator in DECL_ARGUMENTS.
11830         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
11831         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
11832         contains only PARM_DECLs.  Improve diagnostics.
11833         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
11834         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
11835         (store_parm_decls_newstyle): Take the function to operate on,
11836         and an arg-info block, as arguments; don't get anything from
11837         current_function_* globals.
11838         (store_parm_decls_oldstyle): Likewise.
11839         (store_parm_decls): Pass fndecl and its arg-info block down to
11840         store_parm_decls_newstyle/oldstyle.  Send functions with empty
11841         argument lists through store_parm_decls_newstyle to reduce
11842         overhead.
11843         (pushdecl): Comment on the problems with the call to copy_node.
11844         Clear DECL_ARGUMENTS of the old node after copying it, if it
11845         is an arg-info block instead of a chain of decls.
11846         (start_function): Do not manipulate current_function_parm* or
11847         last_function_parm*.
11848
11849 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11850             Andrew Pinski  <pinskia@physics.uc.edu>
11851
11852         * ifcvt.c (noce_try_sign_mask): New function to transform
11853         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
11854         (noce_process_if_block): Call noce_try_sign_mask.
11855
11856 2004-03-09  Andrew Pinski  <apinski@apple.com>
11857
11858         * c-typeck.c (tagged_types_tu_compatible_p):
11859         Fix typo.
11860
11861 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11862
11863         * simplify-rtx.c (simplify_const_relational_operation): New function
11864         renamed from simplify_relational_operation.
11865         (simplify_relational_operation): Change prototype to accept an
11866         additional mode argument.  Call simplify_const_relational_operation.
11867         (simplify_gen_relational): Update simplify_relational_operation call.
11868         (simplify_ternary_operation): Update simplify_relational_operation
11869         subroutine call to use simplify_const_relational_operation instead.
11870
11871         * rtl.h (simplify_const_relational_operation): Prototype here.
11872         (simplify_relational_operation): Add addtional mode argument.
11873
11874         * combine.c (combine_simplify_rtx): Update calls to
11875         simplify_relational_operation.
11876         (simplify_set): Likewise.
11877         (gen_binary): Likewise.
11878         * cse.c (fold_rtx): Likewise.
11879         * dojump.c (compare_from_rtx): Likewise.
11880         (do_compare_rtx_and_jump): Likewise.
11881         * integrate.c (subst_constants): Likewise.
11882         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
11883
11884 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11885
11886         * config/m32r/m32r.md: Remove all define_peephole's.
11887
11888 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
11889
11890         * config/rs6000/rs6000.md: Remove trailing whitespace.
11891
11892 2004-03-08  Eric Christopher  <echristo@redhat.com>
11893
11894         * Makefile.in (site.exp): Add libiconv variable definition.
11895
11896 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
11897
11898         * configure: Regenerate for config/accross.m4 correction.
11899
11900 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11901
11902         PR target/14480
11903         * config/rs6000/t-rtems: Add missing file on branch.
11904
11905 2004-03-08  Roger Sayle  <roger@eyesopen.com>
11906
11907         PR middle-end/14289
11908         * c-typeck.c (c_mark_addressable): A register variable should
11909         be considered global if its not automatic, i.e. TREE_PUBLIC,
11910         TREE_STATIC or DECL_EXTERNAL.
11911         * function.c (put_var_into_stack): Call abort when placing a
11912         hard register into the stack, if x_parm_reg_stack_loc is NULL.
11913
11914 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
11915
11916         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
11917         ("*extendqisi2_short_displ"): Likewise.
11918
11919 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11920
11921         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
11922         (comp_operator): Likewise.
11923         * config/pdp11/pdp11-protos.h: Remove corresponding
11924         prototypes.
11925
11926 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
11927
11928         * expr.c (highest_pow2_factor_for_type): Rename into
11929         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
11930         TYPE_ALIGN when the target is a COMPONENT_REF.
11931         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
11932
11933 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11934
11935         * config/rs6000/rs6000.c: Formatting fix.
11936         (legitimate_offset_address_p): Correct offset range check.
11937
11938         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
11939         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
11940         and MASK_STRING.
11941
11942 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11943
11944         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
11945         for little endian.
11946         ("ashrdi3_no_power"): Disable for little endian.
11947         (ashrdi3): Same.
11948
11949 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11950
11951         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
11952         builtins.
11953
11954 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
11955
11956         PR target/14471
11957         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
11958         case, checking for -no-mul-bug-abort option.
11959         * configure, config.in: Regenerate.
11960         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
11961         and -mno-mul-bug-workaround.
11962         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
11963         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
11964         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
11965         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
11966         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
11967         sure mulu.d is not last on cache-line.
11968         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
11969         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
11970         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
11971         (TARGET_SWITCHES): New options -mmul-bug-workaround and
11972         -mno-mul-bug-workaround.
11973         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
11974         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
11975         * config/cris/cris.c (cris_operand_extend_operator): Clarify
11976         relation to MULT in head comment.
11977         (cris_op_str): Abort for MULT.
11978         (cris_print_operand) <case '!'>: New case.
11979
11980 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11981
11982         PR debug/11983
11983         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
11984         dw_val_class_vec.  Replace use throughout file.
11985         (dw_float_const): Delete.
11986         (dw_vec_const): New.
11987         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
11988         throughout file.
11989         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
11990         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
11991         (size_of_die): Adjust dw_val_class_vec sizing.
11992         (output_die): Output dw_val_class_vec.
11993         (insert_int, extract_int, insert_float): New functions.
11994         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
11995         Handle CONST_VECTOR.
11996         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
11997
11998 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11999
12000         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
12001         AltiVec abi cannot co-exist.
12002
12003         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
12004
12005 2004-03-07  Jan Hubicka  <jh@suse.cz>
12006
12007         * except.c (emit_to_new_bb_before):  Break fallthru edges.
12008
12009 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
12010
12011         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
12012         ("*lshrsi3"): Also accept an immediate for 68HC12.
12013         ("*ashrsi3_const"): Likewise.
12014         ("*ashrsi3"): Likewise.
12015         ("*ashlsi3_const"): Likewise.
12016         ("*ashlsi3"): Likewise.
12017         ("cmphi_1_hc12"): Compare two hard register by pushing them and
12018         comparing with a pop; don't use a split for that.
12019         ("cmphi split"): Disable compare split for 68HC12.
12020
12021         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
12022         the status operands if they have side effects.
12023
12024 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
12025
12026         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
12027         definition.
12028         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
12029         config/h8300/h8300.h, config/ia64/ia64.h,
12030         config/mcore/mcore.h, config/mmix/mmix.h,
12031         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
12032         config/stormy16/stormy16.h, config/v850/v850.h,
12033         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
12034         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
12035         definition.
12036
12037 2004-03-07  Roger Sayle  <roger@eyesopen.com>
12038
12039         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
12040         <XOR_EXPR>: Fold x ^ x as zero.
12041         <AND_EXPR>: Fold x & x as x.
12042
12043 2004-03-07  Roger Sayle  <roger@eyesopen.com>
12044
12045         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
12046         "foo++ == const" into "++foo == const+incr".
12047
12048 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
12049
12050         * config/mips/mips.c (mips_in_small_data_p): Return false if
12051         TARGET_ABICALLS.
12052
12053 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
12054
12055         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
12056         the stack register.
12057         (expand_prologue): Don't make an interrupt or a trap handler a far
12058         symbol.
12059         (m68hc11_initial_elimination_offset): Likewise.
12060
12061 2004-03-06  Richard Henderson  <rth@redhat.com>
12062
12063         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
12064
12065 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12066
12067         * config/ns32k/ns32k-protos.h: Add a prototype for
12068         ns32k_notice_update_cc.
12069         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
12070         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
12071         ns32k_notice_update_cc.
12072
12073 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12074
12075         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
12076         "*load_multiple_si"): Allow only if reload_completed.
12077         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
12078         Likewise.
12079
12080 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12081
12082         * config/vax/vax-protos.h: Add a prototype for
12083         vax_notice_update_cc.
12084         * config/vax/vax.c (vax_notice_update_cc): New.
12085         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
12086         vax_notice_update_cc.
12087
12088 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
12089
12090         * collect2.c (main): Only export initfunc and finifunc if
12091         LD_INIT_SWITCH not defined.
12092         (scan_prog_file): Only export constructors and destructors if
12093         LD_INIT_SWITCH not defined.  Only export symbols not found in
12094         shared objects.
12095
12096 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12097
12098         * pa.md (icacheflush): Reorder operands to make match_scratch operand
12099         last.
12100         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
12101         from calls to gen_icacheflush.
12102
12103 2004-03-06  Richard Henderson  <rth@redhat.com>
12104
12105         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
12106         (TARGET_LONG_DOUBLE_128): New.
12107         (TARGET_SWITCHES): Add long-double-{128,64}.
12108         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
12109         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
12110         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
12111         (WIDEST_HARDWARE_FP_SIZE): New.
12112         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
12113         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
12114         if TARGET_VAX_FLOAT.
12115         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
12116         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
12117
12118 2004-03-06  Richard Henderson  <rth@redhat.com>
12119
12120         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
12121         botched rtx class conversion.
12122
12123 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12124
12125         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
12126         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
12127
12128         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
12129         macros.
12130         * fold-const.c (fold_mathfn_compare, fold): Likewise.
12131
12132 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12133
12134         PR target/14343
12135         * config/i386/i386.md (movv2di_internal): Conditionalize on
12136         TARGET_SSE, not TARGET_SSE2.
12137
12138 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
12139
12140         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
12141         duplicated line.
12142
12143 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12144
12145         * builtins.c: Consistently use logN not log* in comments.
12146
12147 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12148
12149         * rtl.h (mem_expr_equal_p): Function prototype added.
12150         * cfgcleanup.c (merge_memattrs): New function.
12151         (flow_find_cross_jump): Call merge_memattrs for matching insns.
12152         * emit-rtl.c (mem_expr_equal_p): New function.
12153
12154 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
12155
12156         * objc/objc-act.c (synth_module_prologue): Const-qualify
12157         objc_selector type if using the GNU runtime; fix generated
12158         signatures for objc_msg_lookup and objc_msg_lookup_super
12159         to match what GNU ObjC headers provide; reformat and clean up.
12160         (synth_self_and_ucmd_args): Use previously constructed (and
12161         hence possibly const-qualified) objc_selector type.
12162
12163 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12164
12165         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
12166
12167 2004-03-05  Jason Merrill  <jason@redhat.com>
12168
12169         * tree.h (TYPE_HASH): Use TYPE_UID.
12170         (TREE_HASH): New macro with old definition of TYPE_HASH.
12171         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
12172         (build_array_type, build_function_type): Likewise.
12173         (build_method_type_directly): Likewise.
12174         (build_offset_type, build_complex_type): Likewise.
12175         (type_hash_list, attribute_hash_list): Likewise. Now static.
12176         * except.c: s/TYPE_HASH/TREE_HASH/.
12177
12178 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
12179
12180         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
12181         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
12182         __va_ndx by 2 words when referencing an argument on the stack.
12183         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
12184         words when an arg on the stack is first seen.
12185
12186 2004-03-05  Paul Brook  <paul@codesourcery.com>
12187
12188         * arm.h (ARM_FLAG_VFP): Remove.
12189         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
12190         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
12191
12192 2004-03-05  Paul Brook  <paul@codesourcery.com>
12193
12194         * function.c (assign_parms): Include pretend alignment offset.
12195
12196 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12197
12198         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
12199         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
12200
12201 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
12202
12203         * configure.ac: When passing --enable-languages to subdir
12204         configure when host != build, make sure we don't pass an empty
12205         value.
12206         * configure: Regenerate.
12207
12208 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
12209
12210         PR 13577
12211         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
12212         options.
12213
12214 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12215
12216         * simplify-rtx.c (simplify_relational_operation): If
12217         flag_wrapv is set, do not move terms between the two
12218         side of a relational operator.
12219
12220 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12221
12222         * rtlanal.c: Include target.h and output.h
12223         (rtx_cost, address_cost, default_address_cost): Move from...
12224         * cse.c (rtx_cost, address_cost, default_address_cost):
12225         ... this file.
12226         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
12227         * Makefile.in: Adjust dependencies.
12228
12229 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
12230
12231         * cse.c (cse_end_of_basic_block): Make static.
12232         * local-alloc.c (function_invariant_p): Move to
12233         reload1.c.
12234         * loop.c (libcall_other_reg, record_excess_regs):
12235         Make static.
12236         * reload1.c (function_invariant_p): Moved here
12237         from local-alloc.c, made static.
12238         * rtl.h (cse_end_of_basic_block, function_invariant_p,
12239         libcall_other_reg, record_excess_regs): Remove
12240         declarations.
12241
12242 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12243
12244         * config/m32r/m32r.c (signed_comparison_operator): Add a
12245         missing parenthesis.
12246
12247 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
12248
12249         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
12250         going to call mmap again.  Read the file into the right place.
12251         Give a fatal error if we have to relocate.
12252
12253 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
12254
12255         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
12256         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
12257
12258 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
12259
12260         PR other/14354
12261         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
12262         round the same.  When rounding, clear bits that would cause a
12263         second rounding in pack_d.
12264         (_fpmul_parts): Ditto.  Remove #if 0:d code.
12265
12266 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
12267
12268         PR c++/14425, c++/14426
12269         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
12270         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
12271         Change C++ definitions to accept a 'const int' argument;
12272         the prototypes already do.
12273         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
12274         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
12275         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
12276         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
12277         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
12278         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
12279         end in ..._int; change them to accept an int instead of a char
12280         as the last parameter.
12281
12282 2004-03-04  Phil Edwards  <phil@codesourcery.com>
12283
12284         * genmultilib:  Change '=' to '-' when translating option names
12285         to directory names.
12286
12287 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12288
12289         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
12290         stack slot for temp used for result of BLKmode but in integral mode.
12291
12292 2004-03-04  Jan Hubicka  <jh@suse.cz>
12293
12294         * reload.c (find_reloads): Reorganize if seqeunce to switch.
12295
12296         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
12297         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
12298
12299 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
12300
12301         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
12302         * testsuite/gcc.dg/20040303-1.c: New test.
12303
12304 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12305
12306         * ppro.md: Rewrite as a DFA pipeline description.
12307         * i386.md: Remove all uses of the ppro_uops attribute.
12308         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
12309         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
12310         ix86_sched_reorder, ix86_variable_issue,
12311         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
12312         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
12313         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
12314         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
12315         * athlon.md (athlon_ssecmp_load): Fix comment
12316
12317 2004-03-04  Stuart Hastings  <stuart@apple.com>
12318
12319         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
12320
12321 2004-03-04  Stuart Hastings  <stuart@apple.com>
12322
12323         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
12324         686, tell Darwin assembler to allow prefetch insns, non-empty def
12325         of SUBTARGET_OPTION_TRANSLATE_TABLE.
12326
12327 2004-03-04  DJ Delorie  <dj@redhat.com>
12328
12329         PR optimization/14282
12330         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
12331         between a call and the assignment of its return value.
12332
12333 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12334
12335         * config/h8300/h8300.c: Put a comment for every function.
12336
12337 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12338
12339         * config/h8300/h8300.md: Add comments about peephole2's.
12340
12341 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12342
12343         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
12344
12345 2004-03-04  Jan Hubicka  <jh@suse.cz>
12346
12347         * cfgcleanup.c (thread_jump): Update call of cselib_init.
12348         * cselib.c (cselib_record_memory): New static variable.
12349         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
12350         Give up on memories when asked for.
12351         (cselib_init): Accept new argument.
12352         * cselib.h (cselib_init): Update prototype.
12353         * gcse.c (local_cprop_pass): Update call of cselib_init.
12354         * loop.c (load_mems): Update call of cselib_init.
12355         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
12356         * sched-deps.c (sched_analyze): Update call of cselib_init.
12357
12358 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12359             GP <gp@qnx.com>
12360
12361         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
12362         when compiling PIC.
12363
12364 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
12365
12366         PR/14362
12367         * var-tracking.c (track_expr_p): Do not track variables which
12368         should be ignored for debugging purposes.
12369
12370 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12371
12372         * real.c (encode_ibm_extended): Don't bother rounding low double.
12373         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
12374         when fmt->pnan < fmt->p.
12375
12376 2004-03-04  Eric Christopher  <echristo@redhat.com>
12377
12378         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
12379         only range of valid arg registers and fixed_regs.
12380
12381 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12382
12383         PR target/14406
12384         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
12385         (abstf2, abstf2_internal): New define_expand.
12386
12387 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12388
12389         PR optimization/14235
12390         * expr.c (convert_move): Copy the source to a new pseudo
12391         when converting from a sub-word source to a larger-than-word
12392         register which conflicts with the source.
12393
12394 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
12395
12396         PR 13728
12397         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
12398         parameters with the same name, unless one is a forward decl.
12399         Do not issue a redundant-redeclaration warning for forward
12400         decls of parameters.
12401
12402 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12403
12404         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
12405         configuration.
12406
12407 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
12408
12409         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
12410
12411 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12412
12413         * target-def.h (TARGET_OPTF): Delete.
12414         * c-opts.c (TARGET_OPTF): Define.
12415
12416 2004-03-04  Jan Hubicka  <jh@suse.cz>
12417
12418         * cselib.c (cselib_finish): Fix another miss-application of my previous
12419         patch.
12420
12421 2004-03-03  Mike Stump  <mrs@apple.com>
12422
12423         Add framework support for darwin.
12424
12425         * c-incpath.c: Include target.h and machmode.h.
12426         (add_path): Use a consistent style for cpp_dir.  Initialize
12427         p->construct to 0.
12428         (add_cpp_dir_path): New.
12429         (register_include_chains): Add use of extra_includes callback.
12430         (hook_void_int): Add.
12431         (target_c_incpath): Add.
12432         * c-incpath.h (add_cpp_dir_path): New.
12433         (target_c_incpath_s): Add.
12434         (target_c_incpath): Add.
12435         (C_INCPATH_INIT): Add.
12436         * c-opts.c (c_common_missing_argument,
12437         c_common_handle_option): Add -F argument processing.
12438         * c.opt: Add -F argument processing.
12439         * gcc.c (trad_capable_cpp): Add -F argument processing.
12440         * cppfiles.c (find_file_in_dir): Update to use construct
12441         callback.
12442         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
12443         cpp_get_prev): New.
12444         (_cpp_find_file): Use search_path_exhausted.
12445         (make_cpp_dir): Initialize construct to 0.
12446         * cpplib.h (missing_header_cb
12447         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
12448         (cpp_callbacks): Add missing_header
12449         (cpp_dir): Add construct.
12450         * target-def.h: (TARGET_OPTF): New.
12451         * hooks.c (hook_void_int, hook_void_charptr): Add.
12452         * hooks.h (hook_void_int, hook_void_charptr): Add.
12453         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
12454         $(MACHMODE_H) dependencies.
12455         * doc/invoke.texi (Darwin Options): Document -F.
12456         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
12457         (TARGET_OPTF): Add.
12458         * fix-header.c (target_c_incpath): Add.
12459
12460         * config/darwin-c.c: Add c-incpath.h include.
12461         (using_frameworks, find_subframework_file,
12462         find_subframework_header, add_system_framework_path,
12463         frameworks_in_use, num_frameworks, max_frameworks,
12464         add_framework, find_framework, struct framework_header,
12465         framework_header_dirs, framework_construct_pathname,
12466         find_subframework_file, add_system_framework_path,
12467         add_framework_path, framework_defaults,
12468         darwin_register_frameworks, find_subframework_header): Add.
12469         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
12470         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
12471         (CPP_SPEC): Add __APPLE_CC__ support.
12472         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
12473
12474 2004-03-04  Jan Hubicka  <jh@suse.cz>
12475
12476         * cselib.c (cselib_finish): Fix miss-application of my previous
12477         patch.
12478
12479 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12480
12481         * hooks.c (hook_tree_tree_identity): New.
12482         * hooks.h: Add a prototype for hook_tree_tree_identity.
12483         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
12484         instead of MD_ASM_CLOBBERS.
12485         * system.h (MD_ASM_CLOBBERS): Poison.
12486         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
12487         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
12488         * target.h (gcc_target): Add md_asm_clobbers.
12489         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
12490         (ix86_md_asm_clobbers): New.
12491         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
12492         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
12493         TARGET_MD_ASM_CLOBBERS.
12494
12495 2004-03-03  Stuart Hastings  <stuart@apple.com>
12496
12497         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
12498
12499 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12500
12501         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
12502
12503         * config/sparc/sparc.h (ASM_FLOAT): Delete.
12504         (ASM_DOUBLE): Likewise.
12505         (ASM_LONGDOUBLE): Likewise.
12506         * config/sparc/pbd.h (ASM_INT_OP): Delete.
12507
12508 2004-03-03  Richard Henderson  <rth@redhat.com>
12509
12510         PR opt/13862
12511         * cselib.c (cselib_record_sets): Don't record multiple sets in
12512         asm insns.
12513
12514 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
12515
12516         * common.opt: Add description of the new -fgcse-after-reload flag.
12517
12518         * flags.h (flag_gcse_after_reload): Declaration of global variable.
12519
12520         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
12521         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
12522         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
12523         get_bb_avail_insn, hash_scan_set_after_reload,
12524         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
12525         gcse_after_reload, get_bb_avail_insn): New functions to implement
12526         gcse-after-reload.
12527         (gcse_after_reload_main): New function, the main entry point to
12528         gcse-after-reload.
12529
12530         * rtl.h (gcse_after_reload_main): Declaration of the new function.
12531
12532         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
12533
12534         * toplev.c (flag_gcse_after_reload): Initialization.
12535
12536         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
12537
12538         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12539         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
12540         the gcse after reload optimization.
12541
12542         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12543         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
12544         parameters.
12545
12546         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
12547
12548 2004-03-03  Nicolas Pitre <nico@cam.org>
12549
12550         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
12551         small negative values.
12552
12553 2004-03-03  Jan Hubicka  <jh@suse.cz>
12554
12555         * cselib.c (hash_table):  Remove GTY marker.
12556         (reg_values): Turn into array.
12557         (used_regs): Likewise.
12558         (n_used_regs): New static variable.
12559         (reg_values_old): Kill.
12560         (clear_table): Update uses of arrays.
12561         (cselib_lookup): Likewise.
12562         (cselib_record_set): Likewise.
12563         (cselib_init): Likewise.
12564         (cselib_finish): Likewise.
12565         (cselib_udpate_varray_sizes): Kill.
12566         * cselib.h (cselib_update_varray_sizes): Kill.
12567
12568 2004-03-03  Paul Brook  <paul@codesourcery.com>
12569
12570         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
12571
12572 2004-03-03  Jan Hubicka  <jh@suse.cz>
12573
12574         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
12575         Rename from ...; make statistics transparent.
12576         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
12577         (loc_descriptor): New structure.
12578         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
12579         add_statistics):
12580         New static function.
12581         (ggc_record_overhead, dump_statistics): New global function.
12582         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12583         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
12584         from ...; accept locations
12585         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12586         ggc_realloc, ggc_alloc_typed):  ... this one.
12587         from ...; accept locations
12588         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
12589         ggc_alloc_stat): Rename from ... ; pass locations
12590         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
12591         ... this one.
12592         (ggc_alloc_stat): Record overehead.
12593         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12594         ggc_realloc, ggc_alloc_typed):  Turn to macros
12595         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12596         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
12597         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
12598         * langhooks.h (lhd_make_node): Declare.
12599         (LANG_HOOKS_MAKE_TYPE): Default to new function,
12600         * langhooks.c (lhd_make_node): New.
12601         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
12602         locations.
12603         (rtx_alloc, swallow_copy_rtx): ... this one.
12604         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
12605         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
12606         * toplpev.c (finalize): Dump stats.
12607         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
12608         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12609         Rename from ... ; pass locators.
12610         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12611         build?,  build_decl): Declare.
12612         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
12613         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12614         Declare.
12615         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12616         build?,  build_decl): New macros.
12617         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
12618         * statistics.h: New file.
12619
12620 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12621             Richard Sandiford  <rsandifo@redhat.com>
12622
12623         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12624         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
12625         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
12626         * config/mips/mips.c (mips_output_division): Fill the branch delay
12627         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
12628         TARGET_FIX_R4400.
12629         (mips_output_division): Adjust accordingly.
12630         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
12631         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
12632
12633 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
12634
12635         * alias.c (rtx_equal_for_memref_p): Use predicates
12636         to test rtx classes and new rtx class codes, possibly
12637         splitting conditionals that tested against '<' and 'o'.
12638         * caller-save.c (save_call_clobbered_regs): Likewise.
12639         * combine.c (contains_muldiv, find_split_point, subst,
12640         combine_simplify_rtx, simplify_if_then_else,
12641         simplify_set, simplify_logical, expand_compound_operation,
12642         make_compound_operation, if_then_else_cond, known_cond,
12643         apply_distributive_law, cached_nonzero_bits,
12644         cached_num_sign_bit_copies, simplify_shift_const,
12645         gen_binary, simplify_comparison, update_table_tick,
12646         record_value_for_reg, get_lsat_value_validate): Likewise.
12647         * cse.c (mention_regs, find_best_addr, find_comparison_args,
12648         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
12649         Likewise.
12650         * emit-rtl.c (copy_insn_1): Likewise.
12651         * expr.c (force_operand): Likewise.
12652         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
12653         * flow.c (notice_stack_pointer_modification_1,
12654         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
12655         and_reg_cond, elim_reg_cond): Likewise.
12656         * function.c (update_epilogue_consts): Likewise.
12657         * genattrtab.c (attr_rtx_1): Likewise.
12658         * genopinit.c (gen_insn): Likewise.
12659         * integrate.c (subst_constants): Likewise.
12660         * jump.c (reversed_comparison_code_parts,
12661         reversed_comparison_code, delete_related_insns,
12662         rtx_renumbered_equal_p): Likewise.
12663         * local-alloc.c (block_alloc): Likewise.
12664         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
12665         canonicalize_condition): Likewise.
12666         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
12667         Likewise.
12668         * optabs.c (add_equal_node, expand_binop): Likewise.
12669         * predict.c (estimate_probability): Likewise.
12670         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
12671         * recog.c (validate_replace_rtx_1, comparison_operator,
12672         offsettable_address_p, constrain_operands): Likewise.
12673         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
12674         Likewise.
12675         * regclass.c (scan_one_insn): Likewise.
12676         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
12677         * regrename.c (kill_autoinc_value): Likewise.
12678         * reload.c (find_reusable_reload, find_reloads,
12679         reg_overlap_mentioned_for_reload_p): Likewise.
12680         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
12681         * rtl.c (copy_rtx): Likewise.
12682         * rtl.h (CONSTANT_P, INSN_P): Likewise.
12683         * rtlanal.c (commutative_operand_precedence): Likewise.
12684         * sched-deps.c (conditions_mutex_p): Likewise.
12685         * sched-rgn.c (is_cfg_nonregular): Likewise.
12686         * simplify-rtx.c (simplify_gen_binary,
12687         simplify_gen_relational, simplify_replace_rtx,
12688         simplify_unary_operation, simplify_binary_operation,
12689         simplify_ternary_operation, simplify_rtx): Likewise.
12690         * unroll.c (reg_dead_after_loop): Likewise.
12691         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
12692         print_operand): Likewise.
12693         * config/arc/arc.c (proper_comparison_operator): Likewise.
12694         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
12695         Likewise.
12696         * config/avr/avr.c (_reg_unused_after): Likewise.
12697         * config/frv/frv.c (frv_ifcvt_modify_tests,
12698         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
12699         * config/i386/i386.c (ix86_comparison_operator,
12700         ix86_carry_flag_operator, fcmov_comparison_operator,
12701         arith_or_logical_operator, print_operand,
12702         ix86_expand_binary_operator, ix86_binary_operator_ok):
12703         Likewise.
12704         * config/i386/i386.md: Likewise.
12705         * config/ia64/ia64.c (not_postinc_memory_operand,
12706         ia64_print_operand, update_set_flags, errata_emit_nops):
12707         Likewise.
12708         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
12709         CONSTRAINT_OK_FOR_S): Likewise.
12710         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
12711         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
12712         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
12713         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
12714         Likewise.
12715         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
12716         eqne_comparison_operator, signed_comparison_operator):
12717         Likewise.
12718         * config/mips/mips.c (cmp_op, symbolic_expression_p):
12719         Likewise.
12720         * config/mmix/mmix (mmix_foldable_comparison_operator,
12721         mmix_comparison_operator): Likewise.
12722         * config/pa/pa.c (hppa_legitimize_address): Likewise.
12723         * config/rs6000/rs6000.c (stmw_operation,
12724         branch_comparison_operator, trap_comparison_operator,
12725         ccr_bit): Likewise.
12726         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
12727         * config/s390/s390.c (s390_alc_comparison,
12728         s390_slb_comparison):L Likewise.
12729         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
12730         Likewise.
12731         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
12732         noov_compare_op, noov_compare64_op, v9_regcmp_op,
12733         emit_hard_tfmode_operation, reg_unused_after)
12734         * doc/md.texi, doc/rtl.texi: Likewise.
12735
12736         * ra-debug.c: Add 2004 to list of copyright years.
12737         * unroll.c: Likewise.
12738
12739         * combine.c (simplify_logical): Remove dummy test,
12740         (apply_distributive_law): Fix typo in comment.
12741         GET_CODE (x) == AND so x is a commutative binary op.
12742         * jump.c (delete_related_insns): simplify loop
12743         condition, move testing of RTX codes inside the loop.
12744         (rtx_renumbered_equal_p): do not use RTX_CODE.
12745         * rtl.c (rtx_class): Declare as enum rtx_class.
12746         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
12747         Move to RTX_COMM_COMPARE class.
12748         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
12749         Move to RTX_CONST_OBJ class.
12750         * rtl.h (enum rtx_class): New declaration,
12751         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
12752         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
12753         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
12754         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
12755         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
12756         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
12757         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
12758         OBJECT_P): New macros.
12759         * config/sparc/sparc.c (noov_compare_op): Remove register
12760         from parameter.
12761
12762 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12763
12764         * target.h: Remove texi jargons in comments.
12765
12766 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12767
12768         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
12769         threshold to 0x4f.
12770
12771         Revert:
12772         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12773         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12774         as well.
12775         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12776         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12777
12778 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12779
12780         * doc/md.texi (cbranchmode4): New.
12781
12782 2004-03-02  Eric Christopher  <echristo@redhat.com>
12783
12784         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
12785         fix_trunc.
12786         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
12787         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
12788         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
12789         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
12790
12791 2004-03-02  Richard Henderson  <rth@redhat.com>
12792
12793         PR middle-end/11767
12794         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
12795         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
12796         before the compare, if flag_non_call_exceptions.
12797
12798 2004-03-02  Richard Henderson  <rth@redhat.com>
12799
12800         PR middle-end/14327
12801         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
12802         emitting the label, not after.
12803
12804 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12805
12806         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
12807         (m68hc11_mov_addr_mode): Likewise.
12808         (m68hc11_override_options): Initialize them based on target.
12809         (register_indirect_p): Allow a MEM for indirect addressing modes and
12810         use flags to control what is allowed.
12811         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
12812         supported addressing modes.
12813         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
12814         (go_if_legitimate_address_internal): Likewise.
12815         (m68hc11_indirect_p): Likewise and check the mode.
12816         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
12817
12818 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12819
12820         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
12821         (expand_builtin_setjmp_setup): Use
12822         targetm.builtin_setjmp_frame_value instead of
12823         BUILTIN_SETJMP_FRAME_VALUE.
12824         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
12825         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
12826         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12827         * target.h (gcc_target): Add builtin_setjmp_frame_value.
12828         * targhooks.c (default_builtin_setjmp_frame_value): New.
12829         * targhooks.h: Add a prototype for
12830         default_builtin_setjmp_frame_value.
12831         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
12832         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12833
12834 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12835
12836         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
12837         sequences of moves.
12838         (add peepholes): New peepholes to optimize sequences adding small
12839         constants.
12840         (bset peepholes): New peepholes to transform an OR in a bset form
12841         (bclr peepholes): Likewise for bclr form.
12842         (cmp peepholes): New peepholes to avoid register copies when comparing.
12843
12844 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12845
12846         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
12847         to separate push from moves.
12848         ("*pushdf_internal"): Likewise.
12849         ("*pushsf_internal"): Likewise.
12850         ("*pushsi_internal"): Likewise.
12851         ("movdi_internal"): Use define_insn_and_split; non push operand.
12852         ("movdf_internal"): Likewise.
12853         ("movsf_internal"): Likewise.
12854         ("movsi_internal"): Likewise.
12855         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
12856         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
12857         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
12858
12859 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12860
12861         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
12862         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
12863         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
12864         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
12865         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
12866         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
12867         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
12868         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
12869         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
12870         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
12871         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
12872
12873 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12874
12875         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
12876         (SOFT_XY_REGNUM): Define.
12877         (cmp split): Use the above instead of hard coded numbers.
12878         (8-bit op split): No need to check the mode; allow Q_REG.
12879         (ashift split): Adjust the first operand if it uses the SP and we
12880         are pushing the shifted value.
12881         (plus shift split): Fix when a source is in register D+X.
12882         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
12883
12884 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12885
12886         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
12887         comparing with Z register.
12888
12889 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12890
12891         * cfgloop.h (struct loop_desc): Removed.
12892         (struct loop): Fields simple, desc and has_desc removed.
12893         (simple_loop_p, count_loop_iterations): Declaration removed.
12894         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
12895         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
12896         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
12897         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
12898         simple_loop_exit_p, variable_initial_value, variable_initial_values,
12899         simple_condition_p, simple_increment, count_strange_loop_iterations,
12900         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
12901         Removed.
12902         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
12903
12904 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12905
12906         * genattrtab.c: Don't handle MATCH_INSN.
12907         * genrecog.c: Likewise.
12908         * gensupport.c: Likewise.
12909         * rtl.def (match_insn): Remove.
12910         * doc/md.texi (match_insn, match_insn2): Remove.
12911
12912 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
12913
12914         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
12915         macro results in memory allocation.
12916
12917 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
12918
12919         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
12920         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
12921         %(fbsd_dynamic_linker),
12922         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
12923         config/i386/freebsd.h
12924         * config/arm/freebsd.h: Ditto.
12925         * config/i386/freebsd.h: Ditto.
12926         * config/i386/freebsd64.h: Ditto.
12927         * config/ia64/freebsd.h: Ditto.
12928         * config/rs6000/sysv4.h: Ditto.
12929         * config/sparc/freebsd.h: Ditto.
12930
12931 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
12932
12933         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
12934
12935 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12936
12937         * rtl.def (define_combine): Remove.
12938
12939 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12940
12941         * config/h8300/h8300.md: Tweak formatting.
12942
12943 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12944
12945         * config/h8300/h8300.md (*cmphi_h8300): Rename to
12946         *cmphi_h8300_znvc.
12947         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
12948
12949 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
12950
12951         PR bootstrap/14356
12952         * gcc.c (process_command): Remove const-qualification from argv.
12953         (main): Likewise.
12954
12955 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12956
12957         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
12958         pushqi1_h8300hs_advanced.  Adjust its caller.
12959         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
12960         Adjust its caller.
12961
12962 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
12963
12964         * Makefile.in (install-libgcc, install-multilib): Pass
12965         mkinstalldirs var to libgcc.mk.
12966
12967 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12968
12969         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
12970         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
12971
12972 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12973
12974         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
12975         * config/h8300/h8300.md: Split several peephole2's, each into
12976         two.
12977
12978 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12979
12980         * dominance.c (recount_dominator): Handle postdominators.
12981
12982 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12983
12984         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
12985         (NUM_SYMBOL_TYPES): Likewise.
12986         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
12987         (mips_unspec_address): Declare.
12988         (mips_gotoff_page, mips_gotoff_global): Delete.
12989         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
12990         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
12991         (mips_symbolic_constant_p, mips_symbolic_address_p)
12992         (mips_symbol_insns): Handle new symbol types.
12993         (general_symbolic_operand): New predicate.
12994         (mips_unspec_address): Make extern.
12995         (mips_gotoff_page, mips_gotoff_global): Delete.
12996         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
12997         Handle new symbol types.
12998         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
12999         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
13000         mips_unspec_address directly.
13001         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
13002         the documentation of -mexplicit-relocs.
13003
13004 2004-03-01  Jeff Law  <law@redhat.com>
13005
13006         * fold-const.c (fold): An equality comparison of a non-weak object
13007         against zero has a known result.  Similarly an equality comparison
13008         of the address of two non-weak, unaliased symbols has a known result.
13009
13010         * ggc-page.c (struct page_entry): New field PREV.
13011         (ggc_alloc): Update PREV field appropriately.
13012         (sweep_pages): Likewise.
13013         (ggc_free): Likewise.  Use PREV field rather than loop to
13014         improve ggc_free performance.
13015
13016 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
13017
13018         * config/mips/mips.c (mips_output_division): Use the division
13019         instruction to fill the delay slot of a zero check.
13020         (mips_idiv_insns): Adjust accordingly.
13021
13022 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
13023
13024         * config.gcc: Create a default tmake_file for linux, and use
13025         it in all but two linux clauses.  Comment those two.
13026
13027 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
13028
13029         * combine.c (try_combine):  Do not refer to is_replaced.
13030         (gen_lowpart_for_combine):  Perverse subregs now have a
13031         more politically correct name.
13032         * cse.c (cse_insn): Likewise.
13033         * jump.c: Fix bogus reference to delete_insn.
13034
13035 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
13036
13037         PR debug/14328
13038         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
13039         constants as signed values.
13040
13041         PR middle-end/13448
13042         * c-tree.h (readonly_warning): Rename to ...
13043         (readonly_error): ... this.
13044         * c-typeck.c (build_unary_op): Adjust accordingly.
13045         (readonly_warning): Rename to ...
13046         (readonly_error): ... this and issue errors, not warnings.
13047         (build_modify_expr): Call readonly_error, not readonly_warning.
13048         (c_expand_asm_operands): Likewise.
13049         * tree-inline.c (optimize_inline_calls): Do not inline functions
13050         after errors have occurred.
13051
13052 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
13053
13054         * configure.ac: Rearrange some threading code for clarity;
13055         add section comment.
13056         * configure: Regenerate.
13057
13058 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13059
13060         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
13061         typos.
13062         * doc/cppopts.texi: Fix a typo.
13063
13064 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13065
13066         * config/i386/i386.md: Fix formatting.
13067
13068 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
13069
13070         * configure.ac: Add some comments delineating sections of code.
13071
13072         * doc/install.texi: Note that libada uses autoconf 2.57 also.
13073
13074         * doc/install.texi: Fix idiot typo in previous commit.
13075
13076         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
13077
13078 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13079
13080         * config/h8300/h8300.md: Add comments about peephole2's.
13081
13082 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13083
13084         * config/h8300/h8300.md: Tweak operand numbers of some
13085         peephole2's.
13086
13087 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13088
13089         * config/h8300/h8300.md: Tweak comments about peephole2's.
13090
13091 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
13092
13093         PR middle-end/14203
13094         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
13095         instead of testing whether DECL_RTL is not NULL.
13096
13097 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13098
13099         * config/sh/sh.c: Fix formatting.
13100
13101 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13102
13103         * config/sh/sh.c: Convert to ISO-C.
13104
13105 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
13106
13107         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
13108         my previous patch.
13109
13110         * config/darwin.h (machopic_finish): Output stub even if the
13111         symbol is already defined.
13112
13113 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13114
13115         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
13116
13117 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13118
13119         * genattr.c (main): Don't define
13120         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
13121         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
13122         (DFA_PIPELINE_INTERFACE): Likewise.
13123         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
13124         (DFA_PIPELINE_INTERFACE): Likewise.
13125
13126 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
13127
13128         * config/mips/mips.md (tstsi, tstdi): Delete.
13129
13130 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13131
13132         * config/mips/mips.c (override_options): Remove an obsolete
13133         duplicate definition of the "e" constraint.
13134         * config/mips/mips.h: Update a comment accordingly.
13135
13136 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13137
13138         * config/mips/mips.md: Complete the unfinished R4000
13139         multiply/shift errata workaround.  Improve documentation.
13140         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
13141         has a hilo hazard.
13142         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
13143         (muldi3, muldi3_internal): Likewise.
13144         (muldi3_internal2): Remove, replacing with...
13145         (muldi3_mult3, muldi3_r4000): ...these new patterns.
13146         (mulsidi3): Take the errata into account.
13147         (mulsidi3_32bit): Remove, replacing with...
13148         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
13149         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
13150         (umulsidi3): Take the errata into account.
13151         (umulsidi3_32bit): Remove, replacing with..
13152         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
13153         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
13154         TARGET_FIX_R4000.
13155         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
13156         (smuldi3_highpart, umuldi3_highpart): Likewise.
13157         * doc/invoke.texi: Document the errata workaround.
13158
13159 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13160
13161         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
13162         * config/mips/mips.h (MASK_FIX_SB1): Bump.
13163         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
13164         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
13165         * config/mips/mips.c (mips_idiv_insns): New function.
13166         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
13167         (mips_output_division): Add a workaround for the R4000 divide/shift
13168         errata.
13169         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
13170         the length of an "idiv" instruction.
13171         * doc/invoke.texi: Document the new switches.
13172
13173 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13174
13175         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
13176         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
13177
13178 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13179
13180         PR optimization/14229
13181         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
13182
13183 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
13184
13185         * fold-const.c (fold): Strip NOPs that change the signedness
13186         for RSHIFT too.  Expand comment.
13187
13188 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
13189
13190         PR optimization/7871
13191         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
13192         from or to call insns.
13193
13194 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13195
13196         PR optimization/7871
13197         * flow.c (propagate_one_insn): Interpret calls as setting global
13198         registers, not merely clobbering them.
13199
13200 2004-02-27  Dale Johannesen  <dalej@apple.com>
13201
13202         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
13203         config/darwin-protos.h:  Ditto.
13204         config/darwin.h:  Remove call to it.
13205         * combine.c (distribute_notes): Do not place a REG_DEAD note
13206         when value is both set and used.
13207
13208 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13209
13210         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
13211         as well.
13212         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
13213         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
13214
13215 2004-02-27  Andrew Pinski  <apinski@apple.com>
13216
13217         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
13218         Speedup common case of the type values being in the same order.
13219
13220 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
13221
13222         * config/ia64/ia64.h (no-inline-float-divide): New option.
13223         * config/ia64/ia64.h (no-inline-int-divide): New option.
13224         * config/ia64/ia64.h (no-inline-sqrt): New option.
13225         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
13226         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
13227         * config/ia64/ia64.c (ia64_override_options): Modify error
13228         checking for inlined division/sqrt.
13229
13230 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13231
13232         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
13233         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
13234         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
13235         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
13236         copyright.
13237
13238 2004-02-27  Paul Brook  <paul@codesourcery.com>
13239
13240         * function.c (assign_parms): Don't count pretend args for alignment.
13241
13242 2004-02-27  Richard Henderson  <rth@redhat.com>
13243
13244         * passes.c: New file.
13245         * Makefile.in (OBJS-common): Add it.
13246         * diagnostic.c (rtl_dump_and_exit): Move decl ...
13247         * flags.h (rtl_dump_and_exit): ... here.
13248         * output.h (size_directive_output, last_assemble_variable_decl):
13249         Move from toplev.c.
13250         * rtl.h (reg_alloc): Move from toplev.c.
13251         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
13252         struct dump_file_info, enum dump_file_index, dump_file_tbl,
13253         open_dump_file, close_dump_file, rest_of_decl_compilation,
13254         rest_of_type_compilation, rest_of_handle_final,
13255         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
13256         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
13257         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
13258         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
13259         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
13260         rest_of_handle_tracer, rest_of_handle_if_conversion,
13261         rest_of_handle_if_after_combine, rest_of_handle_web,
13262         rest_of_handle_branch_prob,
13263         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
13264         rest_of_handle_addressof, rest_of_handle_sibling_calls,
13265         rest_of_handle_jump_bypass, rest_of_handle_inlining,
13266         rest_of_handle_null_pointer, rest_of_handle_combine,
13267         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
13268         rest_of_handle_gcse, rest_of_handle_loop_optimize,
13269         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
13270         (decode_d_option): Use enable_rtl_dump_file.
13271         (compile_file, finalize, do_compile): Move profile+combine+graph
13272         cleanup to finish_optimization_passes.
13273         * toplev.h (init_optimization_passes, finish_optimization_passes,
13274         enable_rtl_dump_file): Declare.
13275
13276 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
13277             Roger Sayle  <roger@eyesopen.com>
13278
13279         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
13280         operands to build a tree with swapped operands.
13281         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
13282         'unsignedp' predicate to specify the signedness.
13283
13284 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13285
13286         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
13287         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
13288         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
13289         comment typos and formatting.  Follow spelling conventions.
13290
13291 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
13292
13293         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
13294         fix_truncsfsi2.
13295
13296         * config/rs6000/spe.md: Delete spe_efsctuiz.
13297         Add spe_fixuns_truncsfsi2.
13298         Add spe_fix_truncsfsi2.
13299
13300 2004-02-26  Eric Christopher  <echristo@redhat.com>
13301
13302         * c-lex.c (c_lex_string_translate): New variable.
13303         (lex_string): Use to determine string translation.
13304         * c-pragma.h: Prototype.
13305         * c-parse.in (start_string_translation): New. Set above.
13306         (stop_string_translation): Ditto.
13307         (attribute, attribute_list, asm_def, asm_stmt,
13308         asm_operand): Use above functions.
13309         * cp/parser.c (cp_parser_declaration): Translate strings
13310         unless token is RID_EXTERN. Set c_lex_string_translate
13311         for recursive use.
13312         (cp_parser_asm_definition): Only translate argument strings
13313         to asms.
13314         (cp_parser_asm_operand_list): Ditto.
13315         (cp_parser_attribute_list): Do not translate attribute strings.
13316
13317 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13318
13319         * stmt.c (expand_start_case_dummy): Remove.
13320         * tree.h: Remove the corresponding prototype.
13321
13322 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13323
13324         * builtins.c (apply_args_register_offset): Remove.
13325         * tree.h: Remove the corresponding prototype.
13326
13327 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13328
13329         * stor-layout.c (is_pending_size): Remove.
13330         * tree.h: Remove the corresponding prototype.
13331
13332 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13333
13334         * recog.c (validate_replace_src): Remove.
13335         * recog.h: Remove the corresponding prototype.
13336
13337 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13338
13339         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
13340         MAYBE_REG_PARM_STACK_SPACE.
13341         * function.c: Likewise.
13342         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
13343         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13344         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
13345         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13346
13347 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13348
13349         * c-decl.c (c_expand_deferred_function): Remove.
13350         * c-tree.h: Remove the corresponding prototype.
13351
13352 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13353
13354         * postreload.c (reload_cse_move2add): Generate just a PLUS
13355         instead of an entire SET.
13356
13357 2004-02-26  Jan Hubicka  <jh@suse.cz>
13358
13359         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
13360         /pentium4m.
13361         * i386.c (override_options): Add support for new CPUs.
13362         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
13363         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
13364         constants.
13365         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
13366
13367 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
13368
13369         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
13370
13371 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13372
13373         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
13374         (sparc_emit_fixunsdi): New prototype.
13375         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
13376         (sparc_emit_fixunsdi): New function.
13377         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
13378         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
13379         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
13380         to sparc_emit_floatunsdi.
13381         (fixuns_truncsfdi2): New expander.
13382         (fixuns_truncdfdi2): Likewise.
13383
13384 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
13385
13386         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
13387         unless HAVE_cc0.
13388
13389 2004-02-25  Richard Henderson  <rth@redhat.com>
13390
13391         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
13392         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
13393         use (op0-op1) == 0 if op0 is a pointer.
13394         * config/alpha/alpha.md (cmpdi): Use some_operand.
13395         (three comparison combine splits): Remove.
13396
13397 2004-02-25  Richard Henderson  <rth@redhat.com>
13398
13399         PR c/12794
13400         * c-common.c (handle_alias_attribute): Reject the attribute if
13401         current_function_decl is set.
13402
13403 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13404
13405         * config.gcc: Add comment describing extra_gcc_objs.
13406         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
13407         * configure.ac (extra_gcc_objs): New substitution variable.
13408         (host_extra_gcc_objs): Don't substitute.
13409         * configure: Regenerate.
13410         * Makefile.in: Use extra_gcc_objs.
13411
13412 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13413
13414         * doc/contrib.texi: Add an entry for myself.
13415
13416 2004-02-25  Jan Hubicka  <jh@suse.cz>
13417
13418         * basic-block.h (make_eh_edge, break_superblocks): Declare.
13419         * cfgbuild.c (make_eh_edge):  Make global.
13420         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
13421         * except.c (build_post_landing_pads, connect_post_landing_pads,
13422         dw2_build_landing_pads, sjlj_emit_function_enter,
13423         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13424         sjlj_build_landing_pads): Update CFG.
13425         (emit_to_new_bb_before): New function.
13426         (finish_eh_generation): Do not rebuild the CFG.
13427
13428 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13429
13430         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
13431         target_cpu_default defines.
13432         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
13433         * pa.h (TARGET_DEFAULT): Likewise.
13434
13435 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13436
13437         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
13438         comparisons with regard to signedness.
13439
13440 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13441
13442         * arm.c (thumb_legitimize_address): New function.
13443         * arm-protos.h: Prototype it.
13444         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
13445         (LEGITIMIZE_ADDRESS): Use it.
13446
13447 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
13448
13449         * reload1.c (reload): Only spill eliminable register with multiple
13450         adjacent elimination alternatives if all alternatives fail.
13451
13452 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13453
13454         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
13455         is -4095...+4095 inclusive.
13456
13457 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
13458
13459         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
13460         the bootstrap failure with Sun CC 5.4 and 5.5.
13461
13462 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13463
13464         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
13465         which modifies NEWREG.
13466         (cse_condition_code_reg): Update the mode of CC_REG in
13467         CC_SRC_INSN on our own.
13468
13469 2004-02-24  Michael Matz  <matz@suse.de>
13470
13471         * config/i386/i386.c (ix86_comp_type_attributes): Check for
13472         regparm attributes.
13473
13474 2004-02-24  Richard Henderson  <rth@redhat.com>
13475
13476         * toplev.c (dump_file_tbl): Rename from dump_file.
13477         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
13478         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
13479         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
13480         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
13481         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
13482         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
13483         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
13484         s/rtl_dump_file/dump_file/g.
13485
13486 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
13487
13488         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
13489         (spe_fixuns_truncsfsi2): Delete.
13490
13491         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
13492         (fixuns_truncsfsi2): Delete.
13493
13494 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
13495
13496         PR/14240
13497         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
13498
13499 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
13500
13501         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
13502
13503 2004-02-24  Jason Merrill  <jason@redhat.com>
13504
13505         * tree.c (check_qualified_type): New fn.
13506         (get_qualified_type): Use it.  If type already has the desired
13507         quals, just return it.
13508         * tree.h: Declare it.
13509
13510 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
13511
13512         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
13513         TARGET_SCHED_FINISH_GLOBAL): New macros.
13514
13515         * target.h (md_init_global, md_finish_global): Function
13516         declarations corresponding to new target macros.
13517
13518         * haifa-sched.c (sched_init, sched_finish): Allow target to
13519         call the new schedular hooks.
13520
13521         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
13522         call to update_life_info.
13523
13524         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
13525         flag_schedule_insns for SH4.
13526
13527         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
13528         find_set_regmode_weight, find_insn_regmode_weight,
13529         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
13530         sh_variable_issue, high_pressure, ready_reorder,
13531         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
13532         functions used to throttle the insn movement in first
13533         scheduling pass for SH.
13534
13535         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
13536         TARGET_SCHED_FINISH_GLOBAL.
13537
13538 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
13539
13540         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
13541         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
13542         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
13543         symbols in sections named by the user.
13544         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
13545         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
13546         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
13547         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
13548         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
13549         the above.
13550         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
13551         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
13552         one more pseudo to further improve code generation.
13553         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
13554         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
13555         inside UNSPEC.
13556         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
13557         * config/frv/frv.c (frv_legitimate_address_p): Added
13558         allow_double_reg_p argument.  Adjust all callers.  Use it to
13559         decide whether to enable double-register indirect addressing.
13560         (frv_funcdesc_alias_set): Remove.
13561         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
13562         register.  Emit movdi_ldd.
13563         (ldd_address_operand): New.
13564         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
13565         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13566         (PREDICATE_CODES): Add ldd_address_operand.
13567         * config/frv/frv.md (movdi_ldd): New.
13568         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
13569         intermediate computations if possible.
13570         (symGOTOFF2reg_i): Fix harmless typo.
13571         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
13572         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
13573         relocated p_vaddr to vaddr type.
13574         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
13575         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
13576         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
13577         MEM, or use a funcdesc alias set.  Use regular move instead of
13578         ldd.
13579         (dbl_memory_one_insn_operand): Recognize function descriptors by
13580         type or by alias set, and don't split them.
13581         * config/frv/frv.md (call, call_value): Never use call_internal
13582         for fdpic.
13583         (call_internal, call_value_internal): Never match for FDPIC.
13584         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
13585         call_value_fdpicsi): Require FDPIC.
13586         (ldd): Removed.
13587         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
13588         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
13589         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
13590         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
13591         FDPIC.  Compute data base address.
13592         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
13593         before the other self-specs are processed.
13594         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
13595         Build with -fPIC.
13596         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
13597         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
13598         inhibit_libc is defined.
13599         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
13600         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
13601         __FRV_FDPIC__.
13602         (__RELOC_POINTER): Define.
13603         (_Unwind_IteratePhdrCallback): Use it.
13604         * config/frv/frv.h (Twrite): Define.
13605         (TRANSFER_FROM_TRAMPOLINE): Use it.
13606         * config/frv/linux.h (INVOKE__main): Undefine.
13607         (Twrite): Override.
13608         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
13609         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
13610         (-mlibrary-pic): Emphasize that this option generates EABI code.
13611         (-mcpu): Add fr550.
13612         (-mpack): Remove.
13613         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
13614         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
13615         and CONSTs in FDPIC mode.
13616         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
13617         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13618         * config/frv/frv.c (move_source_operand): Don't accept symbolic
13619         constants.
13620         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
13621         rather than 'i' constraint for the 2-instruction alternative.
13622         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
13623         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13624         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
13625         EXTRA_CONSTRAINT_FOR_Y.
13626         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
13627         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
13628         (addsi3): Change 'Y' constraint to 'Q'.
13629         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
13630         * reload.c (CONST_POOL_OK_P): New macro.
13631         (find_reloads): Use it to decide whether a constant can be forced
13632         into memory.
13633         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
13634         constant satisfies got12_operand.
13635         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
13636         (frv_legitimate_address_p): Check for valid unspec offsets using
13637         got12_operand rather than frv_legitimate_fdpic_operand_p.
13638         (frv_legitimate_fdpic_operand_p): Delete.
13639         (frv_emit_movsi): Abort if we try to use the FDPIC register during
13640         or after reload.
13641         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
13642         TARGET_FDPIC.
13643         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
13644         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
13645         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
13646         (frv_fdpic_fptr_operand): Don't declare here.
13647         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
13648         rather than fdpic_got12_operand.
13649         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
13650         got12_operand and const_unspec_operand.
13651         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
13652         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
13653         (symbolic_operand): Remove.
13654         (const_unspec_operand): New predicate.
13655         * config/frv/frv.md (*movsi_got): Use got12_operand.
13656         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
13657         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
13658         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
13659         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
13660         * config/frv/frv.c (frv_unspec): New structure.
13661         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
13662         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
13663         validate CONST indices.  Use frv_output_const_unspec to print them.
13664         (frv_print_operand): Update call to unspec_got_name.  Use
13665         frv_output_const_unspec to print constant unspecs.
13666         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
13667         Reject UNSPECs otherwise.
13668         (unspec_got_name): Take the relocation number as argument, not an
13669         rtx containing it.
13670         (frv_output_addr_const_extra): Remove, replacing with...
13671         (frv_output_const_unspec): ...this new function.
13672         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
13673         (gpr_or_int12_operand): Use fdpic_got12_operand.
13674         (dbl_memory_one_insn_operand): Likewise.
13675         (fdpic_got12_operand): Use frv_const_unspec_p.
13676         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
13677         are already legitimate.  Use frv_small_data_reloc_p when deciding
13678         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
13679         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
13680         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
13681         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
13682         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13683         label, for real this time.
13684         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
13685         representation of visibility.
13686         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
13687         such.
13688         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
13689         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
13690         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
13691         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
13692         it was explicitly disabled.
13693         (frv_stack_info): There is no need to save the link register in every
13694         frame unless TARGET_LINKED_FP is true.
13695         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
13696         frame pointer if the stack pointer might change value.
13697         (frv_return_addr_rtx): Check and process "count" argument.
13698         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
13699         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
13700         (frv_find_base_term): Declare.
13701         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
13702         (FIND_BASE_TERM): Define.
13703         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
13704         small_data_register_operand, small_data_symbolic_operand.  Add
13705         symbolic_operand.
13706         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
13707         (frv_print_operand_memory_reference, output_move_single): Remove
13708         special handling for unlegitimized sdata addresses.
13709         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
13710         and symbolic addresses.
13711         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
13712         (frv_find_base_term): New function.
13713         (int_2word_operand): Check specifically for symbolic address constants.
13714         (pic_register_operand, pic_symbolic_operand): Delete.
13715         (small_data_register_operand, small_data_symbolic_operand): Delete.
13716         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
13717         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
13718         (move_source_operand): Only accept CONSTs if they're a two-insn
13719         symbolic constant.
13720         (fdpic_got12_operand): Don't require TARGET_FDPIC.
13721         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
13722         using gen_symGOTOFF2reg*.
13723         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
13724         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
13725         themselves a cost of 3 insns.
13726         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
13727         Change predicate to symbolic_operand.
13728         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
13729         (*movsi_lda_sdata): Delete.
13730         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
13731         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
13732         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
13733         frv-*-*linux*.
13734         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13735         label.
13736         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
13737         -multilib-library-pic.
13738         (LINK_SPEC): Add -z text for -mfdpic.
13739         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
13740         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
13741         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
13742         Override.
13743         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
13744         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
13745         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
13746         crtstuff-generated files.
13747         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
13748         * config.gcc: Add frv-*-*linux*.
13749         * config/frv/linux.h, config/frv/t-linux: New.
13750         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
13751         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
13752         when -mfdpic even if a linker script is explicitly listed.
13753         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13754         * config/frv/frv.c (frv_override_options): Clear asm_out
13755         unaligned_op for SImode on FDPIC.
13756         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
13757         argument passed to decl_readonly_section.
13758         (frv_assemble_integer): Revert 2003-09-30's change, but make the
13759         whole block run with FDPIC even with -fno-PIC.
13760         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13761         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
13762         symbol or label plus offset to memory.
13763         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
13764         GOTOFF and GPREL for LABEL_REF.
13765         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
13766         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
13767         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
13768         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
13769         * doc/invoke.texi: Document them.
13770         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
13771         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
13772         (frv_splittable_got_operand): Removed.
13773         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
13774         LO_SUM.  Add comments.
13775         (frv_override_options): Moved enabling of FDPIC to
13776         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
13777         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
13778         (frv_legitimize_fdpic_address): Don't duplicate logic in
13779         frv_emit_movsi.
13780         (frv_gen_GPsym2reg): New.
13781         (unspec_got_name): Added gprel.
13782         (frv_expand_fdpic_call): Add support for inlining PLTs.
13783         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
13784         (gpr_or_int12_operand): Added GPREL12.
13785         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
13786         (small_data_symbolic_operand): Fail if FDPIC.
13787         (fdpic_splittable_got_operand): Removed.
13788         (fdpic_got12_operand): Added GPREL12.
13789         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
13790         when appropriate.  Fix sdata GOTOFF.
13791         (frv_legitimate_constant_p): Require legitimate PIC operand for
13792         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
13793         (frv_assemble_integer): Move FDPIC funcdesc handling out of
13794         flag_pic case.
13795         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
13796         frv_assemble_integer fails.
13797         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
13798         (SUBTARGET_DRIVER_SELF_SPECS): New.
13799         (ASM_SPEC): Don't pass -mno-fdpic.
13800         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
13801         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
13802         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
13803         -multilib-library-pic.
13804         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
13805         condexec_si_media_operator, condexec_sf_add_operator and
13806         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
13807         and condexec_sf_unary_operator.
13808         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
13809         New.
13810         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
13811         movsi_internal.  Give them internal names.  movsi_got has type
13812         int.
13813         (fdpic got splitters): Remove.
13814         (symGPREL2reg, symGPREL2reg_hilo): New.
13815         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
13816         to -mlibrary-pic.  Map -multilib-library-pic to it.
13817         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
13818         Document.
13819         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
13820         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
13821         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
13822         (frv_cannot_force_const_mem): New function.
13823         (const_small_data_p, plus_small_data_p): Update comments on sdata
13824         on FDPIC.
13825         (frv_override_options): Set flag_pie for FDPIC too.
13826         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
13827         call-saved registers on FDPIC.
13828         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
13829         don't force LR to be preserved.
13830         (frv_expand_prologue): Likewise.
13831         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
13832         (frv_frame_pointer_required): Don't force it just because the
13833         FDPIC register is used.
13834         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
13835         operand only if !condexec_p.
13836         (frv_legitimize_address): Return the FDPIC-legitimized address.
13837         Don't match small data here on FDPIC.
13838         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
13839         symbols.  Use TRUE/FALSE instead of 1/0.
13840         (frv_local_funcdesc_p): New.
13841         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
13842         immediates when possible.
13843         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
13844         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
13845         an UNSPEC_GOT.
13846         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
13847         12-bit immediates when possible.
13848         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
13849         are not legitimate pic operands.
13850         (frv_in_small_data_p): Re-enable for FDPIC.
13851         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
13852         (FRV_GLOBAL_P): Removed.
13853         * config/frv/frv.md: Add modes to CONSTs.
13854         (movsi_got): New.
13855         (movsi_lo_sum_got): Use separate matches instead of match_dup.
13856         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
13857         (fdpic splittable operations): Match on flag_pic != 1.
13858         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
13859         * config/frv/frv.c (frv_asm_out_constructor,
13860         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
13861         bytes, not bits.
13862         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
13863         * config/frv/frv.c (frv_assemble_integer): Reject complex
13864         expressions referencing function SYMBOL_REFs.
13865         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
13866         (move_source_operand): Reject CONSTs that reference function
13867         SYMBOL_REFs on FDPIC.
13868         (frv_emit_movsi): If we get such a CONST, break it up.
13869         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
13870         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
13871         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
13872         MEM.
13873         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
13874         (frv_trampoline_size): Increase for FDPIC.
13875         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
13876         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
13877         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
13878         Disable use of GOTOFF for now.
13879         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
13880         Disable use of small data in FDPIC for now.
13881         (frv_asm_output_mi_thunk): Implement for FDPIC.
13882         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
13883         * config/frv/frv.c (frv_asm_out_constructor): Use
13884         frv_assemble_integer for FDPIC pointers.
13885         (frv_asm_out_destructor): Likewise.
13886         * config/frv/frv.md (ldd): Fix order of operands.  Use
13887         address_operand for input.
13888         2003-09-18  DJ Delorie  <dj@redhat.com>
13889         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
13890         (unspec_got_name): Correct typo.
13891         (frv_emit_movsi): Pre-expand splittable GOTs.
13892         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
13893         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
13894         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
13895         * config/frv/t-frv: Add -mfdpic multilibs.
13896         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
13897         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
13898         * config/frv/frv.c (frv_override_options): -mfdpic assumes
13899         flag_pic, default to 32-bit pics, require DWORD ops.
13900         (frv_override_options): Add W and Z constraints.
13901         (frv_expand_prologue): No pic prologue for -mfdpic.
13902         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
13903         (frv_print_operand_memory_reference): Handle GOT constants.
13904         (frv_legitimate_address_p): Allow GOT constants.
13905         (frv_legitimize_address): Handle GOT addresses too.
13906         (frv_legitimate_fdpic_operand_p): New.
13907         (frv_legitimize_fdpic_address): New.
13908         (unspec_got_name): New.
13909         (frv_output_addr_const_extra): New.
13910         (frv_expand_fdpic_call): New.
13911         (frv_fdpic_fptr_operand): New.
13912         (gpr_or_int12_operand): Handle GOT operands.
13913         (int_2word_operand): Handle GOT operands.
13914         (fdpic_operand): New.
13915         (fdpic_splittable_got_operand): New.
13916         (fdpic_got12_operand): New.
13917         (frv_emit_movsi): Handle GOT operands.
13918         (frv_assemble_integer): -mfdpic doesn't use rofixups.
13919         (frv_print_operand): Support 'g' code for GOT operands.
13920         * config/frv/frv-protos.h: Add prototypes as needed.
13921         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
13922         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
13923         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
13924         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
13925         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
13926         R_FRV_GOTOFFLO): New.
13927         (movsi_high_got, movsi_lo_sum_got): New.
13928         (*movsi_pic): Don't use this splitter for -mfdpic.
13929         (addsi3): Allow GOT references also.
13930         (call, call_value): Handle -mfdpic separately.
13931         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
13932         call_value_fdpicsi): New.
13933         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
13934         symGOTOFF2reg_i): New.
13935         * config/frv/frv.h (MASK_FDPIC): New.
13936         (TARGET_FDPIC): New.
13937         (TARGET_SWITCHES): Add -mfdpic.
13938         (FDPIC_FPTR_REGNO): New.
13939         (FDPIC_REGNO): New.
13940         (OUR_FDPIC_REG): New.
13941         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
13942         FDPIC_CALL_REGS.
13943         (REG_CLASS_NAMES): Likewise.
13944         (REG_CLASS_CONTENTS): Likewise.
13945         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
13946         (EXTRA_CONSTRAINT): Add it here.
13947         (FRV_GLOBAL_P): New.
13948         (OUTPUT_ADDR_CONST_EXTRA): New.
13949
13950 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13951
13952         * config/sparc/sparc.h: Remove commented-out definitions of
13953         TARGET_EDOM and GEN_ERRNO_RTX.
13954
13955 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13956
13957         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
13958         df_analyse with df_analyze.
13959
13960 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
13961
13962         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
13963         beginning of block.
13964
13965 2004-02-23  James E Wilson  <wilson@specifixinc.com>
13966
13967         * calls.c (precompute_arguments): Update comment.
13968
13969 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13970
13971         * et-forest.c: Replace et_occurences with et_occurrences.
13972
13973 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13974
13975         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
13976         with iv_analyze.
13977
13978 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
13979
13980         * config/i386/i386.c: Rename pni to sse3.
13981         * config/i386/i386.h: Likewise.
13982         * config/i386/i386.md: Likewise.
13983         * config/i386/pmmintrin.h: Likewise.
13984         * doc/extend.texi: Likewise.
13985         * doc/invoke.texi: Likewise.
13986
13987 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
13988             Kazu Hirata  <kazu@cs.umass.edu>
13989
13990         Remove -fwritable-strings.
13991         * c-common.c (fix_string_type): Don't check
13992         flag_writable_strings.
13993         (fix_string_type): Likewise.
13994         * c-opts.c (set_std_c89): Don't initialize
13995         flag_writable_strings.
13996         (set_std_c99): Likewise.
13997         * common.opt (fwritable-strings): Remove.
13998         * flags.h: Remove the external declaration of
13999         flag_writable_strings.
14000         * opts.c (common_handle_option) <OPT_fwritable_strings>:
14001         Remove.
14002         * toplev.c (flag_writable_strings): Remove.
14003         (f_options): Remove an entry for writable-strings.
14004         * varasm.c (const_hash_1) <STRING_CST>: Don't check
14005         flag_writable_strings.
14006         (compare_constant) <STRING_CST>: Likewise.
14007         (build_constant_desc): Likewise.
14008         * config/darwin.c (machopic_select_section): Likewise.
14009         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
14010         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
14011         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
14012         * config/mips/mips.c (mips_select_section): Likewise.
14013         (mips_encode_section_info): Likewise.
14014         * config/pa/pa.c (pa_select_section): Likewise.
14015         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
14016         * config/v850/v850.c (v850_select_section): Likewise.
14017         * doc/invoke.texi (-fwritable-strings): Remove.
14018         (-fno-const-strings): Don't mention -fwritable-strings.
14019         * doc/trouble.texi: Don't mention -fwritable-strings.
14020
14021 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
14022
14023         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
14024
14025 2004-02-23  Dale Johannesen  <dalej@apple.com>
14026
14027         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
14028         (movdf_hardfloat64):  Ditto.
14029         (movdf_softfloat64):  Ditto.
14030
14031 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
14032         * config/rs6000/rs6000.c (function_arg): call to
14033         rs6000_mixed_function_arg for DFmode moved to allow
14034         normal DFmode incoming register assignment.
14035
14036 2004-02-23  Dale Johannesen  <dalej@apple.com>
14037
14038         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
14039         (movdf_hardfloat64):  Ditto.
14040
14041 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
14042
14043         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
14044         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
14045         copyright.
14046
14047 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
14048
14049         PR c/14156
14050         * c-typeck.c (c_expand_return): Change check for VAR_DECL
14051         to use DECL_P instead.
14052
14053         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
14054         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
14055
14056 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
14057
14058         * Makefile.in (opts.o): Depend on target.h.
14059         * opts.c (decode_options): Use targetm.default_short_enums
14060         instead of DEFAULT_SHORT_ENUMS.
14061         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14062         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
14063         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
14064         * target.h (gcc_target): Add default_short_enums.
14065         * config/cris/cris.h: Remove a comment about
14066         DEFAULT_SHORT_ENUMS.
14067         * config/ip2k/ip2k.h: Likewise.
14068         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
14069         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
14070
14071 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14072             Falk Hueffner  <falk@debian.org>
14073
14074         PR c/14188
14075         * builtins.c (expand_builtin_va_arg): Emit an informative message
14076         if a trap is generated.
14077         * c-typeck.c (build_function_call): Likewise.
14078
14079 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
14080
14081         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
14082         fopen.
14083         * libgcov.c: Include sys/stat.h.
14084         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
14085         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
14086         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
14087         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
14088
14089 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
14090
14091         * reorg.c: Remove comments about dead ports.
14092
14093 2004-02-22  Christopher Faylor  <cgf@redhat.com>
14094
14095         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
14096         extra host object file when targetting cygwin rather than generic
14097         object files.
14098
14099 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
14100
14101         Merge from tree-ssa:
14102         2003-11-20  Richard Henderson  <rth@redhat.com>
14103
14104                 * tree-inline.c (insert_decl_map): New.
14105                 (remap_decl, remap_type, remap_block, copy_body_r,
14106                 initialize_inlined_parameters, declare_return_variable,
14107                 remap_save_expr): Use it.
14108
14109         * function.c (copy_body_r): Add mapping from id->ret_label to
14110         id->ret_label.  Revert test for ret_label.
14111
14112 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
14113
14114         * genoutput.c (process_template): Strip trailing whitespace in @
14115         templates and issue a warning if there was any.
14116
14117 2004-02-21  Christopher Faylor  <cgf@redhat.com>
14118
14119         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
14120         object file when targetting cygwin.
14121         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
14122         overridden by top-level Makefile.
14123
14124 2004-02-21  Roger Sayle  <roger@eyesopen.com>
14125
14126         * config/i386/i386.c (standard_80387_constant_p): Also prefer
14127         the x87's load constant instructions when optimizing for size.
14128
14129 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
14130
14131         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
14132         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
14133         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
14134         * fold-const.c: Likewise.
14135         * simplify-rtx.c: Likewise.
14136
14137 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
14138
14139         * combine.c (can_combine_p): Don't ignore SETs marked with
14140         REG_EH_REGION notes.
14141         (try_combine): When attemting to fix unrecognized insns, don't
14142         split a PARALLEL that contains the original i2.
14143
14144 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
14145
14146         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
14147         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
14148         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
14149         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
14150         (vector, pixel, bool): #define to __vector, __pixel and __bool.
14151         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
14152         portion of header.
14153         (__altivec_link_error_invalid_argument): Remove prototype; will use
14154         __builtin_altivec_compiletime_error("vec_*") instead.
14155         (vec_*): Fix/complete set of available operation overloads given the
14156         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
14157         cv-correctness of pointer arguments; in C, always check for correct
14158         argument types before macro expansion.
14159         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
14160         defining Darwin/PowerPC-specific '-f[no-]altivec' and
14161         '-W[no-]altivec-long-deprecated' switches.
14162         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
14163         '__vector', '__pixel' and '__bool' macros using
14164         '__attribute__((altivec(...)))' types.
14165         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
14166         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
14167         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
14168         New type nodes.
14169         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
14170         handling '-W[no-]altivec-long-deprecated'.
14171         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
14172         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
14173         altivec_expand_dst_builtin): Remove casts from integer literals.
14174         (altivec_expand_builtin): Likewise; handle expansion of new
14175         '__builtin_altivec_compiletime_error' function.
14176         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
14177         types, and make them distinct from other vector types; register
14178         '__builtin_altivec_compiletime_error' function.
14179         (print_operand): For 'P', print a full target register name instead of
14180         merely its number.
14181         (rs6000_attribute_table): Add "altivec" attribute.
14182         (rs6000_handle_altivec_attribute): New function.
14183         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
14184         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
14185         maps to).
14186         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
14187         declare.
14188         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
14189
14190 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14191
14192         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
14193         check.
14194         (shift_mix4left+2): Delete redundant pattern.
14195
14196 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14197
14198         * alias.c (OUTGOING_REGNO): Don't define the default.
14199         * builtins.c (OUTGOING_REGNO): Likewise.
14200         (INCOMING_REGNO): Likewise.
14201         (apply_args_register_offset): Always use OUTGOING_REGNO.
14202         * combine.c (OUTGOING_REGNO): Likewise.
14203         * sibcall.c (OUTGOING_REGNO): Likewise.
14204         * defaults.h (INCOMING_REGNO): Provide the default.
14205         (OUTGOING_REGNO): Likewise.
14206
14207 2004-02-21  Jan Hubicka  <jh@suse.cz>
14208
14209         * params.def (max-peeled-insns, max-completely-peeled-insns,
14210         max-once-peeled-insns): Set to 400.
14211
14212 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14213
14214         PR c++/12007
14215         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
14216         are set for parameters before outputing debugging information.
14217
14218 2004-02-20  Falk Hueffner  <falk@debian.org>
14219
14220         PR target/14201
14221         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
14222         numbers.
14223
14224 2004-02-20  Per Bothner  <per@bothner.com>
14225
14226         * input.h:  Don't #include line-map.h.  It may cause link problems
14227         with undefined linemap_line_start when line-map.h is included but
14228         line-map.o is not linked, as currently happens with gengtype on
14229         compilers that don't support inline.
14230         * toplev.c:  So we do have to explicitly #include line-map.h here.
14231
14232 2004-02-20  Richard Henderson  <rth@redhat.com>
14233
14234         * doc/invoke.texi: Add -Wvariadic-macros.
14235
14236 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14237
14238         * haifa-sched.c (sched_emit_insn): Remove.
14239         * sched-int.h: Remove the corresponding prototype.
14240
14241 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14242
14243         Revert:
14244         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14245         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14246         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14247         * config/cris/cris.h: Remove a comment about
14248         DEFAULT_SHORT_ENUMS.
14249         * config/ip2k/ip2k.h: Likewise.
14250         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14251
14252 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
14253             Tom Tromey  <tromey@redhat.com>
14254
14255         * doc/install.texi: Moved --disable-libgcj and
14256         --with-system-zlib documentation to new section for
14257         Java-specific options.
14258         Added explicit Cross-Compiler-Specific Options subheading.
14259         Added section for Java-specific options.
14260
14261 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
14262
14263         * doc/install.texi (Building the Ada compiler): Remove
14264         example.
14265
14266 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14267
14268         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
14269
14270 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14271
14272         * gcc.c (process_command): Allow translation of the copyright
14273         symbol but not the rest of the copyright message.
14274         * gcov.c (print_version): Likewise.  Allow translation of the
14275         message about warranty.
14276
14277 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
14278
14279         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
14280         predicate.
14281         ("*andsi_clear"): Tweak constraints to not match postincrement.
14282         Adjust the predicate to exclude a volatile memory reference.
14283         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
14284         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
14285
14286 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
14287
14288         * move-if-change: Remove.
14289         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
14290         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
14291         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
14292         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
14293         (s-gtyp-gen, s-iov): Use the top level move-if-change.
14294         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
14295
14296 2004-02-19  James E Wilson  <wilson@specifixinc.com>
14297
14298         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
14299         for operand2.  Add condition that requires register_operand operand2
14300         before reload.
14301
14302 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
14303             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
14304
14305         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
14306         * config/mips/mips.md: Expand comment above unaligned loads and stores.
14307
14308 2004-02-19  Richard Henderson  <rth@redhat.com>
14309
14310         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
14311         * tree.c (build0, build1, build2, build3, build4): Split out from...
14312         (build): ... here.  Call them.
14313         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
14314
14315         * convert.c (convert_to_integer): Remove extra build argument.
14316         * tree-inline.c (expand_call_inline): Likewise.
14317
14318 2004-02-19  Richard Henderson  <rth@redhat.com>
14319
14320         * c-opts.c (warn_variadic_macros): New.
14321         (c_common_handle_option): Set it.
14322         (sanitize_cpp_opts): Copy it to cpp_opts.
14323         * c.opt (Wvariadic-macros): New.
14324         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
14325         * cppinit.c (cpp_create_reader): Initialize it.
14326         * cppmacro.c (parse_params): Check it.
14327
14328 2004-02-19  David Daney <ddaney@avtrex.com>
14329
14330         PR preprocessor/14198
14331         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
14332         builtin_assert ("machine=mips")
14333
14334 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14335
14336         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14337         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14338         * config/cris/cris.h: Remove a comment about
14339         DEFAULT_SHORT_ENUMS.
14340         * config/ip2k/ip2k.h: Likewise.
14341         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14342
14343 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14344
14345         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
14346         when passing single SFmode quantities in general registers,
14347         put them in the high half.
14348
14349 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14350
14351         * doc/md.texi (Standard Names): Document additional dependency on
14352         fix pattern.
14353
14354         * optabs.c (ftruncify): Remove.
14355         (expand_fix): Manually inline ftruncify above.
14356         (can_fix_p): Add FIXME note.
14357
14358 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14359
14360         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
14361         spe_fixuns_truncsfsi2.
14362
14363         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
14364         fixuns_truncsfsi2.
14365
14366 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
14367
14368         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
14369         * testsuite/gcc.dg/20040219-1.c: New test.
14370
14371 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
14372
14373         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
14374         "*subsf3_cconly"): Subtraction is not commutative.
14375
14376 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14377
14378         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
14379         (sdbout_symbol): If called before sdbout_init, queue DECL for
14380         later and return.
14381         (sdbout_init): Set sdbout_initialized true, process decls
14382         queued earlier by sdbout_symbol.
14383         (sdbout_finish): Use size_t for index variable.
14384
14385 2004-02-19  Jeff Law  <law@redhat.com>
14386
14387         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
14388         for unordered comparison codes.
14389
14390 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
14391
14392         * reload1.c (reload): Correct comment.
14393         (scan_paradoxical_subregs): Remove #if 0 and old comment.
14394         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
14395         register variables are not used by reload.
14396
14397 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
14398
14399         PR target/14209
14400         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
14401         constraints to not match postincrement.  Adjust the predicate to
14402         exclude a volatile memory reference.
14403
14404 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14405
14406         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
14407
14408 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14409
14410         * hooks.c (hook_void_tree_int): Remove.
14411         (hook_void_constcharptr): Likewise.
14412         (hook_int_void_0): Likewise.
14413         * hooks.h: Remove the prototypes for the above three
14414         functions.
14415         * targhooks.c (hook_bool_machine_mode_true): Remove.
14416         * targhooks.h: Remove the prototype for
14417         hook_bool_machine_mode_true.
14418
14419 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14420
14421         * emit-rtl.c (subreg_realpart_p): Remove.
14422         (reorder_insns_with_line_notes): Likewise.
14423         (end_full_sequence): Likewise.
14424         * rtl.h: Remove the prototype for the above functions.
14425
14426 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14427
14428         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
14429         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14430         config/iq2000/iq2000.h, config/m32r/m32r.h,
14431         config/pdp11/pdp11.h, config/sparc/sparc.h,
14432         config/xtensa/xtensa.h: Remove commented-out or useless
14433         definitions of CASE_VECTOR_PC_RELATIVE.
14434
14435 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14436
14437         * loop.c (all_sets_invariant_p): Remove.
14438
14439 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14440
14441         PR target/12916
14442         * config/sparc/sparc.h (NPARM_REGS): Delete.
14443         (BASE_RETURN_VALUE_REG): Likewise.
14444         (BASE_OUTGOING_VALUE_REG): Likewise.
14445         (BASE_PASSING_ARG_REG): Likewise.
14446         (BASE_INCOMING_ARG_REG): Likewise.
14447         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
14448         TARGET_ARCH64, not TARGET_V9.
14449         (function_arg_slotno): Dispatch based on the mode class.
14450         Handle vector modes like floating-point modes.
14451         (function_arg_record_value_1): Handle vector types like
14452         floating-point types.
14453         (function_arg_record_value_2): Likewise.
14454         Calculate regno after mode transformation.
14455         (function_arg): Handle vector modes like floating-point modes.
14456         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
14457         If ARCH64, do not recheck alignment.
14458         (function_arg_pass_by_reference): Reorder the conditions.
14459         (sparc_return_in_memory): Move after function_arg_padding.
14460         Implement calling conventions for vector modes.
14461         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
14462         (function_value): Move scope of 'regbase'.
14463         Implement calling conventions for vector modes.
14464         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
14465         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
14466         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
14467         the argument is passed by reference.
14468         (sparc_type_code): Handle vector types.
14469
14470 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
14471
14472         * function.c (assign_parms): When building decl_rtl for
14473         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
14474
14475 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
14476
14477         * expr.c (is_aligning_offset): Check if we are aligning the
14478         expressions's address over BIGGEST_ALIGNMENT in bytes, not
14479         in bits.
14480
14481 2004-02-18  Matt Austern  <austern@apple.com>
14482
14483         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
14484         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
14485         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
14486         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
14487         spec string.
14488         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
14489
14490 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
14491
14492         * dwarf2out.c (loclabel_num): Move outside #ifdef
14493         DWARF2_DEBUGGING_INFO and mark with GTY(()).
14494         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
14495         Mark with GTY(()).
14496         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
14497         Allocate memory with ggc_alloc.  No need to copy anything.
14498         (ia64_hpux_file_end): Update to match.
14499
14500 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14501
14502         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
14503         by default.
14504
14505 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14506
14507         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
14508         ("divmodtisi3"): Likewise.
14509         ("udivmoddi4", "udivmodtidi3"): Likewise.
14510         ("divmodsi4", "divmoddisi3"): Likewise.
14511         ("udivmodsi4", "udivmoddisi3"): Likewise.
14512         ("udivsi3", "umodsi3"): Likewise.
14513
14514 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14515
14516         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
14517         placeholder insn when chunkifying the pool.
14518
14519 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14520
14521         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
14522         generating PIC code.
14523
14524 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14525
14526         * config/h8300/h8300-protos.h: Add a prototype for
14527         h8300_expand_branch.
14528         * config/h8300/h8300.c (h8300_expand_branch): New.
14529         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
14530         bgtu, beq, bne): Call h8300_expand_branch().
14531
14532 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14533
14534         * config/h8300/h8300-protos.h: Add prototypes for
14535         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
14536         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
14537         (h8300_hard_regno_mode_ok): Likewise.
14538         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
14539         h8300_hard_regno_nregs().
14540         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
14541
14542 2004-02-18  Per Bothner  <per@bothner.com>
14543
14544         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
14545         partly reverts my 2003-10-01 change, because we're back to logically
14546         including <command line> inside the main line.
14547         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
14548         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
14549         Fixes PR preprocessor/14103.
14550
14551         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
14552         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
14553         (cpp_push_include):  Don't need to increment pfile's line field.
14554         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
14555
14556         * c-ppoutput.c (print struct):  New first_time field.
14557         (init_pp_output):  Set print.first_time.
14558         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
14559         which is set also for (say) <command line>.  Clear print.first_time.
14560
14561         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
14562         does not match the code, so fix both.
14563         (should_stack_file):  Inline include_pch_p function.
14564         (include_pch_p):  Remove pointless function.
14565
14566         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
14567
14568 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14569
14570         * config/h8300/h8300.md (four define_peephole2's): Use
14571         h8300_regs_ok_for_stm().
14572
14573 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14574
14575         * config/h8300/h8300-protos.h: Update the prototype for
14576         expand_a_rotate().
14577         * config/h8300/h8300.c (expand_a_rotate): Remove the first
14578         argument.
14579         * config/h8300/h8300.md: Update all callers.
14580
14581 2004-02-18  Jan Hubicka  <jh@suse.cz>
14582
14583         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
14584         floats.
14585         (simplify_binary_operation): Deal with logicals on floats.
14586
14587         * i386.md (SSE fabs splitters): Emit new patterns.
14588         (SSE cmov splitters): Likewise.
14589         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
14590         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
14591         subregs.
14592         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
14593         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
14594
14595 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14596
14597         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
14598         by hand.
14599         (output_a_rotate): Tweak a comment.
14600         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
14601         (*rotlhi3_1): Change to rotlhi3_1.
14602         (*rotlsi3_1): Change to rotlsi3_1.
14603
14604 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
14605
14606         PR target/13866
14607         * arm.c (load_multiple_operation): Don't insist that the source reg
14608         of a post-increment component is the same as the destination.
14609         (store_multiple_operation): Likewise.
14610
14611 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14612
14613         * config/h8300/h8300.md: Move movsf patterns into one section
14614         of the file.
14615
14616 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14617
14618         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
14619         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
14620         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
14621         config/mips/linux64.h, config/pa/pa-64.h,
14622         config/rs6000/aix51.h, config/rs6000/aix52.h,
14623         config/rs6000/spe.md, config/sparc/linux.h,
14624         config/sparc/linux64.h: Update copyright.
14625
14626 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14627
14628         * config/h8300/h8300.md: Move push patterns into one
14629         section of the file.
14630
14631 2004-02-18  Mark Mitchell <mark@codesourcery.com>
14632
14633         PR c++/11326
14634         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
14635         fntype.
14636
14637 2004-02-18  Paul Brook  <paul@codesourcery.com>
14638
14639         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
14640
14641 2004-02-18  Paul Brook  <paul@codesourcery.com>
14642
14643         PR debug/12934
14644         * dwarf2out.c (loc_descriptor_from_tree): Handle
14645         EXPR_WITH_FILE_LOCATION.
14646
14647 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14648
14649         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
14650         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
14651         trailing whitespace from instructions.
14652
14653 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
14654
14655         * configure.ac: When generating auto-build.h, pass
14656         --enable-languages to the sub-configure.
14657         Put quotes around ${program_transform_name} when generating
14658         name of as, ld, nm, objdump.
14659         * configure: Regenerate.
14660
14661 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
14662
14663         * Makefile.in (s-check, s-config, s-conditions, s-flags)
14664         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
14665         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
14666         (s-preds, s-iov): Do not depend on move-if-change.
14667
14668 2004-02-17  James E Wilson  <wilson@specifixinc.com>
14669
14670         * caller-save.c (insert_restore): Pass mem through copy_rtx.
14671         (insert_save): Likewise.
14672
14673 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14674
14675         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
14676         warning.
14677
14678 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14679
14680         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
14681         *one_cmplsi2_h8300.
14682         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
14683
14684 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14685
14686         * config/h8300/h8300-protos.h: Update the prototype of
14687         fix_bit_operand().
14688         * config/h8300/h8300.c (fix_bit_operand): Remove the second
14689         argument "what".
14690         * config/h8300/h8300.md: Update all callers.
14691
14692 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14693
14694         * config/h8300/h8300.c (fix_bit_operand): Change the name of
14695         the last argument to "code" from "type".
14696
14697 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14698
14699         * config/h8300/h8300.c: Remove an extern declaration of
14700         rtx_equal_function_value_matters.
14701
14702 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14703
14704         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
14705         by hand.
14706         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
14707         (*iorqi3_1): Change to iorqi3_1.
14708         (*xorqi3_1): Change to xorqi3_1.
14709
14710 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14711
14712         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
14713         typos.
14714
14715 2004-02-17  Jan Hubicka  <jh@suse.cz>
14716
14717         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
14718
14719 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
14720
14721         PR optimization/14119
14722         * combine.c (try_combine): When attemting to fix unrecognized insns,
14723         don't delete SETs marked with REG_EH_REGION notes.
14724
14725 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
14726
14727         * combine.c (simplify_if_then_else): Do not replace
14728         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
14729         modes differ.
14730
14731 2004-02017  Steven Bosscher  <stevenb@suse.de>
14732
14733         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
14734         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
14735         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
14736         * ada/utils.c: Likewise.
14737         * cp/decl.c: Likewise.
14738         * f/com.c: Likewise.
14739         * java/class.c: Likewise.
14740
14741 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14742
14743         * config/h8300/h8300.md: Fix comment typos.
14744
14745 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14746
14747         * config/mips/t-iris6gld: Renamed to ...
14748         * config/mips/t-irix-gld: ... this.
14749         * config.gcc (mips-sgi-irix6*): Reflect this
14750         (mips-sgi-irix5*): Use it with GNU ld.
14751
14752         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
14753         to ...
14754         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
14755         * config/mips/t-irix-gld: Reflect this.
14756         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14757
14758         * config/mips/iris5gld.h: New file.
14759         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
14760         Only use collect2 without gas.
14761
14762         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
14763         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14764         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
14765         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14766
14767         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
14768         * config/mips/iris5.h: ... here.
14769
14770         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
14771         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14772         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
14773
14774         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
14775         using irix_startfile_spec, irix_endfile_spec.
14776
14777 2004-02-16  Gunther Nikl  <gni@gecko.de>
14778
14779         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
14780
14781 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14782
14783         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
14784         insns by hand.
14785
14786 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14787
14788         * cfghooks.c (split_edge): Speed up updating of dominators.
14789
14790 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
14791
14792         PR c++/11326
14793         * c-common.c (flag_abi_version): Remove.
14794         * c-common.h (flag_abi_version): Likewise.
14795         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
14796         * c.opt (fabi-version): Remove.
14797         * calls.c (expand_call): Always pass a function type to
14798         struct_value_rtx.  Use convert_memory_address.
14799         * common.opt (fabi-version): Add it.
14800         * flags.h (flag_abi_version): Likewise.
14801         (abi_version_at_least): New macro.
14802         * opts.c (common_handle_option): Add OPT_fabi_version.
14803         * toplev.c (flag_abi_version): Define it.
14804         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
14805         New function.
14806         (ia64_output_mi_thunk): Use it.
14807         (ia64_struct_value_rtx): Likewise.
14808
14809 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14810
14811         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
14812         Don't generate insns by hand.
14813
14814 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
14815
14816         PR c++/14178
14817         * doc/invoke.texi (fabi-version): The default is 2 now.
14818
14819 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14820
14821         * loop-iv.c: New file.
14822         * Makefile.in (loop-iv.o): New.
14823         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
14824         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
14825         num_loop_branches): New functions.
14826         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
14827         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
14828         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
14829         get_simple_loop_desc, free_simple_loop_desc): Declare.
14830         (simple_loop_desc): New inline function.
14831         (struct rtx_iv, struct niter_desc): New.
14832         * cfgloopmanip.c (loopify): Specify semantics more precisely.
14833         * expr.c (force_operand): Handle subregs of expressions created by
14834         loop unroller.
14835         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
14836         parts of the initialization to toplev.c
14837         * loop-unroll.c (loop_exit_at_end_p): New.
14838         (unroll_and_peel_loops): Call iv_analysis_done.
14839         (decide_peel_once_rolling, decide_peel_completely,
14840         decide_unroll_stupid, decide_unroll_constant_iterations,
14841         decide_unroll_runtime_iterations, decide_peel_simple,
14842         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
14843         unroll_loop_runtime_iterations): Use new simple loop analysis.
14844         * loop-unswitch.c (compare_and_jump_seq): New.
14845         (may_unswitch_on_p): Renamed to ...
14846         (may_unswitch_on): Use new iv analysis.
14847         (reversed_condition): Export.
14848         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
14849         * predict.c (estimate_probability): Use new simple loop analysis.
14850         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
14851         canon_condition, simplify_using_condition): Declare.
14852         * stor-layout.c (get_mode_bounds): New.
14853         * toplev.c (rest_of_handle_loop2): Some parts of
14854         initialization/finalization moved here from loop-init.c.
14855
14856 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14857
14858         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
14859         pointer.
14860         (CALL_USED_REGISTERS): Likewise.
14861         (REG_ALLOC_ORDER): Likewise.
14862         (REG_CLASS) <GENERAL_REGS>: Likewise.
14863
14864 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
14865
14866         * doc/md.texi (Insn Canonicalizations): Document left-chaining
14867         in associative operators.
14868         * rtlanal.c (commutative_operand_precedence): Create some new
14869         variables.  Prefer a commutative operand on the left, then
14870         binary expressions, then NEG and NOT.
14871
14872 2004-02-16  Matthias Klose  <doko@debian.org>
14873
14874         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
14875         in terms of SHLIB_SOVERSION.
14876         * config/m68k/t-slibgcc-elf-ver: New file.
14877         * config/pa/t-slibgcc-elf-ver: New file.
14878         * config.gcc (m68k-linux, parisc-linux): Use them when not
14879         sjlj exceptions are not configured.
14880
14881 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
14882
14883         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
14884
14885 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
14886
14887         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
14888
14889 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
14890
14891         * doc/sourcebuild.texi: Mention backends.html.
14892
14893 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
14894
14895         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
14896         line-map.c, line-map.h, var-tracking.c: Fix comment
14897         formatting.
14898
14899 2004-02-16  Richard Henderson  <rth@redhat.com>
14900
14901         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
14902
14903         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
14904
14905 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14906
14907         * config/h8300/h8300.md: Remove unnecessary parallels from
14908         all define_insn and define_split patterns.
14909
14910 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14911
14912         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
14913         "clobber").
14914
14915 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
14916
14917         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
14918         '%#'.
14919
14920 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14921
14922         * config/ia64/ia64.c, config/mips/mips.c,
14923         config/mmix/mmix-modes.def: Fix comment typos.
14924
14925 2004-02-15  Roger Sayle  <roger@eyesopen.com>
14926
14927         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
14928         (get_directive_line): Remove unused function prototype.
14929
14930 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14931
14932         * tree-inline.c (copy_body_r): Do not replace ret_label.
14933
14934 2004-02-14  Jan Hubicka  <jh@suse.cz>
14935
14936         * i386.c (x86_four_jump_limit): New variable.
14937         (k8_avoid_jump_misspredicts): Rename to ...
14938         (ix86_avoid_jump_misspredicts): .. this one.
14939         (ix86_pad_returns): Break out from ...
14940         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
14941         to.
14942         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
14943
14944 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14945
14946         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
14947         PARALLEL is NULL.
14948
14949 2004-02-14  Per Bothner  <per@bothner.com>
14950
14951         * fix-header.c (line_table):  Move local variable in main to global.
14952         * scan.h (line_table):  Use it.
14953         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
14954         line (recently renamed to src_loc) before calling recognized_function.
14955
14956 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
14957
14958         * Makefile.in: Fix comment typos.
14959
14960 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
14961
14962         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
14963         for start_value when it is directly moved into reg, and factorize
14964         the retrieval of GET_MODE (reg).
14965
14966 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14967
14968         * config/mips/mips-protos.h (mips_load_got_page): Delete.
14969         (mips_load_got_global): Delete.
14970         (mips_gotoff_page): Declare.
14971         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
14972         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
14973         UNSPEC_LOAD_GOT pattern rather than a MEM.
14974         (*load_got[sd]i): New patterns.
14975         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
14976         (mips_load_got_page, mips_load_got_global): Delete.
14977         (mips_gotoff_page): New function.
14978         (override_options): Don't initialize mips_got_alias_set.
14979
14980 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14981
14982         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
14983         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
14984         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
14985         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
14986         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
14987         * config/mips/mips.c: Fix some overly-long lines.
14988         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
14989         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
14990
14991 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14992
14993         * configure.ac: Search for as, ld below libexec/gcc.
14994         * configure: Regenerate.
14995
14996 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14997
14998         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
14999         __builtin_arm_setwcx ().
15000         * config/arm/arm.c (arm_expand_builtin): Generate operands
15001         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
15002
15003 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
15004
15005         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
15006         and "wmuluh" to "wmulsm" and "wmulum", respectively.
15007         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
15008         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
15009         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
15010         (_mm_mulhi_pu16): Likewise.
15011
15012 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
15013
15014         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
15015         DECL_NAME != 0 before dereferencing.
15016
15017 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
15018
15019         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
15020         (s390_output_addr_const_extra): Declare.
15021         (s390_output_pool_entry): Remove FILE * argument.
15022         * config/s390/s390.c (s390_output_symbolic_const): Remove.
15023         (s390_output_addr_const_extra): New function.
15024         (print_operand_address): Call output_addr_const instead of
15025         s390_output_symbolic_const.
15026         (print_operand): Likewise.
15027         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
15028         Remove FILE * argument.
15029         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
15030         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
15031         call.
15032
15033 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15034
15035         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
15036         (struct edge, struct vertex, struct graph): New.
15037         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
15038         free_graph): New functions.
15039
15040 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
15041
15042         * config/mips/mips.md (casesi_internal, casesi_internal_di):
15043         Use ".set macro" to avoid warnings about multi-instruction
15044         macros, since they're intentional.
15045
15046 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
15047
15048         * config/darwin.h: Add include guards.  Remove old, now incorrect,
15049         comment about STANDARD_EXEC_PREFIX.
15050
15051         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
15052         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
15053         for installing .1 manpages.  Add rules for installing cpp
15054         and gcov manpages under their installed names.
15055
15056 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
15057
15058         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
15059         host, but try LD_FOR_TARGET first.
15060         * configure: Rebuilt.
15061
15062 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15063
15064         * dbxout.c: Move declaration of dbxout_type_decl outside
15065         #ifdef DBX_DEBUGGING_INFO.
15066         * c-parse.in: Don't give the asmdef production a type.
15067
15068 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15069
15070         * debug.h (struct gcc_debug_hooks): Add type_decl field.
15071         (debug_nothing_tree_int): Prototype.
15072         (dwarf_debug_hooks): Delete, unused.
15073         * debug.c (do_nothing_debug_hooks): Update.
15074         (debug_nothing_tree_int): New function.
15075         * langhooks.h (struct lang_hooks_for_decls):
15076         Remove builtin_type_decls field.
15077         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
15078         (LANG_HOOKS_DECLS): Update.
15079         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
15080         Use debug_hooks->type_decl.
15081         * dbxout.c (preinit_symbols): New static.
15082         (dbx_debug_hooks, xcoff_debug_hooks): Update.
15083         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
15084         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
15085         for symbols to output.
15086         (dbxout_type_decl): New function.
15087         (dbxout_symbol): If called before dbxout_init has run, queue
15088         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
15089         to TYPE_DECLs before emitting them.
15090         * xcoffout.c (assign_type_number): Delete.
15091         (xcoff_type_numbers): New static table.
15092         (xcoff_assign_fundamental_type_number): New function.
15093         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
15094         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
15095         * sdbout.c: Include varray.h.
15096         (deferred_global_decls): New static.
15097         (sdb_debug_hooks): Update.
15098         (sdbout_global_decl): If we can't emit something right now,
15099         remember it in deferred_global_decls.
15100         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
15101         (sdbout_init): Initialize deferred_global_decls.
15102         * Makefile.in: Update dependencies of sdbout.o.
15103         * dwarf2out.c (dwarf2out_type_decl): New function.
15104         (dwarf2_debug_hooks): Update.
15105         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
15106         * c-decl.c (getdecls): Just return 0.
15107         (check_for_loop_decls): Don't use getdecls.
15108         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
15109         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
15110
15111 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
15112
15113         * config/s390/s390.c (s390_sched_reorder2): Remove.
15114         (TARGET_SCHED_REORDER2): Do not redefine.
15115
15116 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15117
15118         * c-parse.in (maybe_type_qual): Delete.
15119         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
15120         (asm_argument): New grammar rules.
15121         (extdef_1): Use asmdef.
15122         (maybeasm): Move down with other asm rules; use simple_asm_expr.
15123         (xexpr): Move up with other expression rules.
15124         (stmt): Use asm_stmt.
15125
15126         * c-typeck.c (build_asm_expr): New function - body mostly
15127         pulled from build_asm_stmt.
15128         (build_asm_stmt): Just handle tacking on the volatile qualifier.
15129         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
15130
15131 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
15132
15133         PR bootstrap/13617
15134         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
15135         (mips_declare_object): Make variadic.
15136         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
15137         mips_output_aligned_decl_common.
15138         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
15139         (mips_declare_object): Make variadic.
15140
15141 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15142
15143         * function.c (update_epilogue_consts): Teach about binary operations.
15144
15145         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
15146         previous MEM_VOLATILE in REF.
15147         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
15148         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
15149
15150 2004-02-12  Gunther Nikl  <gni@gecko.de>
15151
15152         * config.gcc: Restore support for m68k-openbsd.
15153
15154 2004-02-12  Jan Hubicka  <jh@suse.cz>
15155
15156         * tree-optimize.c (tree_rest_of_compilation): Do not release
15157         DECL_ARGUMENTS.
15158
15159 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
15160
15161         * doc/install.texi: Fix the spelling of "explicitly".
15162
15163 2004-02-11  Eric Christopher  <echristo@redhat.com>
15164
15165         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
15166         duplicate argument structure of cpp_interpret_string.
15167         * cpphash.h: Move prototype...
15168         * cpplib.h: Here.
15169         * cpplib.c: Fix calls to match new function signature.
15170
15171 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15172
15173         PR c/456
15174         * cppexp.c (num_binary_op): Don't allow comma operators in #if
15175         constant expressions at all outside C99 mode if pedantic.
15176
15177 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
15178
15179         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
15180         (log10_optab, log2_optab): Define corresponding macros.
15181         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
15182         * genopinit.c (optabs): Implement log10_optab and log2_optab
15183         using log10?f2 and log2?f2 patterns.
15184         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
15185         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
15186         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
15187         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
15188
15189         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
15190         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
15191         log2, log2f and log2l built-ins as inline x87 intrinsics.
15192
15193 2004-02-11  Richard Henderson  <rth@redhat.com>
15194
15195         PR target/1532
15196         * flow.c (insn_dead_p): A clobber of a dead hard register is a
15197         dead insn after reload.
15198
15199 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
15200
15201         * tree.h (frame_base_decl): Add GTY marker.
15202         * var-tracking.c (frame_base_decl): Likewise.
15203
15204 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
15205
15206         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
15207         incorrect, hunk.
15208         (add_location_or_const_value_attribute): Use text_section_label,
15209         not TEXT_SECTION_NAME.
15210
15211 2004-02-11  Per Bothner  <per@bothner.com>
15212
15213         Represent column numbers using line-map's source_location.
15214         The "next available source_location" is now managed internally by
15215         line-maps.c rather than by clients.
15216         * line-map.h (struct line_map):  New field column_bits.
15217         <from_line>:  Rename field to start_location.
15218         (struct line_maps):  New fields highest_location and max_column_hint.
15219         (linemap_check_files_exited):  New declaration.
15220         (linemap_line_start):  New declaration.
15221         (linemap_add):  Remove from_line parameter; use highest_location field.
15222         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
15223         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
15224         (CURRENT_LINE_MAP):  Remove macro.
15225         (linemap_position_for_column):  New inline function.
15226         * line-map.c (linemap_init):  Clear new fields.
15227         (linemap_check_files_exited):  New function, extracted from ...
15228         (linemap_free):  Use linemap_check_files_exited.
15229         (linemap_add):  Remove from_line parameter.  Various updates.
15230         (linemap_line_start):  New function.
15231         (linemap_lookeup):  Update for new field names.
15232         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
15233         linemap_position_for_column may unpredictably change the current map,
15234         it is cleaner and simpler for us to not cache it in cpp_reader.
15235         (struct cpp_buffer):  New sysp field.
15236         Changed warned_cplusplus_comments and from_stage3 to bitfields.
15237         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
15238         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
15239         current map using linemap_lookup.
15240         (do_linemarker):  Also set buffer's sysp field.
15241         (destringize_and_run):  No longer need to decrement current line.
15242         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
15243         (search_path_head, open_file_failed):  Use buffer's sysp.
15244         (cpp_make_system_header):  Get current map using linemap_lookup.
15245         Also set buffer's sysp flag.
15246         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
15247         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
15248         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
15249         (struct cpp_reader):  ... and adding saved_line_base field.
15250         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
15251         Update accordingly.  Don't adjust line.
15252         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
15253         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
15254         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
15255         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
15256         * cpplex.c (_cpp_lex_direct):  Likewise.
15257         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
15258         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
15259         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
15260         Remove col field as it is now subsumed by src_loc.
15261         * cpperror.c:  Update various field, parameter, and macro names.
15262         (print_location):  If col==0, try SOURCE_COLUMN of line.
15263         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
15264         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
15265         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
15266         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
15267         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
15268         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
15269         (_cpp_lex_direct):  Use linemap_position_for_column.
15270         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
15271         parameter.  Instead get it from the line_table global.  Adjust callers.
15272         (print):  Remove map field.  Replace line field to src_line.
15273         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
15274         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
15275         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
15276         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
15277         * cpptrad.c (copy_comment):  Rename variable.
15278         * c-lex.c (map):  Remove static variable, for same reason we removed
15279         cpp_reader's map field.
15280         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
15281         to call linemap_lookup.
15282         (cb_line_change):  Token's line field replaced by src_loc.
15283         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
15284         Don't save new_map.
15285
15286         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
15287         source_location.
15288
15289 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15290
15291         * config/rs6000/altivec.md (*movv4si_internal): At least one
15292         operand must be register_operand.
15293         (*movv8hi_internal1): Likewise.
15294         (*movv16qi_internal1): Likewise.
15295         (*movv4sf_internal1): Likewise.
15296
15297 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
15298
15299         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
15300         operand.
15301         (movv4hi_internal): Same.
15302         (movv2sf_internal): Same.
15303         (movv1di_internal): Same.
15304
15305 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
15306
15307         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
15308         TARGET_OLDABI consistently.
15309         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
15310         mips_va_arg,override_options,compute_frame_size,
15311         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
15312         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
15313         and TARGET_OLDABI consistently.
15314         * config/mips/mips.md (exception_receiver): Likewise.
15315         * config/mips/linux64.h: Likewise.
15316
15317 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15318
15319         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
15320         Set AltiVec ABI and vrsave as default for ppc64 linux.
15321         (init_cumulative_args): Post error, if try to return
15322         value in AltiVec register without enable AltiVec.
15323         (function_arg_advance): Ditto for passing arguments.
15324
15325 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
15326
15327         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
15328         a label before updating its usage count.
15329
15330 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
15331
15332         * doc/install.texi: Remove extra cd.
15333
15334 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
15335
15336         * c-common.c (vector_size_helper): Remove; call
15337         reconstruct_complex_type() instead.
15338         * tree.c (reconstruct_complex_type): New function
15339         (formerly vector_size_helper() in c-common.c).
15340         (make_vector): Make externally visible.
15341         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
15342
15343 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15344
15345         * config/h8300/h8300-protos.h: Add a prototype for
15346         h8300_regs_ok_for_stm.
15347         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
15348         * config/h8300/h8300.md (stm_h8300s_2_advanced,
15349         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
15350         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
15351         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
15352         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
15353         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
15354         ldm_h8300s_4_normal, ldm_h8300s_4): Use
15355         h8300_regs_ok_for_stm().
15356
15357 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
15358
15359         PR c/14088
15360         * real.c (real_from_string): Look for 'X' as well as 'x' in
15361         hexfloat strings.
15362
15363 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15364
15365         * config/h8300/h8300.md: Remove an incorrect comment about
15366         peephole2.  Add comments.
15367
15368 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
15369
15370         PR/14058
15371         * emit-rtl.c (set_decl_incoming_rtl): New.
15372         * tree.h (set_decl_incoming_rtl): New.
15373         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
15374         DECL_INCOMING_RTL.
15375         * ada/misc.c (adjust_decl_rtl): Likewise.
15376
15377 2004-02-10  Per Bothner  <per@bothner.com>
15378
15379         * c-opts.c (c_common_post_options):   Don't emit working directory
15380         in cpp output if -P was specified.
15381
15382 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15383
15384         PR c/14092
15385         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
15386         negate_expr back to the original type.
15387
15388 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
15389
15390         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
15391         bump retaddr here.
15392
15393 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15394
15395         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
15396         gen_lowpart_SUBREG): Move under the file in which they
15397         are actually declared.
15398
15399 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
15400
15401         * doc/sourcebuild.texi: Add libada documentation.
15402
15403         * doc/install.texi: Update documentation on Ada build, now
15404         that the GNAT lib and tools are built automatically.
15405
15406 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
15407
15408         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
15409         && TARGET_IRIX.
15410
15411 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
15412
15413         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
15414         boundaries outside build_component_ref() call (a macro in ObjC++).
15415
15416 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
15417
15418         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
15419         (init_cumulative_args): Likewise.
15420         (a7_overlap_mentioned_p): Delete prototype.
15421         * config/xtensa/xtensa.c (struct machine_function): Replace
15422         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
15423         Add set_frame_ptr_insn field.
15424         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
15425         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
15426         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
15427         at the function entry and replace the operand with the pseudo.
15428         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
15429         argument and record this flag in CUMULATIVE_ARGS.
15430         (function_arg): Remove result_mode and special-case code to handle
15431         arguments in a7.  Instead, set need_a7_copy flag when there is an
15432         incoming argument in a7.
15433         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
15434         and use the value recorded in cfun->machine->set_frame_ptr_insn.
15435         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
15436         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
15437         special-case code.
15438         (a7_overlap_mentioned_p): Delete.
15439         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
15440         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
15441         arguments to init_cumulative_args and pass "incoming" flag instead.
15442         (BLOCK_REG_PADDING): Delete.
15443         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
15444         checks for reload_in_progress and reload_completed.  Update calls to
15445         xtensa_copy_incoming_a7.
15446         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
15447         to call xtensa_copy_incoming_a7.
15448
15449 2004-02-09  DJ Delorie  <dj@redhat.com>
15450
15451         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
15452         longer modify standard_exec_prefix, standard_bindir_prefix, or
15453         standard_startfile_prefix.
15454
15455 2004-02-09  James E Wilson  <wilson@specifixinc.com>
15456
15457         PR c++/11295
15458         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
15459         to expand_expr_real call, and pass in alt_rtl as last argument.
15460
15461         PR libstdc++/5625
15462         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
15463         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
15464         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
15465         * except.c (expand_builtin_extend_pointer): New.
15466         * except.h (expand_builtin_extend_pointer): Declare.
15467
15468 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
15469
15470         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
15471         unaligned loads and stores.
15472
15473 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15474
15475         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
15476         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
15477
15478         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
15479         * config/mips/iris5.h: ... here.
15480         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
15481
15482         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
15483         * config/mips/iris5.h: ... here.
15484
15485 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15486
15487         * configure.ac: Remove default executable files before AC_PROG_CC.
15488         * configure: Regenerate.
15489
15490 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
15491
15492         PR target/13721
15493         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
15494         print a operand other than a register.
15495
15496 2004-02-09  Roger Sayle  <roger@eyesopen.com>
15497
15498         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
15499         tree code rather than call fold_convert, which doesn't specify a
15500         default floating point to integer conversion.
15501
15502 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
15503
15504         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
15505         code to support SGS assembler.  Reformat adjacent code where possible.
15506         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
15507         definition.
15508         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
15509         for '%#'.
15510         * config/m68k/linux.h, config/m68k/m68k.c,
15511         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
15512         macros and asm_printf() format strings.
15513         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
15514         * config/m68k/linux.h: Update copyright.
15515         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
15516
15517 2004-02-08  Andreas Schwab  <schwab@suse.de>
15518             Bernardo Innocenti  <bernie@develer.com>
15519
15520         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
15521         REGISTER_PREFIX.
15522         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
15523         frame pointer register, overridable by OS targets.
15524         * (M68K_REGNAME): Macro to obtain register name for asm output,
15525         eventually replacing %a6 with M68K_FP_REG_NAME.
15526         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
15527         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
15528         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
15529         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
15530         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
15531
15532 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15533
15534         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
15535         hook_rtx_tree_int_null.
15536         * targhooks.c (default_struct_value_rtx): Remove.
15537         * targhooks.h: Remove the prototype for
15538         default_struct_value_rtx.
15539         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
15540         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
15541         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15542         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
15543         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
15544         config/rs6000/rs6000.c, config/s390/s390.c,
15545         config/stormy16/stormy16.c, config/v850/v850.c,
15546         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
15547         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
15548
15549 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
15550
15551         * README.Portability: Change "ISO C89" to "ISO C90".
15552         * c-parse.in (primary, initelt): Likewise.
15553
15554 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
15555
15556         * real.c (encode_ibm_extended): Normalize the input value before
15557         converting it to a double.  Handle the case where a normal value
15558         rounds to infinity.
15559
15560 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15561
15562         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
15563         warning.
15564         * cse.c (preferrable): Change to preferable. Update all of its
15565         callers.
15566         * genautomata.c (ainsn): Change
15567         first_ainsn_with_given_equialence_num to
15568         first_ainsn_with_given_equivalence_num.  Update all of its
15569         references.
15570
15571 2004-02-08  Jan Hubicka  <jh@suse.cz>
15572
15573         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
15574
15575 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
15576
15577         * function.c (assign_parms): Fix formatting.
15578
15579 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15580
15581         * default.h (PROMOTE_PROTOTYPES): Remove.
15582         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
15583         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
15584         EXPAND_BUILTIN_SAVEREGS): Poison.
15585         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
15586         hook_bool_tree_false.
15587         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15588         * target.h: Replace SETUP_INCOMING_VARARGS with
15589         targetm.calls.setup_incoming_varargs().
15590         * targhooks.c (default_promote_function_return): Remove.
15591         (default_promote_prototypes): Likewise.
15592         (default_struct_value_rtx): Always abort().
15593         (default_expand_builtin_saveregs): Always print an error
15594         message.
15595         (default_setup_incoming_varargs): Do nothing.
15596         (default_pretend_outgoing_varargs_named): Don't depend on
15597         SETUP_INCOMING_VARARGS.
15598         * targhooks.h: Remove the prototype for
15599         default_promote_function_return and
15600         default_promote_prototypes.
15601
15602 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15603
15604         * system.h (SHARED_SECTION_ASM_OP): Poison.
15605         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
15606         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
15607
15608 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15609
15610         Bug 13856
15611         * c-decl.c (diagnose_mismatched_decls): Only give special
15612         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
15613         is also true.
15614         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
15615         DECL_FUNCTION_CODE when defining a built-in function.
15616         Don't update DECL_ESTIMATED_INSNS.
15617         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
15618         FUNCTION_DECLs.
15619         * tree.h: Delete DECL_ESTIMATED_INSNS.
15620         * tree-inline.c (struct inline_data): Delete inlined_insns field.
15621         (expand_call_inline, optimize_inline_calls): Don't update
15622         DECL_ESTIMATED_INSNS nor inlined_insns.
15623         * cgraphunit.c (cgraph_analyze_function): Don't update
15624         DECL_ESTIMATED_INSNS.
15625
15626 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15627
15628         * c-common.c (shadow_warning): Delete.
15629         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
15630         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
15631         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
15632         * c-parse.in (free_parser_stacks): Delete.
15633
15634 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
15635
15636         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
15637         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
15638         Use the top level mkinstalldirs, not the one in the gcc subdir.
15639         * mkinstalldirs: Remove (from the gcc subdir).
15640
15641 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15642
15643         PR middle-end/13696
15644         * fold-const.c (fold_convert): New function to provide type
15645         conversion to the middle-end without using convert.
15646         (negate_expr, associate_trees, size_diffop, omit_one_operand,
15647         operand_equal_for_comparison_p, pedantic_omit_one_operand,
15648         invert_truthvalue, optimize_bit_field_compare, range_binop,
15649         decode_field_reference, make_range, build_range_check, unextend,
15650         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
15651         fold_binary_op_with_conditional_arg, fold_inf_compare,
15652         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
15653         convert with calls to fold_convert.
15654
15655 2004-02-07  Jan Hubicka  <jh@suse.cz>
15656
15657         * genrecog.c (find_operand): add extra argument stop.
15658         (validate_pattern): Verify that mach_dup is duplicating operand
15659         defined lexically earlier.
15660
15661 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15662
15663         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
15664         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15665         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
15666         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
15667         config/ia64/ia64.h, config/ip2k/ip2k.h,
15668         config/iq2000/iq2000.h, config/mips/iris5.h,
15669         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
15670         config/rs6000/aix51.h, config/rs6000/aix52.h,
15671         config/rs6000/darwin.h, config/rs6000/rs6000.h,
15672         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
15673         config/sparc/linux.h, config/sparc/linux64.h,
15674         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
15675         config/xtensa/xtensa.h: Remove the definitions of
15676         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
15677         MAX_WCHAR_TYPE_SIZE.
15678         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15679         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
15680
15681 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
15682
15683         PR bootstrap/13990
15684         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
15685         gen_rtx_NE.
15686
15687 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
15688
15689         * var-tracking.c (vt_add_function_parameters): Surround checkings by
15690         #ifdef ENABLE_CHECKING and #endif.
15691
15692 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15693
15694         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
15695         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
15696         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
15697         integer types and floating point with unsafe_math_optimizations.
15698         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
15699         Optimize A - B as A + (-B), if B is easily negated.
15700
15701 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15702
15703         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
15704         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
15705         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
15706         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
15707         Update copyright.
15708
15709 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15710
15711         * c-ppoutput.c, var-tracking.c: Fix comment typos.
15712
15713 2004-02-06  James E Wilson  <wilson@specifixinc.com>
15714
15715         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
15716         glibc 2.3 or better.
15717
15718 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15719
15720         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
15721         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
15722
15723 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
15724
15725         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
15726         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
15727         (SHLIB_MKMAP_OPTS): Delete.
15728         (TARGET_LIBGCC2_CFLAGS): Add -specs.
15729         (bispecs): Add rule.
15730         * config/rs6000/libgcc-ppc64.ver: New file.
15731         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
15732         (__floatdidf, __floatdisf): Optimize multiply.
15733         (__fixunstfdi): New function.
15734         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
15735         real and imag parts larger than one register.
15736         (function_arg): Correct type of reg used when fp arg split partially
15737         to stack.
15738         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
15739         and __MACH__ or __powerpc64__.
15740
15741 2004-02-06  Roger Sayle  <roger@eyesopen.com>
15742             Ulrich Weigand  <uweigand@de.ibm.com>
15743
15744         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
15745         of gen_highpart or gen_lowpart when the floating point format is
15746         wider than the result mode.
15747
15748 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
15749
15750         * dwarf2out.c (loclabel_num): Move into #ifdef
15751         DWARF2_DEBUGGING_INFO.
15752
15753 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
15754
15755         * objc/objc-act.c (build_super_template) the 'class' field of
15756         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
15757         (get_super_receiver): Likewise.
15758
15759 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15760
15761         * reload1.c (check_eliminable_occurrences): Optimize the reset
15762         of can_eliminate.
15763         (eliminate_regs_in_insn): Likewise.
15764
15765 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
15766             Josef Zlomek  <zlomekj@suse.cz>
15767
15768         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
15769         at the beginning of function, call dwarf2out_var_location for
15770         NOTE_INSN_VAR_LOCATION note.
15771         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
15772         decl_loc_table): New.
15773         (lookup_decl_loc): New function.
15774         (add_var_loc_to_decl): New function.
15775         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
15776         only if can_use_fbreg.
15777         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
15778         functions.
15779         (loc_descriptor): Likewise. Process VAR_LOCATION.
15780         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
15781         (loc_descriptor_from_tree): Call mem_loc_descriptor with
15782         can_use_fbreg == true.
15783         (add_location_or_const_value_attribute): Added parameter enum
15784         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
15785         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
15786         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
15787         with attr == DW_AT_location.
15788         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
15789         if frame_base_decl is defined and has a location list.
15790         (gen_variable_die): Call add_location_or_const_value_attribute with
15791         attr == DW_AT_location.
15792         (dwarf2out_var_location): New function.
15793         (dwarf2out_begin_function): New function.
15794         (dwarf2out_init): Create decl_loc_table.
15795
15796 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15797
15798         * loop.c (force_movables): Transitively increase the priorities of
15799         all insns forces by an insn, not just the first one.
15800
15801 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
15802             Daniel Berlin <dberlin@dberlin.org>
15803
15804         Josef Zlomek  <zlomekj@suse.cz>
15805         * Makefile.in (var-tracking.o): New.
15806         * common.opt (fvar-tracking): New.
15807         * flags.h (flag_var_tracking): New.
15808         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
15809         * opts.c (common_handle_option): Add OPT_fvar_tracking.
15810         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
15811         * rtl.c (note_insn_name): Likewise.
15812         * rtl.def (VAR_LOCATION): New.
15813         * rtl.h (NOTE_VAR_LOCATION): New.
15814         (NOTE_VAR_LOCATION_DECL): New.
15815         (NOTE_VAR_LOCATION_LOC): New.
15816         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
15817         (variable_tracking_main): New exported function.
15818         * timevar.def (TV_VAR_TRACKING): New.
15819         * toplev.c (enum dump_file_index): Added DFI_vartrack.
15820         (dump_file): "vartrack" was added (-dV).
15821         (flag_var_tracking): New.
15822         (f_options): "var-tracking" was added.
15823         (rest_of_handle_variable_tracking): New function.
15824         (rest_of_compilation): Run variable tracking.
15825         (process_options): If user has not specified flag_var_tracking set it
15826         according to optimize, debug_info_level and debug_hooks.
15827         * tree.h (frame_base_decl): New.
15828         * var-tracking.c: New file.
15829         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
15830         (ia64_override_options): Set flags to run variable tracking in machine
15831         dependent reorg instead of toplev.c.
15832         (ia64_reorg): Run variable tracking if wanted.
15833         * doc/invoke.texi: Mention variable tracking in -dV,
15834         add and -fvar-tracking.
15835         * doc/passes.texi: Added variable tracking pass.
15836
15837         Daniel Berlin <dberlin@dberlin.org>
15838         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
15839         * dbxout.c (dbx_debug_hooks): Likewise.
15840         (xcoff_debug): Likewise.
15841         * debug.c (do_nothing_debug_hooks): Likewise.
15842         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15843         * dwarfout.c (dwarf_debug_hooks): Likewise.
15844         * sdbout.c (sdb_debug_hooks): Likewise.
15845         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15846         * final.c (final_scan_insn): Call var_location debug hook for each
15847         NOTE_INSN_VAR_LOCATION.
15848
15849 2004-02-06  Jan Hubicka  <jh@suse.cz>
15850
15851         * flow.c (update_life_info): Allocate reg_deaths when called from
15852         scheudler.
15853         (attempt_auto_inc):  Update life ranges accordingly.
15854
15855 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15856
15857         PR debug/11816
15858         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
15859
15860 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15861
15862         * cfganal.c (flow_call_edges_add): Never split a libcall block.
15863
15864 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
15865
15866         * dwarf2out.c (output_loc_list): Don't use deltas if we have
15867         a separate line info table in use.
15868         Use the correct size for terminators.
15869         (output_die): Use offset, not delta.
15870
15871 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
15872
15873         * doc/invoke.texi: Remove the pni option from -mfpmath=.
15874
15875 2004-02-06  Jan Hubicka  <jh@suse.cz>
15876
15877         * recog.c (split_all_insns): Do not update reg info.
15878         * regrename.c (regrename_optimize): Likewise.
15879         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
15880         * flow.c (struct propagate_block_info): Add insn_num field.
15881         (reg_deaths): New array.
15882         (life_analysis): Free reg_deaths info.
15883         (allocate_reg_life_data): Allocate reg_deaths array.
15884         (propagate_one_insn): Use new array.
15885         (init_propagate_block): Initialize it.
15886         (free_propagate_block_info): Finish compuation of
15887         REG_LIVE_LENGTH
15888         (attempt_auto_inc): Sanity check that REG_INFO is not
15889         computed at same time.
15890         (mark_used_regs): Update new array.
15891
15892         * reg-stack.c (subst_stack_regs): Unshare clobbers before
15893         substitution.
15894
15895 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15896
15897         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
15898         *extendqisi2_short_displ.
15899
15900 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
15901
15902         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
15903         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
15904         (emit_library_call_value_1): Likewise pass nargs.
15905         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
15906         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
15907         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
15908         parameter instead of scanning TYPE_ARGS_TYPES to count args.
15909         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
15910         prototype.
15911         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
15912         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
15913         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
15914         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
15915         INIT_CUMULATIVE_ARGS.
15916         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
15917         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
15918         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
15919         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
15920         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
15921         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
15922         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15923         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
15924         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
15925         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
15926         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
15927         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
15928
15929 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15930
15931         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
15932         possible.
15933
15934 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15935
15936         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
15937         note containing (plus (reg) (const_int)), where reg is an
15938         eliminable reg, then perform the register elimination without
15939         depending on eliminate_regs().
15940
15941 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15942
15943         * config/arc/arc.c (arc_return_in_memory): Check the return
15944         value of int_size_in_bytes against -1.  Don't check
15945         TREE_ADDRESSABLE.
15946         * config/avr/avr.c (avr_return_in_memory): Check the return
15947         value of int_size_in_bytes against -1.
15948         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
15949         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
15950         Likewise.
15951         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
15952         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
15953         Likewise.
15954
15955 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15956
15957         * config/frv/frv-protos.h: Remove the prototype for
15958         frv_setup_incoming_varargs.
15959         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
15960         (frv_setup_incoming_varargs): Make it static.
15961         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
15962
15963 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15964
15965         * config/fr30/fr30-protos.h: Remove the prototype for
15966         fr30_setup_incoming_varargs.
15967         Update the prototypes for fr30_num_arg_regs and
15968         fr30_function_arg_partial_nregs.
15969         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
15970         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15971         (fr30_setup_incoming_varargs): Make it static.
15972         Add argument second_time.  Don't do anything when second_time
15973         is nonzero.
15974         (fr30_num_arg_regs): Change the type of the first argument to
15975         enum machine_mode.
15976         (fr30_function_arg_partial_nregs): Change the type of the
15977         second argument to enum machine_mode.
15978         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
15979         (SETUP_INCOMING_VARARGS): Remove.
15980
15981 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15982
15983         * config/arc/arc-protos.h: Remove the prototype for
15984         arc_setup_incoming_varargs.
15985         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15986         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15987         (arc_setup_incoming_varargs): Make it static.
15988         (arc_external_libcall): Likewise.
15989         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
15990         Remove the commented-out definition of
15991         ASM_OUTPUT_EXTERNAL_LIBCALL.
15992
15993 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
15994
15995         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
15996         to $$(slibdir) in the installation commands.
15997
15998 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15999
16000         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
16001         with inner_regno, not regno.
16002         * rtlanal.c (refers_to_regno_p): Same.
16003
16004 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16005
16006         * config.gcc: Remove i370 support.
16007
16008 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
16009
16010         * doc/install.texi:  Update automake and autoconf version
16011         requirements.  Note where to find gcj automake version.
16012
16013 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
16014
16015         * Makefile.in (generate-manpages): Move dependencies to ...
16016         (man): here.
16017         * doc/makefile.texi: Document new targets.
16018         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
16019
16020 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
16021
16022         PR/13485
16023         Makefile.in (srcextra):  Add a level of indirection to ...
16024         (gcc.srcextra): ... here.
16025         (po-generated): Delete.
16026         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
16027         options.c.
16028         (start.encap): Remove superfluous lang.srcextra dependency.
16029         objc/Make-lang.in (po-generated):  Delete.
16030
16031 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16032
16033         * config/ia64/ia64.c (REG_GP): Remove.
16034
16035 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16036
16037         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
16038
16039 2004-02-05  Devang Patel  <dpatel@apple.com>
16040
16041         * dwarf2out.c (force_type_die): Look up input type itself
16042         instead of root_type() of type.
16043
16044 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
16045
16046         * config/s390/s390.md ("*tmqidi_ext"): New insn.
16047         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
16048         pre-reload splitters are transformed to post-reload
16049         define_insn_and_split patterns.
16050         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
16051
16052 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16053
16054         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
16055         TARGET_PROMOTE_PROTOTYPES.
16056
16057 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16058
16059         PR middle-end/13750
16060         Revert:
16061         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16062         PR pch/13361
16063         * c-typeck.c (constructor_asmspec): Delete.
16064         (struct initializer_stack): Delete field 'asmspec'.
16065         (start_init): Delete saving of asmspec.
16066         (finish_init): Don't update constructor_asmspec.
16067         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16068         * stmt.c (expand_asm): Duplicate strings from tree.
16069         (expand_asm_operands): Likewise.
16070         * tree.c (tree_size): Update computation of size of STRING_CST.
16071         (make_node): Don't make STRING_CST nodes.
16072         (build_string): Allocate string with tree node.
16073         * tree.def (STRING_CST): Update comment.
16074         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16075         (tree_string): Place contents of string in tree node.
16076         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16077         from tree.
16078
16079 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16080
16081         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
16082         msgid.
16083
16084 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
16085
16086         * config/rs6000/altivec.md (*movv4si_internal): At least one
16087         operand must be altivec_register_operand.
16088         (*movv8hi_internal1): Likewise.
16089         (*movv16qi_internal1): Likewise.
16090         (*movv4sf_internal1): Likewise.
16091
16092 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
16093
16094         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
16095         * configure: Regenerate.
16096
16097 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
16098
16099         * doc/install.texi: Update description of --gxx-include-dir to
16100         give correct default value.
16101
16102 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16103
16104         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
16105         8 with MAC_REG.
16106
16107 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16108
16109         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
16110         gen_rtx_PARALLEL.
16111
16112 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16113
16114         * emit-rtl.c: Update the comment about the file.
16115
16116 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16117
16118         * sourcebuild.texi (Test Idioms): Update testcase naming
16119         conventions.
16120
16121 2004-02-04  Per Bothner  <per@bothner.com>
16122
16123         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
16124         * c-ppoutput.c (pp_dir_change):  New function.
16125         * c-common.h (pp_dir_change):  New declaration.
16126         * cpplib.h (struct cpp_options):  Remove working_directory field.
16127         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
16128         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
16129         Don't handle -fworking_directory here, but in c_common_post_options.
16130         (read_original_directory): Don't back up when done.
16131         Don't clear no-longer used working_directory flag.
16132         * cpplib.h:  Update declarations to match.
16133         * c-lex.c (cb_dir_change):  Move to c-opts.c.
16134         (init_c_lex):  Don't set dir_change callback here, since we want
16135         to set it even if flag_preprocess_only.
16136         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
16137         (c_common_post_options):  Set dir_change callback.
16138         Call pp_dir_change if approporiate.
16139         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
16140         unneeded parameter and result. Do LC_RENAME for <built-in>.
16141         (c_common_post_options):  Call cpp_read_main_file here instead.
16142         (c_common_init):  Update accordingly.
16143         (push_command_line_include):  Don't cpp_push_main_file.
16144         Do LC_RENAME rather than LC_LEASE to get back to main file.
16145         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
16146         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
16147         files, but call finish_options for all files.
16148         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
16149         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
16150         cpp_find_main_file + cpp_push_main_file.
16151         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
16152         * opts.c (handle_options):  Only set main_input_filename first time.
16153
16154 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
16155
16156         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
16157
16158 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
16159
16160         * reload.c (find_equiv_reg): When checking for register overlap,
16161         don't index hard_regno_nregs with a pseudo-reg.
16162
16163 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16164
16165         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
16166
16167 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
16168
16169         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
16170         against FIRST_PSEUDO_REGISTER.
16171
16172 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16173
16174         * Makefile.in: Move target, host overrides after per-language
16175         fragments.
16176
16177         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
16178         (GNATLIBCFLAGS): Remove -g.
16179
16180 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16181
16182         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
16183         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16184         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16185         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
16186         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
16187         config/sparc/sparc.c, config/vax/vax.c: Revert the
16188         replacements of "FALLTHRU" with "Fall through" done in the
16189         previous patch.
16190
16191 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16192
16193         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
16194         config/arm/arm.c, config/arm/arm.md,
16195         config/cris/cris-protos.h, config/fr30/fr30.c,
16196         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
16197         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
16198         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
16199         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
16200         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
16201         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
16202         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
16203         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
16204         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
16205         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
16206         config/s390/s390.md, config/sparc/netbsd-elf.h,
16207         config/sparc/openbsd.h, config/sparc/sparc.c,
16208         config/xtensa/lib2funcs.S: Fix comment formatting.
16209
16210 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16211
16212         * config/alpha/alpha.c, config/arc/arc.c,
16213         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
16214         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
16215         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
16216         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
16217         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16218         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16219         config/iq2000/iq2000.c, config/m32r/m32r.c,
16220         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
16221         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
16222         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
16223         config/rs6000/rs6000.h, config/sparc/sparc.c,
16224         config/vax/vax.c: Fix comment typos.  Follow spelling
16225         conventions.
16226
16227 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16228
16229         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
16230         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
16231         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
16232         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
16233         config/arm/fpa.md, config/arm/iwmmxt.md,
16234         config/arm/netbsd-elf.h, config/arm/netbsd.h,
16235         config/m68hc11/m68hc11.md, config/mips/iris5.h,
16236         config/mn10300/mn10300.md, config/rs6000/altivec.md,
16237         config/sparc/netbsd-elf.h: Update copyright.
16238
16239 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16240
16241         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16242         for all modes whose size is greater than 8 bytes if ARCH32.
16243         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
16244         by reference if ARCH32.
16245
16246 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
16247
16248         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
16249
16250 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16251
16252         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
16253         to before adddi3 insn patterns.
16254         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
16255         "reload_insi"): Move to before addsi3 insn patterns.
16256
16257 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
16258
16259         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
16260         parameter.  Use it instead of current_function_is_thunk.
16261         * function.h (struct function): Update documentation for is_thunk.
16262         * tree.h (CALL_FROM_THUNK_P): New macro.
16263         * config/alpha/alpha.c (alpha_sa_mask): Do not check
16264         no_new_pseudos when testing current_function_is_thunk.
16265         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
16266
16267 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16268
16269         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
16270         TARGET_SETUP_INCOMING_VARARGS.
16271
16272 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16273
16274         * emit-rtl.c (gen_rtx): Remove.
16275         * genattrtab.c: Don't mention gen_rtx in a comment.
16276         * rtl.h: Remove the prototype for gen_rtx.
16277         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
16278
16279 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16280
16281         * config/arc/arc.h, config/fr30/fr30.h
16282         (SETUP_INCOMING_VARARGS): Remove the target-independent
16283         comments.
16284         * doc/tm.texi: Don't mention deprecated target macros.
16285
16286 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16287
16288         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
16289         target-independent comment.
16290
16291 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16292
16293         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
16294         mention deprecated target macros.
16295
16296 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16297
16298         * config.gcc: Remove obsolete ports and configurations.
16299         * config/linux-aout.h, config/netware.h,
16300         config/t-linux-gnulibc1, config/d30v/abi,
16301         config/d30v/d30v-protos.h, config/d30v/d30v.c,
16302         config/d30v/d30v.h, config/d30v/d30v.md,
16303         config/d30v/libgcc1.asm, config/d30v/t-d30v,
16304         config/dsp16xx/dsp16xx-modes.def,
16305         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
16306         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
16307         config/i370/README, config/i370/i370-c.c,
16308         config/i370/i370-protos.h, config/i370/i370.c,
16309         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
16310         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
16311         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
16312         config/i386/moss.h, config/i386/netware.h,
16313         config/i386/svr3.ifile, config/i386/svr3dbx.h,
16314         config/i386/svr3gas.h, config/i386/svr3z.ifile,
16315         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
16316         config/i960/i960-c.c, config/i960/i960-coff.h,
16317         config/i960/i960-modes.def, config/i960/i960-protos.h,
16318         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
16319         config/i960/rtems.h, config/i960/t-960bare,
16320         config/m68k/hp310.h, config/m68k/hp320.h,
16321         config/m68k/hp320base.h, config/m68k/m68kv4.h,
16322         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
16323         Remove.
16324         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
16325         doc/md.texi: Remove mentions of obsolete ports.
16326
16327 2004-02-04  Jan Hubicka  <jh@suse.cz>
16328
16329         * alias.c (find_base_term, get_addr):  Do not dereference NULL
16330         pointer when all VALUE's locations has been invalidated.
16331         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
16332
16333 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
16334
16335         * doc/invoke.texi (x86 options): Fix spelling/wording.
16336
16337 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
16338
16339         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
16340         put the original string in a comment.
16341         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
16342         * config/mips/mips.c (mips_output_ascii): Likewise.
16343         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
16344
16345 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16346
16347         * system.h (GIV_SORT_CRITERION): Poison.
16348         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
16349         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
16350
16351 2004-02-03  Roger Sayle  <roger@eyesopen.com>
16352
16353         PR target/9348
16354         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
16355         multiplies with a multiplication of the wrong signedness, its the
16356         signedness of the multiplication that we've performed that needs to
16357         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
16358         if expand_mult_highpart_adjust places the result in target.
16359
16360 2004-02-03  Richard Henderson  <rth@redhat.com>
16361
16362         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
16363
16364 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
16365
16366         * config.gcc (sh[234]l): Use little endian fragments.
16367
16368 2004-02-03  Paul Koning  <pkoning@equallogic.com>
16369
16370         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
16371         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
16372         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
16373         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
16374         floating point format.
16375         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
16376         the above functions.
16377         (output_move_quad): Output float values in correct target format.
16378         (legitimate_const_double_p): New function.
16379         * config/pdp11/pdp11.h: Fix typos.
16380         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
16381         (TARGET_FLOAT_FORMAT): Ditto.
16382         (pdp11_f_format, pdp11_d_format): Add external declarations.
16383         (MAX_REGS_PER_ADDRESS): Corrected.
16384         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
16385         (PRINT_OPERAND): Output float literals in target format.
16386
16387 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
16388
16389         PR c++/13975
16390         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
16391         TI_PRIVATE.
16392         (access_public_node): Redefine.
16393         (access_protected_node): Likewise.
16394         (access_private_node): Likewise.
16395         * tree.c (build_common_tree_nodes): Create access_public_node,
16396         access_protected_node, and access_private_node.
16397
16398 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
16399
16400         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
16401         (MASK_INLINE_INT_DIV_THR): Ditto.
16402         (MASK_INLINE_SQRT_LAT): Ditto.
16403         (MASK_INLINE_SQRT_THR): Ditto.
16404         (MASK_DWARF2_ASM): Ditto.
16405         (MASK_EARLY_STOP_BITS): Ditto.
16406
16407 2004-02-02  Paul Brook  <paul@codesourcery.com>
16408
16409         Merge from csl-arm-branch.
16410
16411         2004-01-30  Paul Brook  <paul@codesourcery.com>
16412
16413         * aof.h (REGISTER_NAMES): Add vfp reg names
16414         (ADDITIONAL_REGISTER_NAMES): Ditto.
16415         * aout.h (REGISTER_NAMES): Ditto.
16416         (ADDITIONAL_REGISTER_NAMES): Ditto.
16417         * arm-protos.h: Update/Add Prototypes.
16418         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
16419         Only allow 0.0 for VFP.
16420         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
16421         (values_fp): Rename from values_fpa.  Update Users.
16422         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
16423         Update users.  Only check valid constants for this hardware.
16424         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
16425         Only allow consts for FPA.
16426         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
16427         Only allow consts for FPA.
16428         (use_return_insn): Check for saved VFP regs.
16429         (arm_legitimate_address_p): Handle VFP DFmode addressing.
16430         (arm_legitimize_address): Ditto.
16431         (arm_general_register_operand): New function.
16432         (vfp_mem_operand): New function.
16433         (vfp_compare_operand): New function.
16434         (vfp_secondary_reload_class): New function.
16435         (arm_float_compare_operand): New function.
16436         (vfp_print_multi): New function.
16437         (vfp_output_fstmx): New function.
16438         (vfp_emit_fstm): New function.
16439         (arm_output_epilogue): Output VPF reg restore code.
16440         (arm_expand_prologue): Output VFP reg save code.
16441         (arm_print_operand): Add 'P'.
16442         (arm_hard_regno_mode_ok): Return modes for VFP regs.
16443         (arm_regno_class): Return classes for VFP regs.
16444         (arm_compute_initial_elimination_offset): Include space for VFP regs.
16445         (arm_get_frame_size): Ditto.
16446         * arm.h (FIXED_REGISTERS): Add VFP regs.
16447         (CALL_USED_REGISTERS): Ditto.
16448         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
16449         (FIRST_VFP_REGNUM): Define.
16450         (LAST_VFP_REGNUM): Define.
16451         (IS_VFP_REGNUM): Define.
16452         (FIRST_PSEUDO_REGISTER): Include VFP regs.
16453         (HARD_REGNO_NREGS): Handle VFP regs.
16454         (REG_ALLOC_ORDER): Add VFP regs.
16455         (enum reg_class): Add VFP_REGS.
16456         (REG_CLASS_NAMES): Ditto.
16457         (REG_CLASS_CONTENTS): Ditto.
16458         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
16459         (REG_CLASS_FROM_LETTER): Add 'w'.
16460         (EXTRA_CONSTRAINT_ARM): Add 'U'.
16461         (EXTRA_MEMORY_CONSTRAINT): Define.
16462         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
16463         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
16464         (REGISTER_MOVE_COST): Ditto.
16465         (PREDICATE_CODES): Add arm_general_register_operand,
16466         arm_float_compare_operand and vfp_compare_operand.
16467         * arm.md (various): Rename as above.
16468         (divsf3): Enable when TARGET_VFP.
16469         (divdf3): Ditto.
16470         (movdfcc): Ditto.
16471         (sqrtsf2): Ditto.
16472         (sqrtdf2): Ditto.
16473         (arm_movdi): Disable when TARGET_VFP.
16474         (arm_movsi_insn): Ditto.
16475         (movsi): Only split with general regs.
16476         (cmpsf): Use arm_float_compare_operand.
16477         (push_fp_multi): Restrict to TARGET_FPA.
16478         (vfp.md): Include.
16479         * vfp.md: New file.
16480         * fpa.md (various): Rename as above.
16481         * doc/md.texi: Document ARM w and U constraints.
16482
16483         2004-01-15  Paul Brook  <paul@codesourcery.com>
16484
16485         * config.gcc: Add with_fpu.  Allow with-float=softfp.
16486         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
16487         Break out of loop when we find a float-abi.  Fix typo.
16488         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
16489         Set -mfloat-abi=.
16490         * doc/install.texi: Document --with-fpu.
16491
16492         2003-01-14  Paul Brook  <paul@codesourcery.com>
16493
16494         * config.gcc (with_arch): Add armv6.
16495         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
16496         * config/arm/arm.c (arm_overrride_options): Ditto.
16497
16498         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
16499
16500         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
16501         (FL_ARCH6): Renamed from FL_ARCH6J.
16502         (arm_arch3m): Renamed from arm_fast_multiply.
16503         (arm_arch6): Renamed from arm_arch6j.
16504         * arm.h: Update all uses of above.
16505         * arm-cores.def: Likewise.
16506         * arm.md: Likewise.
16507
16508         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
16509         not arm6j.  Add entry for arch armv6.
16510
16511         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
16512
16513         * arm.c (arm_emit_extendsi): Delete.
16514         * arm-protos.h (arm_emit_extendsi): Delete.
16515         * arm.md (zero_extendhisi2): Also handle zero-extension of
16516         non-subregs.
16517         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
16518         (thumb_zero_extendhisi2): Only match if not v6.
16519         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
16520         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
16521         (thumb_extendqisi2): Likewise.
16522         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
16523         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
16524         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
16525         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
16526         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
16527         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
16528         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
16529         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
16530         (arm_extendqisi2addsi): Likewise.
16531
16532         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
16533
16534         Revert this change:
16535         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16536         + REG addressing modes.
16537
16538         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16539         + REG addressing modes.
16540
16541         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
16542
16543         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
16544         CONSTANT_P_RTX.
16545
16546         2003-30-12  Paul Brook  <paul@codesourcery.com>
16547
16548         * longlong.h: protect arm inlines with !defined (__thumb__)
16549
16550         2003-30-12  Paul Brook  <paul@codesourcery.com>
16551
16552         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
16553
16554         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
16555
16556         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
16557         change.
16558
16559         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16560
16561         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
16562         to the virtual incoming args pointer for downward stacks.
16563
16564         2003-12-29  Paul Brook  <paul@codesourcery.com>
16565
16566         * config/arm/arm-cores.def: Add cost function.
16567         * config/arm/arm.c (arm_*_rtx_costs): New functions.
16568         (arm_rtx_costs): Remove
16569         (struct processors): Add rtx_costs field.
16570         (all_cores, all_architectures): Ditto.
16571         (arm_override_options): Set targetm.rtx_costs.
16572         (thumb_rtx_costs): New function.
16573         (arm_rtx_costs_1): Remove cases handled elsewhere.
16574         * config/arm/arm.h (processor_type): Add COSTS parameter.
16575
16576         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16577
16578         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
16579         (arm926ejs.md): Include it.
16580         * config/arm/arm926ejs.md: New pipeline description.
16581
16582         2003-12-24  Paul Brook  <paul@codesourcery.com>
16583
16584         * config/arm/arm.c (arm_arch6j): New variable.
16585         (arm_override_options): Set it.
16586         (arm_emit_extendsi): New function.
16587         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
16588         * config/arm/arm.h (arm_arch6j): Declare.
16589         * config/arm/arm.md: Add sign/zero extend insns.
16590
16591         2003-12-23  Paul Brook  <paul@codesourcery.com>
16592
16593         * config/arm/arm.c (all_architectures): Add armv6.
16594         * doc/invoke.texi: Document it.
16595
16596         2003-12-19  Paul Brook  <paul@codesourcery.com>
16597
16598         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
16599         insn patterns to match.
16600         * config/arm/arm-generic.md: Ditto.
16601         * config/arm/cirrus.md: Ditto.
16602         * config/arm/fpa.md: Ditto.
16603         * config/amm/iwmmxt.md: Ditto.
16604         * config/arm/arm1026ejs.md: Ditto.
16605         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
16606         for 11_loadb.
16607
16608         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
16609
16610         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
16611         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
16612         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
16613         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
16614         arm_no_early_mul_dep): Correctly deal with conditional execution,
16615         parallels and single shift operations.
16616         (arm_no_early_alu_shift_value_dep): Define.
16617         * arm.md (attr type): Replace 'normal' with 'alu',
16618         'alu_shift' and 'alu_shift_reg'.
16619         (attr core_cycles): Adjust.
16620         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
16621         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
16622         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
16623         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
16624         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
16625         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
16626         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
16627         attribute appropriately.
16628         * config/arm/arm1026ejs.md (alu_op): Adjust.
16629         (alu_shift_op, alu_shift_reg_op): New.
16630         * config/arm/arm1136.md: Add better bypasses for early
16631         registers. Remove load[234] and store[234] bypasses.
16632         (11_alu_op): Adjust.
16633         (11_alu_shift_op, 11_alu_shift_reg_op): New.
16634
16635         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
16636
16637         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
16638         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
16639         * config/arm/arm.c (arm_no_early_store_addr_dep,
16640         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
16641         * config/arm/arm1026ejs.md: Add load-store bypass.
16642         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
16643         Add bypasses between instructions.
16644
16645         2003-12-10  Paul Brook  <paul@codesourcery.com>
16646
16647         * config/arm/arm.c (arm_fpu_model): New variable.
16648         (arm_fload_abi): New variable.
16649         (target_fpe_name): Rename from target_fp_name.
16650         (target_fpu_name): New variable.
16651         (arm_is_cirrus): Remove.
16652         (fpu_desc): New struct.
16653         (all_fpus): Define.
16654         (pf_model_for_fpu): Define.
16655         (all_loat_abis): Define.
16656         (arm_override_options): Set fp arch flags based on -mfpu=
16657         and -float-abi=.
16658         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16659         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16660         (*): Use new TARGET_* flags.
16661         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
16662         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
16663         (TARGET_SOFT_FLOAT): Ditto.
16664         (TARGET_SOFT_FLOAT_ABI): New.
16665         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
16666         TARGET_HARD_FLOAT.
16667         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
16668         (TARGET_OPTIONS): Add -mfpu=.
16669         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16670         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16671         (arm_pf_model): Define.
16672         (arm_float_abi_type): Define.
16673         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
16674         * config/arm/arm.md: Use new TARGET_* flags.
16675         * config/arm/cirrus.md: Ditto.
16676         * config/arm/fpa.md: Ditto.
16677         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
16678         * config/arm/semi.h (ASM_SPEC): Ditto.
16679         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
16680         (FPUTYPE_DEFAULT): Set to VFP.
16681         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
16682
16683         2003-11-22  Phil Edwards  <phil@codesourcery.com>
16684
16685         PR target/12476
16686         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
16687         'bx' instead of 'b' to avoid branch range restrictions.  Output
16688         the thunk immediately before the thunked-to function.
16689         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
16690         .thumb_func if a thunk is being generated.  Emit .code 16 along
16691         with .thumb_func if a thunk is not being generated.
16692
16693         2003-11-15  Nicolas Pitre <nico@cam.org>
16694
16695         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
16696         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
16697         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
16698         (lshrdi3_iwmmxt): Renamed from lshrdi3.
16699         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
16700
16701         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
16702             Ian Lance Taylor  <ian@wasabisystems.com>
16703
16704         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
16705         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
16706
16707         2003-11-05  Phil Edwards  <phil@codesourcery.com>
16708
16709         * config/arm/arm.md (insn):  Add new V6 instruction names.
16710         (generic_sched):  New attr.
16711         * config/arm/arm-generic.md:  Use generic_sched here.
16712         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
16713         stages of pipeline.  Adjust latency counts accordingly.
16714         * config/arm/arm1136jfs.md:  New file.
16715
16716         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
16717
16718         * config/arm/arm.h (processor_type): New enumeration type.
16719         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
16720         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
16721         (CPP_CPU_ARCH_SPEC): Likewise.
16722         * config/arm/arm.c (arm_tune): New variable.
16723         (all_cores): Use cores.def.
16724         (all_architectures): Add representative processor.
16725         (arm_override_options): Restructure way in which tuning
16726         information is deduced.
16727         * arm.md: Update "insn" and "type" attributes throughout.
16728         (insn): New attribute.
16729         (type): Compute "mult" from "insn" attribute.  Add load2,
16730         load3, load4 alternatives.
16731         (arm automaton): Move to arm-generic.md.
16732         * config/arm/arm-cores.def: New file.
16733         * config/arm/arm-generic.md: Likewise.
16734         * config/arm/arm1026ejs.md: Likewise.
16735
16736 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16737
16738         * doc/invoke.texi (SPARC options): Remove -mflat and
16739         all -mxxx (xxx:chip) options.
16740         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
16741         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
16742         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
16743         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
16744         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
16745         * config/sparc/sparc.c: Likewise.
16746         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
16747         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
16748         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
16749         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
16750         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
16751         (sparc_flat_must_save_register_p): Likewise.
16752         (sparc_flat_compute_frame_size): Likewise.
16753         (sparc_flat_save_restore): Likewise.
16754         (sparc_flat_function_prologue): Likewise.
16755         (sparc_flat_function_epilogue): Likewise.
16756         (sparc_flat_epilogue_delay_slots): Likewise.
16757         (sparc_flat_eligible_for_epilogue_delay): Likewise.
16758         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
16759         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
16760         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
16761         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
16762         (CONDITIONAL_REGISTER_USAGE): Likewise.
16763         (FRAME_POINTER_REQUIRED): Likewise.
16764         (INITIAL_ELIMINATION_OFFSET): Likewise.
16765         (BASE_RETURN_VALUE_REG): Likewise.
16766         (BASE_OUTGOING_VALUE_REG): Likewise.
16767         (BASE_PASSING_ARG_REG): Likewise.
16768         (BASE_INCOMING_ARG_REG): Likewise.
16769         (INCOMING_REGNO): Likewise.
16770         (OUTGOING_REGNO): Likewise.
16771         (LOCAL_REGNO): Likewise.
16772         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
16773         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
16774         (EPILOGUE_USES): Likewise.
16775         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
16776         ("flat" attribute): Delete.
16777         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
16778         handling.
16779         (call followed by jump define_peephole's): Delete.
16780         (exception_receiver): Likewise.
16781         (builtin_setjmp_receiver): Likewise.
16782         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
16783
16784 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
16785
16786         PR c/11658
16787         PR c/13994
16788         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
16789         on langhooks.h.
16790         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
16791         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
16792         Include langhooks.h.  Replace c_common_truthvalue_conversion
16793         with the truthvalue_conversion language hook throughout.
16794         (expr_no_commas): Call default_conversion before save_expr
16795         for the first term of the production 'x ? : y'.
16796         * c-common.c (c_common_truthvalue_conversion): Remove
16797         obsolete block.  Invoke recursively the hook instead
16798         of this function.
16799         * c-convert.c (convert): handle ERROR_MARK_NODE.
16800         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
16801         returned by the truthvalue_conversion language hook.
16802         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16803         c_objc_common_truthvalue_conversion.
16804         * c-objc-common.c (c_objc_common_truthvalue_conversion):
16805         New function.
16806         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
16807         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16808         c_objc_common_truthvalue_conversion.
16809
16810 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16811
16812         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
16813         of gen_rtx.
16814         (LIBCALL_VALUE): Likewise.
16815         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
16816         gen_rtx_CC0 instead of gen_rtx.
16817         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
16818         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
16819         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
16820         gen_rtx.
16821         (m68hc11_emit_logical): Likewise.
16822
16823 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16824
16825         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
16826         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
16827         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
16828         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
16829         config/mips/mips.md, config/mmix/mmix.c,
16830         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
16831         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
16832         config/rs6000/altivec.md, config/s390/s390.c,
16833         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
16834         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
16835         Use const0_rtx instead of GEN_INT (0).  Do the same for other
16836         constants that are readily available.
16837
16838 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16839
16840         * doloop.c, optabs.c, regmove.c, sched-deps.c,
16841         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
16842         instead of GEN_INT (0).  Do the same for other constants that
16843         are readily available.
16844
16845 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16846
16847         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
16848         gen_rtx.
16849         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
16850         instead of gen_rtx.
16851         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
16852         gen_rtx.
16853         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
16854         gen_rtx_ASHIFT instead of gen_rtx.
16855         (udivmodqi4): Likewise.
16856
16857 2004-02-02  Richard Henderson  <rth@redhat.com>
16858
16859         PR target/13789
16860         * expr.c (store_expr): Use force_operand before emit_move_insn.
16861
16862 2004-02-02  Jeff Law  <law@redhat.com>
16863             Roger Sayle  <roger@eyesopen.com>
16864
16865         * tree.c (commutative_tree_code, associative_tree_code): New
16866         functions.
16867         (iterative_hash_expr): Use commutative_tree_code.
16868         * tree.h (commutative_tree_code, associative_tree_code): Declare.
16869         * fold-const.c (operand_equal_p): Use commutative_tree_code
16870         rather than inlining the commutativity check.
16871         (fold): Likewise.
16872
16873 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16874
16875         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
16876         * config/frv/frv-protos.h: Remove the prototype for
16877         frv_function_arg_keep_as_reference.
16878         * config/frv/frv.c (frv_function_arg_keep_as_reference):
16879         Remove.
16880         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
16881         * config/stormy16/stormy16.h: Remove the commented-out
16882         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
16883
16884 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
16885
16886         PR target/13914
16887         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
16888         for retaddr_column.
16889
16890 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16891
16892         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
16893         gen_rtx.
16894
16895 2004-02-02  Eric Christopher  <echristo@redhat.com>
16896             Zack Weinberg  <zack@codesourcery.com>
16897
16898         * c-opts.c (c_common_handle_option): Add -finput-charset.
16899         * c.opt: Ditto.
16900         * cppcharset.c (one_iso88591_to_utf8): Remove.
16901         (convert_iso88591_utf8): Ditto.
16902         (conversion_tab): Remove 8859-1 converter.
16903         (_cpp_input_to_utf8): Remove.
16904         (_cpp_init_iconv_buffer): Ditto.
16905         (_cpp_close_iconv_buffer): Ditto.
16906         (_cpp_convert_input): New function.
16907         (_cpp_default_encoding): Ditto.
16908         * cpphash.h: Add/remove prototypes for above.
16909         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
16910         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
16911         for narrow execution and input character sets.
16912         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
16913         * doc/cppopts.texi: Document -finput-charset.
16914
16915 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
16916
16917         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
16918         against FIRST_PSEUDO_REGISTER.
16919
16920 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16921
16922         * doc/invoke.texi (SPARC options): Further improve.
16923
16924 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16925
16926         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
16927         config/h8300/h8300.c, config/ip2k/ip2k.md,
16928         config/iq2000/iq2000.c, config/mips/mips.c,
16929         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
16930         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
16931         config/v850/v850.md: Fix indentation.
16932
16933 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16934
16935         * config/sparc/sparc.c (function_arg_slotno): Align TImode
16936         arguments on a 16-byte boundary in the parameter array if ARCH64.
16937         Split handling of TFmode.
16938
16939 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
16940
16941         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
16942         Don't test CONSTANT_P (x).
16943         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
16944         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
16945         Fix misindentation.
16946
16947 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16948
16949         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
16950
16951 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16952
16953         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
16954         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
16955         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
16956         config/iq2000/iq2000.c, config/m32r/m32r.c,
16957         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
16958         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
16959         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
16960         config/stormy16/stormy16.c, config/v850/v850.md,
16961         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
16962
16963 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16964
16965         * config/mcore/mcore.c (block_move_sequence): Replace
16966         gen_rtx_CONST_INT with GEN_INT.
16967
16968 2004-02-02  Jan Hubicka  <jh@suse.cz>
16969
16970         * alias.c (record_set): Use hard_regno_nregs.
16971         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
16972         * builtins.c (apply_args_size): Likewise.
16973         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
16974         mark_set_regs, add_stored_regs, mark_referenced_regs,
16975         insert_restore, insert_save, insert_one_insn): Likewise.
16976         * cfgcleanup.c: Include regs.h
16977         (mark_effect, mentions_nonequal_regs): Likewise.
16978         * cfgrtl.c (mark_killed_regs): Likewise
16979         * combine.c (update_table_tick, record_value_for_reg,
16980         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
16981         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
16982         reg_bitfield_target_p, distribute_notes): Likewise.
16983         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
16984         exp_equiv_p, cse_insn): Likewise.
16985         * cselib.c (cselib_lookup): Likewise.
16986         (cselib_invalidate_regno, cselib_record_set): Likewise.
16987         * df.c (df_ref_record): Likewise.
16988         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
16989         Likewise.
16990         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
16991         count_or_remove_death_notes_bb): Likewise.
16992         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
16993         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
16994         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
16995         * integrate.c (mark_stores): Likewise.
16996         * jump.c (delete_prior_computation): Likewise.
16997         * lcm.c (reg_dies, reg_becomes_live): Likewise.
16998         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
16999         * loop.c (LOOP_REGNO_NREGS): Likewise.
17000         * postreload.c (reload_combine, reload_combine_note_store,
17001         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
17002         * ra-colorize.c (combine, color_usable_p, get_free_reg,
17003         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
17004         try_recolor_web, insert_coalesced_conflicts, check_colors,
17005         break_precolored_alias): Likewise.
17006         * ra-debug.c: Include regs.h
17007         (ra_print_rtx_object): Likewise.
17008         * ra-rewrite (choose_spill_colors): Likewise.
17009         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
17010         * ra.c (init_ra): Likewise.
17011         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
17012         peep2_find_free_register): Likewise.
17013         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
17014         * regclass.c (hard_regno_nregs): New array.
17015         (init_reg_modes_once): Initialize it.
17016         (choose_hard_reg_mode): Use it.
17017         (record_reg_classes): Likewise.
17018         * regmove.c (mark_flags_life_zones): Likewise.
17019         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
17020         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
17021         copy_value, maybe_mode_change, find_oldest_value_reg,
17022         copyprop_hardreg_forward_1):
17023         * regs.h (hard_regno_nregs): Declare.
17024         * realod.c (reload_inner_reg_of_subreg): Use it.
17025         (push_reload, combine_reloads, find_dummy_reload,
17026         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
17027         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
17028         reload_adjust_reg_for_mode): Likewise.
17029         * reload1.c (compute_use_by_pseudos, count_pseudo,
17030         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
17031         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
17032         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
17033         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
17034         delete_output_reload): Likewise.
17035         * resource.c (update_live_status, mark_referenced_resources,
17036         mark_set_resources, mark_target_live_regs): Likewise.
17037         * rtlanal.c:  Include regs.h
17038         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
17039         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
17040         subreg_regno_offset, subreg_offset_representable_p,
17041         hoist_test_store): Likewise.
17042         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
17043         * sched-rgn.c (check_live_1, update_live_1): Likewise.
17044         * stmt.c: Include regs.h
17045         (decl_conflicts_with_clobbers_p): Likewise.
17046         * varasm.c (make_decl_rtl): Likewise.
17047         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
17048
17049 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17050
17051         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
17052         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
17053         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
17054         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
17055         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
17056         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
17057         config/iq2000/iq2000.h, config/m32r/m32r.c,
17058         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
17059         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
17060         config/mcore/mcore.c, config/mcore/mcore.h,
17061         config/mcore/mcore.md, config/mips/mips.c,
17062         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
17063         config/rs6000/rs6000.c, config/s390/s390.c,
17064         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
17065         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
17066         "gen_rtx (FOO, " with "gen_rtx_FOO (".
17067
17068 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17069
17070         * config/h8300/h8300.md (two peephole2's): New.
17071
17072 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
17073
17074         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
17075         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
17076         (ASM_CPU_SPEC): Likewise
17077         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
17078         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
17079
17080 2004-02-01  Roger Sayle  <roger@eyesopen.com>
17081
17082         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
17083         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
17084         (expand_builtin): Always call expand_builtin_pow.
17085
17086 2004-02-01  Roger Sayle  <roger@eyesopen.com>
17087
17088         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
17089         BUILT_IN_SIGNBITL): New GCC builtins.
17090         * builtins.c (expand_builtin_signbit): New function to RTL expand
17091         calls to signbit, signbitf and signbitl as inline intrinsics.
17092         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
17093         (fold_builtin_signbit): New function to perform constant folding
17094         of signbit, signbitf and signbitl.
17095         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
17096
17097         * doc/extend.texi: Document new signbit{,f,l} builtins.
17098
17099 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
17100
17101         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
17102
17103 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
17104
17105         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
17106         "mips_const_double_ok" and "simple_memory_operand", which were
17107         removed from the MIPS port with the mips-3_4-rewrite branch merge.
17108         * config/mips/mips.c (mips16_lay_out_constants): Update comment
17109         for removal of simple_memory_operand.
17110
17111 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17112
17113         * config/c4x/c4x.md: Use GEN_INT instead of
17114         gen_rtx (CONST_INT, ...).
17115
17116 2004-01-31  Richard Henderson  <rth@redhat.com>
17117
17118         * varasm.c (output_constant_pool): Don't zap the pool.
17119
17120 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17121
17122         * genrecog.c (decision_type): Add DT_const_int.
17123         (write_cond) [DT_const_int]: Print a comparison against small
17124         constant.
17125         (write_node): Simplify comparisons against small constants
17126         before printing tests.
17127
17128 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17129
17130         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
17131         instead of gen_rtx_CONST_INT.
17132
17133 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17134
17135         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
17136         instead of gen_rtx_CONST_INT.
17137
17138 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17139
17140         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
17141         hook_bool_CUMULATIVE_ARGS_false.
17142         * targhooks.c (default_strict_argument_naming): Rename to
17143         hook_bool_CUMULATIVE_ARGS_false.
17144         * targhooks.h: Update the prototype for
17145         default_strict_argument_naming.
17146
17147 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17148
17149         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17150         * config/sh/sh.h: Likewise.
17151         * config/sh/sh.md: Likewise.
17152
17153 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
17154
17155         * doc/invoke.texi (SPARC options): Restructure and update.
17156
17157 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17158
17159         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
17160         STRICT_ARGUMENT_NAMING): Poison.
17161         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
17162         hook_bool_tree_false.
17163         * targhooks.c (default_promote_function_args): Remove.
17164         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
17165         Don't check incoming.
17166         (default_strict_argument_naming): Don't use
17167         STRICT_ARGUMENT_NAMING.
17168         * targhooks.h: Remove the prototype for
17169         default_promote_function_args.
17170
17171 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17172
17173         * config/i386/i386-protos.h: Remove the prototype for
17174         ix86_setup_incoming_varargs.
17175         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
17176         (ix86_setup_incoming_varargs): Make it static.
17177         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
17178
17179 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17180
17181         * alloc-pool.c: Fix comment typos.
17182         * builtin-types.def: Likewise.
17183         * builtins.def: Likewise.
17184         * c-pretty-print.c: Likewise.
17185         * df.h: Likewise.
17186         * reload1.c: Likewise.
17187
17188 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17189
17190         * doc/invoke.texi: Follow spelling conventions.
17191         * doc/tm.texi: Likewise.
17192
17193 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17194
17195         * doc/install.texi: Fix typos.
17196         * doc/invoke.texi: Likewise.
17197
17198 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
17199
17200         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
17201         registers as pointers.
17202         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
17203
17204 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
17205
17206         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
17207         and restore it to gen_lowpart_general on exit.
17208         (gen_lowpart_for_combine): Adjust all callers to go through
17209         gen_lowpart.
17210         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
17211         and restore it to gen_lowpart_general on exit.
17212         (gen_lowpart_if_possible): Adjust all callers to go through
17213         gen_lowpart.
17214         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
17215         (gen_lowpart): Declare as pointer to function, initialized to
17216         gen_lowpart_general.
17217         * rtl.h (gen_lowpart): Declare as pointer to function.
17218
17219 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17220
17221         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17222         * calls.c: Likewise.
17223         * emit-rtl.c: Likewise.
17224         * function.c: Likewise.
17225         * reload1.c: Likewise.
17226         * config/i386/cygming.h: Likewise.
17227         * config/i386/i386.c: Likewise.
17228         * config/i386/winnt.c: Likewise.
17229
17230 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
17231
17232         PR bootstrap/9249
17233         * doc/install.texi: document --enable-__cxa_atexit option.
17234         * configure.ac: Disable __cxa_atexit if not supported.
17235         * configure: Regenerate.
17236
17237 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
17238
17239         * ggc-zone.c (ggc_free): New function.
17240
17241 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17242
17243         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
17244         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
17245         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
17246         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
17247         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
17248         config/alpha/alpha.c, config/alpha/alpha.h,
17249         config/alpha/alpha.md, config/alpha/unicosmk.h,
17250         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
17251         config/c4x/c4x-protos.h, config/c4x/c4x.md,
17252         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
17253         config/frv/frvend.c, config/i386/cygming.h,
17254         config/i386/djgpp.h, config/i386/emmintrin.h,
17255         config/i386/gthr-win32.c, config/i386/i386-interix.h,
17256         config/i386/i386-protos.h, config/i386/openbsd.h,
17257         config/i386/winnt.c, config/i386/xm-mingw32.h,
17258         config/i386/xmmintrin.h, config/ia64/ia64.md,
17259         config/iq2000/iq2000.md, config/m32r/m32r.md,
17260         config/m68k/m68k.md, config/mcore/mcore-elf.h,
17261         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
17262         config/mips/iris5gas.h, config/mips/iris6.h,
17263         config/mips/iris6gas.h, config/mips/linux.h,
17264         config/mips/mips.md, config/mips/netbsd.h,
17265         config/mips/openbsd.h, config/mips/windiss.h,
17266         config/pa/fptr.c, config/rs6000/aix.h,
17267         config/rs6000/altivec.h, config/rs6000/darwin.h,
17268         config/rs6000/xcoff.h, config/s390/s390-protos.h,
17269         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
17270         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
17271         config/sparc/sol2.h: Update copyright.
17272
17273 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17274
17275         * Makefile.in (abs_docdir, abs_srcdir): Define.
17276         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
17277
17278 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17279
17280         * genconfig.c (main): Have CC0_P check its operand even on a
17281         target without cc0.
17282
17283 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17284
17285         * config/alpha/alpha.c: Remove mentions of deprecates macros
17286         in comments, remove some target-independent comments about target
17287         macros, and/or add minimal function comments for target hook
17288         implementations.
17289         * config/avr/avr.c: Likewise.
17290         * config/ia64/ia64.h: Likewise.
17291         * config/ip2k/ip2k.c: Likewise.
17292         * config/iq2000/iq2000.c: Likewise.
17293         * config/m32r/m32r.h: Likewise.
17294         * config/m68hc11/m68hc11.c: Likewise.
17295         * config/mcore/mcore.c: Likewise.
17296         * config/mmix/mmix.c: Likewise.
17297         * config/mn10300/mn10300.c: Likewise.
17298         * config/pa/pa.c: Likewise.
17299         * config/pdp11/pdp11.c: Likewise.
17300         * config/rs6000/rs6000.h: Likewise.
17301         * config/sh/sh.c: Likewise.
17302         * config/sh/sh.h: Likewise.
17303         * config/sparc/sparc.c: Likewise.
17304         * config/sparc/sparc.h: Likewise.
17305         * config/stormy16/stormy16.c: Likewise.
17306         * config/xtensa/xtensa.c: Likewise.
17307
17308 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17309
17310         PR optimization/12147
17311         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
17312         RELOAD_FOR_OPADDR_ADDR.
17313         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
17314         might be reused as RELOAD_FOR_OPADDR_ADDR register.
17315
17316 2004-01-30  Jan Hubicka  <jh@suse.cz>
17317
17318         * reload.c (get_secondary_mem): Fix updating of
17319         secondary_memlocs_elim_used.
17320
17321 2004-01-30  Richard Henderson  <rth@redhat.com>
17322
17323         * varasm.c (struct rtx_const, struct pool_constant): Remove.
17324         (MAX_RTX_HASH_TABLE): Remove.
17325         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
17326         (first_pool, last_pool, pool_offset): Remove.
17327         (struct rtx_constant_pool): Split out from ...
17328         (struct varasm_status): ... here.  Reference one via pointer.
17329         (struct constant_descriptor_rtx): Merge struct pool_constant.
17330         (SYMHASH): Remove.
17331         (decode_rtx_const): Remove.
17332         (const_hash_rtx, compare_constant_rtx): Remove.
17333         (record_constant_rtx): Remove.
17334         (const_desc_rtx_hash, const_desc_rtx_eq): New.
17335         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
17336         (const_rtx_hash_1, const_rtx_hash): New.
17337         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
17338         (simplify_subtraction): Use simplify_rtx.
17339         (force_const_mem): Rewrite to use new data structures.
17340         (find_pool_constant): Likewise.
17341         (get_pool_constant, get_pool_constant_mark,
17342         get_pool_constant_for_function, get_pool_mode,
17343         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
17344         (output_constant_pool_2): Split out from output_constant_pool.
17345         (output_constant_pool_1): Likewise.  Use new pool datastructures.
17346         (output_constant_pool): Zap entire pool datastructure.
17347         (mark_constant): Use new pool datastructures.
17348         (mark_constants): Use for_each_rtx.
17349         (mark_constant_pool): Use new pool datastructures.
17350
17351 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
17352
17353         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
17354         Copy operands[1] to pseudo for simplify_gen_subreg.
17355
17356 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17357
17358         * gcse.c (bypass_block): Fix a typo in the previous check-in
17359         to the file.
17360
17361 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
17362
17363         * toplev.c: Include alloc-pool.h.
17364         * Makefile.in (toplev.c): Update dependencies.
17365
17366 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17367
17368         * combine.c (simplify_shift_const, case XOR): Be careful when
17369         commuting XOR with ASHIFTRT.
17370
17371 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17372             Eric Botcazou  <ebotcazou@libertysurf.fr>
17373
17374         * config/sparc/sparc-protos.h: Remove the prototype for
17375         sparc_builtin_saveregs.
17376         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17377         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17378         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17379         (TARGET_STRUCT_VALUE_RTX): Likewise.
17380         (TARGET_RETURN_IN_MEMORY): Likewise.
17381         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17382         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17383         (sparc_builtin_saveregs): Make it static.
17384         (sparc_promote_prototypes): New.
17385         (sparc_struct_value_rtx): Likewise.
17386         (sparc_return_in_memory): Likewise.
17387         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
17388         (PROMOTE_FUNCTION_RETURN): Likewise.
17389         (RETURN_IN_MEMORY): Likewise.
17390         (STRUCT_VALUE): Likewise.
17391         (STRUCT_VALUE_INCOMING): Likewise.
17392         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17393         (STRICT_ARGUMENT_NAMING): Likewise.
17394         (PROMOTE_PROTOTYPES): Likewise.
17395
17396         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
17397
17398 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17399
17400         PR c/12818
17401         * varasm.c (const_hash_1) <STRING_CST>: Use the
17402         address to compute the hash value if flag_writable_strings.
17403         (compare_constant) <STRING_CST>: Compare the addresses
17404         if flag_writable_strings.
17405         (build_constant_desc): Do not copy the expression for a
17406         STRING_CST if flag_writable_strings.
17407
17408 2004-01-30  Jan Hubicka  <jh@suse.cz>
17409
17410         * alloc-pool.c: Include hashtab.h
17411         (alloc_pool_descriptor): New structure
17412         (alloc_pool_hash): New global variable.
17413         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
17414         (create_alloc_pool): Update statistics.
17415         (free_alloc_pool): Likewise.
17416         (pool_alloc): Likewise.
17417         (output_info): New structure
17418         (print_statistics, dump_alloc_pool_statistics): New function.
17419         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
17420         (dump_alloc_pool_statistics): Declare.
17421         * toplev.c (finalize):  Dump statistics.
17422
17423         * reload.c (secondary_memlocs_elim_used): New static variable.
17424         (get_secondary_mem): Update it.
17425         (find_reloads): Use it.
17426
17427 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
17428
17429         * toplev.c: Fix broken checkin of 2003-12-30, again.
17430
17431 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17432
17433         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
17434         s390*-*-* targets by specifying a 'nop' insn.
17435         * configure: Regenerate.
17436
17437 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17438
17439         PR target/11475
17440         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
17441
17442 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17443
17444         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
17445         of addr when creating MEM copy.
17446
17447 2004-01-29  Devang Patel  <dpatel@apple.com>
17448
17449         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
17450
17451 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17452
17453         PR inline-asm/6162
17454         * reload.c (find_reloads): Only support one pair of commutative
17455         operands.
17456
17457 2004-01-29  Roger Sayle  <roger@eyesopen.com>
17458
17459         PR java/13824
17460         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
17461         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
17462         recursion.
17463
17464 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17465
17466         * config/frv/frv.c: Don't mention deprecated macros in
17467         comments.  Remove some target-independent comments about
17468         target macros.
17469         * config/frv/frv.h: Likewise.
17470
17471 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17472
17473         * cfghooks.c (split_block): Set probability and count of the
17474         new edge.
17475
17476 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
17477
17478         * dwarf2out.c (struct die_struct): Added field decl_id.
17479         (decl_die_table): Changed to hash table.
17480         (decl_die_table_allocated): Deleted.
17481         (decl_die_table_in_use): Deleted.
17482         (DECL_DIE_TABLE_INCREMENT): Deleted.
17483         (decl_die_table_hash): New function.
17484         (decl_die_table_eq): New function.
17485         (lookup_decl_die): Lookup in a hash table.
17486         (equate_decl_number_to_die): Insert into a hash table.
17487         (dwarf2out_init): Init hash table decl_die_table.
17488
17489 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17490
17491         PR optimization/13424
17492         * expr.c (store_constructor): Revert 2003-12-03 change.
17493
17494         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
17495         expected before returning early.  Avoid sharing RTL if they
17496         need to be changed.
17497
17498         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
17499         handling so that memory attributes are preserved.  Don't call
17500         ix86_set_move_mem_attrs.
17501         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
17502         (ix86_expand_clrstr): Rename src argument to
17503         dst.  Rework rep_stos and strset handling so that memory attributes
17504         are preserved.
17505         (ix86_expand_strlen): Pass src argument to
17506         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
17507         memory attributes are preserved.
17508         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
17509         change_address instead of gen_rtx_MEM.
17510         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
17511         expanders.
17512         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
17513         strmovqi, strmovqi_rex64): Remove.
17514         (rep_mov*, strmov*): Prefix insn names with *.
17515         (strset, strset_singleop, rep_stos): New expanders.
17516         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
17517         strsetqi, strsetqi_rex64): Remove.
17518         (rep_stos*, strset*): Prefix insn names with *.
17519         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
17520         to SImode.
17521         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
17522         are preserved.
17523         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
17524         Prefix insn names with *.
17525         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
17526         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
17527         (strlenqi_1): New expander.
17528         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
17529
17530 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17531
17532         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
17533         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
17534         verify_flow_info): Declaration removed.
17535         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
17536         (debug_bb, debug_bb_n): Add argument to dump_bb call.
17537         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
17538         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
17539         instead of delete_block.
17540         * cfghooks.c: Include timevar.h and toplev.h.
17541         (cfg_hooks): Define here.
17542         (verify_flow_info, dump_bb): Moved from cfg.c.
17543         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17544         split_block, split_block_after_labels, move_block_after,
17545         delete_basic_block, split_edge, create_basic_block,
17546         create_empty_bb, can_merge_blocks_p, merge_blocks,
17547         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17548         New functions.
17549         * cfghooks.h (struct cfg_hooks): Added fields name,
17550         make_forwarder_block, tidy_fallthru_edge and
17551         move_block_after. Changed type of verify_flow_info, dump_bb,
17552         split_block fields. Renamed cfgh_split_edge and delete_block
17553         fields.
17554         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17555         split_block, delete_block, split_edge, create_basic_block,
17556         can_merge_blocks_p, merge_blocks): Macros removed.
17557         (cfg_hooks): Do not export.
17558         (verify_flow_info, dump_bb, redirect_edge_and_branch,
17559         redirect_edge_and_branch_force, split_block, split_block_after_labels,
17560         move_block_after, delete_basic_block, split_edge, create_basic_block,
17561         create_empty_bb, can_merge_blocks_p, merge_blocks,
17562         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17563         Declare.
17564         (cfg_layout_rtl_cfg_hooks): Declare.
17565         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
17566         New functions.
17567         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
17568         (redirect_edge_with_latch_update): Removed.
17569         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
17570         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
17571         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
17572         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
17573         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
17574         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
17575         cfghooks.c.
17576         (rtl_create_basic_block): Coding style fix.
17577         (rtl_tidy_fallthru_edge, rtl_move_block_after,
17578         rtl_make_forwarder_block): New functions.
17579         (update_cfg_after_block_merging): Removed.
17580         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
17581         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
17582         to dump_bb.
17583         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
17584         find_if_case_2): Don't update dominators.
17585         * timevar.def (TV_CFG_VERIFY): New.
17586         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
17587         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
17588         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
17589         (remove_bbs): Don't call remove_bbs.
17590         (create_preheader): Use make_forwarder_block.
17591         (mfb_keep_just, mfb_update_loops): New static functions.
17592
17593 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17594
17595         * config/avr/avr.h: Remove target-independent comments about
17596         target macros.
17597
17598 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
17599
17600         * timevar.c (timevar_print): Mention when checking is enabled.
17601
17602 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
17603
17604         * c-lex.c (c_lex): Rename to...
17605         (c_lex_with_flags): Add new parameter to get CPP flags.
17606         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
17607         * c-pragma.h (c_lex_with_flags): Declare.
17608
17609 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17610
17611         * config/mcore/mcore.c (mcore_external_libcall): Add a
17612         comment.
17613         (mcore_return_in_memory): Likewise.
17614
17615 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17616
17617         * config/mcore/mcore-protos.h: Remove the prototype for
17618         mcore_setup_incoming_varargs.
17619         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17620         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
17621         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17622         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17623         (TARGET_STRUCT_VALUE_RTX): Likewise.
17624         (TARGET_RETURN_IN_MEMORY): Likewise.
17625         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17626         (mcore_setup_incoming_varargs): Make it static.  Receive the
17627         first argument by reference.  Add argument second_time.
17628         (mcore_external_libcall): New.
17629         (mcore_return_in_memory): Likewise.
17630         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
17631         (PROMOTE_FUNCTION_RETURN): Likewise.
17632         (STRUCT_VALUE): Likewise.
17633         (RETURN_IN_MEMORY): Likewise.
17634         (SETUP_INCOMING_VARARGS): Likewise.
17635         (PROMOTE_PROTOTYPES): Likewise.
17636         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17637
17638 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17639
17640         * config/m32r/m32r-protos.h: Remove the prototype for
17641         m32r_setup_incoming_varargs.
17642         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
17643         (TARGET_STRUCT_VALUE_RTX): Likewise.
17644         (TARGET_RETURN_IN_MEMORY): Likewise.
17645         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17646         (m32r_return_in_memory): New.
17647         (m32r_setup_incoming_varargs): Make it static.
17648         * config/m32r/m32r.h: Remove #undef of
17649         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
17650         definitions of PROMOTE_FUNCTION_ARGS and
17651         PROMOTE_FUNCTION_RETURN.
17652         (PROMOTE_PROTOTYPES): Remove.
17653         (RETURN_IN_MEMORY): Likewise.
17654         (STRUCT_VALUE): Likewise.
17655
17656 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17657
17658         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
17659         (TARGET_STRUCT_VALUE_RTX): Likewise.
17660         (m68k_struct_value_rtx): Likewise.
17661         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
17662         STRUCT_VALUE_REGNUM.
17663         (PROMOTE_PROTOTYPES): Remove.
17664         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
17665         STRUCT_VALUE_REGNUM.
17666         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
17667         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
17668
17669 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17670
17671         * config/stormy16/stormy16.c
17672         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
17673         TARGET_BUILD_BUILTIN_VA_LIST.
17674
17675 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17676
17677         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
17678         (TARGET_STRUCT_VALUE_RTX): Likewise.
17679         (TARGET_RETURN_IN_MEMORY): Likewise.
17680         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17681         (v850_return_in_memory): Likewise.
17682         (v850_setup_incoming_varargs): Likewise.
17683         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
17684         (SETUP_INCOMING_VARARGS): Likewise.
17685         (RETURN_IN_MEMORY): Likewise.
17686         (STRUCT_VALUE): Likewise.
17687
17688 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17689
17690         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
17691         (fr30_setup_incoming_varargs): Don't use
17692         STRICT_ARGUMENT_NAMING.
17693         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
17694         (STRICT_ARGUMENT_NAMING): Likewise.
17695
17696 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17697
17698         * config/frv/frv-protos.h: Remove the prototype for
17699         frv_expand_builtin_saveregs.
17700         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
17701         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17702         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
17703         STRUCT_VALUE_REGNUM.
17704         (frv_expand_builtin_saveregs): Make it static.
17705         (frv_struct_value_rtx): New.
17706         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
17707
17708 2004-01-29  Jan Hubicka  <jh@suse.cz>
17709
17710         PR c++/12850
17711         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
17712         initial pointers.
17713         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
17714         for functions that will be only inlined.
17715         (cgraph_mark_function_to_output): Likewise.
17716         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
17717         do not clear function body.
17718         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
17719         (tree_rest_of_compilation): Reorganize the logic releasing function
17720         body to use callgraph datastructure.
17721
17722 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17723
17724         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
17725         to register_operand.
17726
17727 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17728
17729         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
17730         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
17731         match_operand expressions so that all match_dups appear
17732         lexically after their corresponding match_operands.
17733
17734 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17735
17736         * config/h8300/h8300.c (WORD_REG_USED): Use
17737         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
17738         (compute_saved_regs): Likewise.
17739         (h8300_expand_prologue): Likewise.  Allocate locals after
17740         saving registers.
17741         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
17742         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
17743         registers.
17744         (h8300_initial_elimination_offset): Adjust for the new frame
17745         layout, which swaps flips the order of locals and saved
17746         registers.
17747         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
17748         (HARD_FRAME_POINTER_REGNUM): New.
17749         (ELIMINABLE_REGS): Add an elimination rule from
17750         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
17751         (REGISTER_NAMES): Add fp.
17752         * config/h8300/h8300.md (FP_REG): Change to 11.
17753         (HFP_REG): New.
17754
17755 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17756
17757         * genrecog.c (write_node): Remove a useless local variable.
17758
17759 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17760
17761         * Makefile.in (options.c options.h): Use stamp file s-options to
17762         avoid unnecessary rebuilds.
17763         (options.o): New target listing dependencies.
17764         (gtyp-gen.h): Use stamp file s-gtyp-gen.
17765         (STAGESTUFF): Add s-gtyp-gen.
17766
17767 2004-01-28  Richard Henderson  <rth@redhat.com>
17768
17769         * ggc.h (ggc_free): Declare.
17770         * ggc-common.c (ggc_realloc): Use it.
17771         * ggc-page.c: Remove lots of inline markers.
17772         (globals): Add free_object_list.
17773         (ggc_alloc): Tidy.
17774         (ggc_free, validate_free_objects): New.
17775         (poison_pages): Provide default.
17776         (ggc_collect): Call validate_free_objects; emit markers to
17777         the debug file.
17778
17779 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17780             Jim Wilson  <wilson@specifixinc.com>
17781
17782         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
17783         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
17784         scratch pointer.
17785         (ia64_secondary_reload_class): Delete case GR_REGS.
17786         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
17787         Do not allocate a scratch register.
17788         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
17789
17790 2004-01-28  Jan Hubicka  <jh@suse.cz>
17791
17792         * gcse.c (bypass_block): Prevent edges to be unified when we are
17793         about to emit compenstation code.
17794
17795 2004-01-28  Nick Clifton  <nickc@redhat.com>
17796
17797         * config/arm/arm.c (arm_expand_builtin): Force second argument of
17798         the setcwx insn into a register.
17799
17800 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
17801
17802         * config/fp-bit.c (pack_d): When using paired doubles to implement
17803         a long double, round the high part separately.
17804         (unpack_d): Fix the case in which the high part is a power of two
17805         and the low part is a nonzero value of the opposite sign.
17806
17807 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17808
17809         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17810         (TARGET_STRUCT_VALUE_RTX): Likewise.
17811         (c4x_external_libcall): Likewise.
17812         (c4x_struct_value_rtx): Likewise.
17813         * config/c4x/c4x.h: Remove.
17814         (STRUCT_VALUE_REGNUM): Likewise.
17815         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17816
17817 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17818
17819         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
17820         (TARGET_STRUCT_VALUE_RTX): Likewise.
17821         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
17822         (STRUCT_VALUE): Likewise.
17823         (PROMOTE_PROTOTYPES): Likewise.
17824
17825 2004-01-27  Roger Sayle  <roger@eyesopen.com>
17826
17827         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
17828         CONST_INT before using INTVAL.
17829
17830 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
17831
17832         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
17833         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
17834         frame if !TARGET_BACKCHAIN.
17835         * config/s390/s390.md ("allocate_stack"): Use pattern only if
17836         TARGET_BACKCHAIN.
17837         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
17838
17839 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17840
17841         * ia64.c (ia64_function_arg): When placing HFAs in integer
17842         registers, do not special case the mode used for complex
17843         types.  Do not advance int_regs until the current register
17844         is full.
17845
17846 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
17847
17848         PR target/7297
17849         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
17850
17851 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17852
17853         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
17854         slow, unaligned loads and stores while debugging.  Fix formatting.
17855
17856 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17857
17858         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
17859         of computing wmode.
17860         (restore_stack_nonlocal): Same.
17861
17862 2004-01-27  Devang Patel <dpatel@apple.com>
17863
17864         * Makefile.in (dwarf2out.o): Depend on input.h
17865         * dbxout.c (dbx_debug_hooks): Add new empty hook for
17866         imported_module_or_decl.
17867         (xcoff_debug_hooks): Same.
17868         * sdbout.c (sdb_debug_hooks): Same.
17869         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
17870         * debug.c (do_nothing_debug_hooks): Same.
17871         (debug_nothing_tree_tree): New function.
17872         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
17873         * dwarf2out.c: Include input.h.
17874         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
17875         (remove_child_TAG): New function.
17876         (dwarf_tag_name): Handle DW_TAG_imported_module.
17877         (gen_subprogram_die): Equate decl number to declaration die. Do not
17878         remove all children dies while reusing declaration die for definition.
17879         Instead, selectively remove only formal parameters.
17880         (gen_variable_die): Equate variable decl to declaration die.
17881         (gen_field_die): Equate field decl to line number.
17882         (force_namespace_die): Replace it with ...
17883         (force_decl_die): ... this.
17884         (force_type_die): New function.
17885         (setup_namespace_context): Replace use of force_namespace_die() with
17886         force_decl_die().
17887         (gen_namespace_die): Same.
17888         (dwarf2out_imported_module_or_decl): New function.
17889
17890 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
17891
17892         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
17893         on CQImode and CHImode incoming arguments in register a7.
17894         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
17895         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
17896         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
17897         xtensa_copy_incoming_a7 before reload.
17898
17899 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17900
17901         * coverage.c (get_coverage_counts): Give a different message
17902         if flag_guess_branch_prob is set.
17903         * predict.c (counts_to_freqs): Return an int.
17904         (estimate_bb_frequencies): If counts_to_freqs returns zero,
17905         calculate estimates.
17906
17907 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
17908
17909         * config/iq2000/iq2000-protos.h: Remove the prototype for
17910         iq2000_setup_incoming_varargs.
17911         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17912         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17913         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17914         (TARGET_STRUCT_VALUE_RTX): Likewise.
17915         (TARGET_RETURN_IN_MEMORY): Likewise.
17916         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17917         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17918         (iq2000_return_in_memory): Likewise.
17919         (iq2000_setup_incoming_varargs): Make it static.  Receive the
17920         first argument by reference.
17921         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
17922         (PROMOTE_FUNCTION_RETURN): Likewise.
17923         (PROMOTE_PROTOTYPES): Likewise.
17924         (RETURN_IN_MEMORY): Likewise.
17925         (STRUCT_VALUE): Likewise.
17926         (SETUP_INCOMING_VARARGS): Likewise.
17927         (STRICT_ARGUMENT_NAMING): Likewise.
17928
17929 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
17930
17931         * fixinc/fixinc.c (test_test): Initialize res.
17932         (start_flexer): Initialize pz_cmd_save.
17933
17934 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17935
17936         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
17937         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
17938
17939 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17940
17941         PR 7198
17942         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
17943         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
17944         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
17945         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
17946         Possibly rename pattern for consistency.
17947         Remove ??? comments suggesting that this be done.
17948         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
17949         New patterns.
17950         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
17951         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
17952         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
17953         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
17954         Update to match.
17955
17956 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
17957
17958         * config/arm/arm.c (output_return_instruction): Only restore IP
17959         into SP if frame_pointer_needed.
17960
17961 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17962
17963         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
17964         for SCmode and DCmode if ARCH32.
17965         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
17966         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
17967         if ARCH32.
17968         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
17969         if ARCH32.
17970         (BASE_OUTGOING_VALUE_REG): Likewise.
17971
17972 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17973
17974         PR target/10904
17975         PR target/13058
17976         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
17977         Forbid mode changes from SImode for lower FP regs if ARCH64.
17978
17979 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17980
17981         * Makefile.in (bt-load.o): Depend on except.h.
17982         * bt-load.c (except.h): #include.
17983         (compute_defs_uses_and_gen): If insn at end of BB can throw
17984         within this function, consider registers used by it unavailable for
17985         btr migration.
17986         (move_btr_def): If insn at end of BB can throw, insert before rather
17987         than after.
17988
17989         * flags.h (flag_btr_bb_exclusive): Declare.
17990         * toplev.c (flag_btr_bb_exclusive): New variable.
17991         (f_options): Add btr-bb-exclusive.
17992         * bt-load.c (augment_live_range): Restore old behaviour if
17993         flag_btr_bb_exclusive is set.
17994         * common.opt: Add entry for -fbtr-bb-exclusive.
17995         * opts.c (common_handle_options): Same.
17996         * doc/invoke.texi: Document -fbtr-bb-exclusive.
17997
17998         * bt-load.c (btrs_live_at_end): New variable.
17999         (compute_defs_uses_and_gen): Compute its pointed-to array.
18000         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
18001         (augment_live_range): When augmenting with a new dominator,
18002         use only its btrs_live_at_end set, but also add in the full set
18003         of the old dominator.
18004         (btr_def_live_range): Use btrs_live_at_end.
18005         (move_btr_def): Set other_btr_uses_before_def, and move new set
18006         to the end of the basic block, if appropriate.
18007         (migrate_btr_defs): Allocate and free btrs_live_at_end.
18008
18009         * bt-load.c (basic_block_freq): Remove outdated comment.
18010
18011 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
18012
18013         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
18014         (PREDICATE_CODES): Remove duplicate.
18015         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
18016         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
18017         (MASK_PROFILE_KERNEL): Adjust define.
18018
18019 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
18020
18021         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
18022         of long string literals from 32 bytes to sizeof (void *) when !-Os
18023         and to 1 with -Os.
18024
18025 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18026
18027         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
18028         constant addresses in the normal mode.
18029
18030 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18031
18032         * system.h (CHAR_BITFIELD): Delete.
18033         (BOOL_BITFIELD): New.
18034         * c-decl.c (c_scope): Use BOOL_BITFIELD.
18035         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
18036
18037 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18038
18039         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18040         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18041         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18042         (TARGET_STRUCT_VALUE_RTX): Likewise.
18043         (TARGET_RETURN_IN_MEMORY): Likewise.
18044         (arc_return_in_memory): Likewise.
18045         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
18046         (PROMOTE_FUNCTION_RETURN): Likewise.
18047         (RETURN_IN_MEMORY): Likewise.
18048         (STRUCT_VALUE): Likewise.
18049
18050 2004-01-26  Richard Henderson  <rth@redhat.com>
18051
18052         * c-parse.in (extension): Use itype.
18053         (SAVE_EXT_FLAGS): Don't allocate a tree.
18054         (RESTORE_EXT_FLAGS): Don't read a tree.
18055
18056 2004-01-26  Jan Hubicka  <jh@suse.cz>
18057
18058         * cselib.c (discard_useless_values):  Clear out value pointer pointing
18059         to datastructure to be recycled.
18060
18061 2004-01-25  Jan Hubicka  <jh@suse.cz>
18062
18063         * genextract.c (main): Do not output the memset when not checking.
18064
18065 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18066
18067         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
18068         switch statement instead of a chain of if statements.
18069
18070 2004-01-26  Jeff Law  <law@redhat.com>
18071
18072         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
18073         acute accents for Petur Runolfsson's entry.
18074
18075 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18076
18077         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
18078         (TARGET_RETURN_IN_MEMORY): Likewise.
18079         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
18080         (RETURN_IN_MEMORY): Likewise.
18081
18082 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18083
18084          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
18085          unaligned load/store into smaller loads and stores.
18086
18087 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18088
18089         * function.c (assign_parms): Do not assign
18090         long long argument to memory in prologue if
18091         is it loaded into register.
18092
18093 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18094
18095          PR middle-end/13779
18096          * expr.c (emit_group_load): split constant
18097          correctly into register components of PARALLEL insn.
18098
18099 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18100
18101         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
18102         Use adjust_address_nv directly with appropriate mode.
18103         (restore_stack_nonlocal): Ditto.
18104
18105 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18106
18107         * config/xtensa/xtensa-protos.h: Remove the prototype for
18108         xtensa_builtin_saveregs.
18109         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18110         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18111         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18112         (TARGET_STRUCT_VALUE_RTX): Likewise.
18113         (TARGET_RETURN_IN_MEMORY): Likewise.
18114         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18115         (xtensa_builtin_saveregs): Make it static.
18116         (xtensa_return_in_memory): New.
18117         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
18118         (PROMOTE_FUNCTION_RETURN): Likewise.
18119         (PROMOTE_PROTOTYPES): Likewise.
18120         (STRUCT_VALUE): Likewise.
18121         (RETURN_IN_MEMORY): Likewise.
18122         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18123
18124 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18125
18126         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
18127         (arm_setup_incoming_varargs): Likewise.
18128         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
18129
18130 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18131
18132         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
18133         (cris_setup_incoming_varargs): Likewise.
18134         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
18135
18136 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18137
18138         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
18139         (ns32k_struct_value_rtx): Likewise.
18140         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
18141         NS32K_STRUCT_VALUE_REGNUM.
18142
18143 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18144
18145         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18146         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18147         (TARGET_STRUCT_VALUE_RTX): Likewise.
18148         (arm_struct_value_rtx): Likewise.
18149         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
18150         (STRUCT_VALUE): Likewise.
18151         (STRUCT_VALUE_REGNUM): Likewise.
18152         (PROMOTE_PROTOTYPES): Likewise.
18153
18154 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18155
18156         * config/ia64/ia64-protos.h: Remove the prototype for
18157         ia64_setup_incoming_varargs and ia64_return_in_memory.
18158         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
18159         (TARGET_RETURN_IN_MEMORY): Likewise.
18160         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18161         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18162         (ia64_setup_incoming_varargs): Adjust the arguments to meet
18163         the requirement of TARGET_SETUP_INCOMING_VARARGS.
18164         (ia64_return_in_memory): Make it static.  Change the return
18165         type to bool from int.  Add an argument.
18166         (ia64_struct_value_rtx): New.
18167         * config/ia64/ia64.h: Remove commented-out definitions of
18168         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
18169         PROMOTE_PROTOTYPES.
18170         (RETURN_IN_MEMORY): Remove.
18171         (STRUCT_VALUE_REGNUM): Likewise.
18172         (STRICT_ARGUMENT_NAMING): Likewise.
18173
18174 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
18175
18176         PR target/13666
18177         * config/sparc/sparc.c (function_arg_union_value): New function.
18178         (function_arg): Use it to deal with unions.
18179         (function_value): Likewise.  Define 'regbase' only for ARCH64.
18180         Replace a conditional statement by a simpler one.
18181
18182 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
18183
18184         * config/mips/mips.c (mips16_optimize_gp): Delete.
18185         (mips_reorg): Don't call it.
18186
18187 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18188
18189         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
18190         (floatunsqihf2): Remove operand 6.
18191         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
18192         fix patterns.
18193         (ldi_conditional, ldf_conditional): Validate operands.
18194
18195 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18196
18197         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
18198         (HAVE_GAS_HIDDEN): Undefine as interim measure.
18199
18200 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18201
18202         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
18203         memory references if TARGET_EXPOSE_LDP nonzero.
18204
18205 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18206
18207         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
18208
18209 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18210
18211         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
18212         invalid operand combinations.
18213
18214 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18215
18216         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
18217         c4x_legitimate_address_p.  Fix post_modify check.
18218
18219         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
18220         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
18221
18222 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18223
18224         * config/pa/pa-protos.h: Remove the prototype for
18225         hppa_builtin_saveregs.  Add a prototype for
18226         pa_return_in_memory.
18227         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
18228         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18229         (TARGET_STRUCT_VALUE_RTX): Likewise.
18230         (TARGET_RETURN_IN_MEMORY): Likewise.
18231         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18232         (pa_struct_value_rtx): Likewise.
18233         (pa_return_in_memory): Likewise.
18234         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
18235         PA_STRUCT_VALUE_REGNUM.
18236         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
18237         (EXPAND_BUILTIN_SAVEREGS): Remove.
18238         (PROMOTE_PROTOTYPES): Likewise.
18239         (PROMOTE_FUNCTION_RETURN): Likewise.
18240
18241 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18242
18243         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
18244         (TARGET_STRUCT_VALUE_RTX): Likewise.
18245         (vax_struct_value_rtx): Likewise.
18246         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
18247         VAX_STRUCT_VALUE_REGNUM.
18248         (PROMOTE_PROTOTYPES): Remove.
18249
18250 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18251
18252         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
18253
18254 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
18255
18256         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
18257         and MIPS64 have HI/LO interlocks.  Update comment.
18258
18259 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18260
18261         * config/stormy16/stormy16-protos.h: Remove the prototype for
18262         xstormy16_setup_incoming_varargs.
18263         * config/stormy16/stormy16.c
18264         (xstormy16_setup_incoming_varargs): Remove.
18265         (xstormy16_return_in_memory): New.
18266         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
18267         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18268         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18269         (TARGET_STRUCT_VALUE_RTX): Likewise.
18270         (TARGET_RETURN_IN_MEMORY): Likewise.
18271         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
18272         (PROMOTE_FUNCTION_RETURN): Likewise
18273         (PROMOTE_PROTOTYPES): Likewise
18274         (RETURN_IN_MEMORY): Likewise
18275         (STRUCT_VALUE): Likewise
18276         (SETUP_INCOMING_VARARGS): Likewise
18277
18278 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18279
18280         * config/mips/mips.c (mips_offset_within_object_p): New function.
18281         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
18282         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
18283         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
18284
18285 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18286
18287         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
18288         (PROMOTE_FUNCTION_RETURN): Likewise.
18289
18290 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18291
18292         * config/mn10300/mn10300-protos.h: Remove the prototype for
18293         mn10300_builtin_saveregs.
18294         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
18295         (TARGET_STRUCT_VALUE_RTX): Likewise.
18296         (TARGET_RETURN_IN_MEMORY): Likewise.
18297         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18298         (mn10300_return_in_memory): Likewise.
18299         (mn10300_builtin_saveregs): Make it static.
18300         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
18301         (RETURN_IN_MEMORY): Likewise.
18302         (STRUCT_VALUE): Likewise.
18303         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18304
18305 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
18306
18307         PR bootstrap/13853
18308         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
18309
18310 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18311
18312         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
18313         using ccr.
18314
18315 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18316
18317         * config/i860/i860-protos.h: Remove the prototype for
18318         i860_saveregs.
18319         * config/i860/i860.c (i860_saveregs): Make it static.
18320         (i860_struct_value_rtx): New.
18321         (TARGET_STRUCT_VALUE_RTX): Likewise.
18322         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18323         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
18324         I860_STRUCT_VALUE_REGNUM.
18325         (EXPAND_BUILTIN_SAVEREGS): Remove.
18326
18327 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18328
18329         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
18330         (TARGET_RETURN_IN_MEMORY): Likewise.
18331         (m68hc11_struct_value_rtx): Likewise.
18332         (m68hc11_return_in_memory): Likewise.
18333         * config/m68hc11/m68hc11.h: Remove a commented-out definition
18334         of PROMOTE_PROTOTYPES.
18335         (RETURN_IN_MEMORY): Remove.
18336         (STRUCT_VALUE_REGNUM): Likewise.
18337
18338 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18339
18340         * config/mmix/mmix-protos.h: Remove the prototype for
18341         mmix_setup_incoming_varargs.
18342         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18343         (TARGET_STRUCT_VALUE_RTX): Likewise.
18344         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18345         (mmix_setup_incoming_varargs): Make it static.
18346         (mmix_struct_value_rtx): New.
18347         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
18348         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
18349         (STRUCT_VALUE_REGNUM): Remove.
18350         (SETUP_INCOMING_VARARGS): Likewise.
18351
18352 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18353
18354         * config/mips/mips-protos.h: Remove the prototypes for
18355         mips_setup_incoming_varargs and mips_return_in_memory.
18356         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18357         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18358         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18359         (TARGET_STRUCT_VALUE_RTX): Likewise.
18360         (TARGET_RETURN_IN_MEMORY): Likewise.
18361         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18362         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18363         (mips_setup_incoming_varargs): Match the prototype for
18364         TARGET_SETUP_INCOMING_VARARGS.
18365         (mips_return_in_memory): Make it static.  Add argument fntype.
18366         (mips_strict_argument_naming): New.
18367         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
18368         (PROMOTE_FUNCTION_ARGS): Likewise.
18369         (PROMOTE_FUNCTION_RETURN): Likewise.
18370         (STRUCT_VALUE): Likewise.
18371         (RETURN_IN_MEMORY): Likewise.
18372         (SETUP_INCOMING_VARARGS): Likewise.
18373         (STRICT_ARGUMENT_NAMING): Likewise.
18374
18375 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18376
18377         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
18378         (TARGET_RETURN_IN_MEMORY): Likewise.
18379         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18380         (ip2k_return_in_memory): Likewise.
18381         (ip2k_setup_incoming_varargs): Likewise.
18382         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
18383         (STRUCT_VALUE): Likewise.
18384         (STRUCT_VALUE_INCOMING): Likewise.
18385         (SETUP_INCOMING_VARARGS): Likewise.
18386
18387 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18388
18389         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
18390         (TARGET_RETURN_IN_MEMORY): Likewise.
18391         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18392         (avr_return_in_memory): Remove.
18393         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
18394         (STRUCT_VALUE): Likewise.
18395         (STRUCT_VALUE_INCOMING): Likewise.
18396         (STRICT_ARGUMENT_NAMING): Likewise.
18397
18398 2004-01-25  Jan Hubicka  <jh@suse.cz>
18399
18400         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
18401
18402 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18403
18404         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
18405         (mips_regno_mode_ok_for_base_p): Declare.
18406         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
18407         (FRAME_POINTER_REGNUM): Renumber to 78.
18408         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
18409         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
18410         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
18411         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
18412         (REG_MODE_OK_FOR_BASE_P): Likewise.
18413         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
18414         entry for 77 to "$arg" and entry for 78 to "$frame".
18415         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
18416         (mips_reg_mode_ok_for_base_p): Remove.
18417         (mips_regno_mode_ok_for_base_p): New function, derived from old
18418         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
18419         restrictions unless we're being strict.
18420         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
18421
18422 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18423
18424         * c-common.h: Fix comment typos.
18425         * c-decl.c: Likewise.
18426         * cgraphunit.c: Likewise.
18427         * combine.c: Likewise.
18428         * et-forest.c: Likewise.
18429         * flow.c: Likewise.
18430         * function.c: Likewise.
18431         * ifcvt.c: Likewise.
18432         * integrate.c: Likewise.
18433         * jump.c: Likewise.
18434         * postreload.c: Likewise.
18435         * varray.c: Likewise.
18436
18437 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18438
18439         * doc/frontends.texi: Update copyright.
18440         * doc/gcov.texi: Likewise.
18441         * doc/gty.texi: Likewise.
18442         * doc/sourcebuild.texi: Likewise.
18443         * doc/standards.texi: Likewise.
18444
18445 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
18446
18447         PR target/12978
18448         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
18449         Remove movstrqi_small because it conflicts with movstrqi_large.
18450
18451 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18452
18453         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18454         (TARGET_STRUCT_VALUE_RTX): Likewise.
18455         (cris_struct_value_rtx): Likewise.
18456         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
18457         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
18458         STRUCT_VALUE_REGNUM.
18459         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
18460
18461 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
18462
18463         PR bootstrap/13848
18464         * cse.c (cse_cc_succs): Change the mode of the source expression
18465         as soon as decide we need a new mode.  Don't permit changing modes
18466         if we found a match in a successor block.
18467         (cse_condition_code_reg): Save original mode of source expression
18468         so that we know whether we have to change the mode in other
18469         insns.
18470
18471 2004-01-24  Jan Hubicka  <jh@suse.cz>
18472
18473         * emit-rtl.c (change_address, adjust_address_1, offset_address,
18474         widen_memory_access):  Return early when there is nothing to change.
18475
18476 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
18477
18478         * simplify-rtx.c (simplify_relational_operation): Don't
18479         simplify address == constant into address + -constant == 0.
18480
18481 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18482
18483         * gcc.c (process_command): Don't internationalize the
18484         Copyright message.
18485         * mips-tfile.c (main): Likewise.
18486
18487 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
18488
18489         * cse.c: (cse_cc_succs) Fix comparison warning.
18490
18491 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18492
18493         * config/h8300/h8300.md: Remove extraneous USE in expanders.
18494
18495 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18496
18497         * config/h8300/h8300-protos.h: Provide prototypes for
18498         h8300_legitimate_constant_p and h8300_legitimate_address_p.
18499         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
18500         (h8300_rtx_ok_for_base_p): Likewise.
18501         (h8300_legitimate_address_p): Likewise.
18502         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
18503         h8300_legitimate_constant_p.
18504         (RTX_OK_FOR_BASE_P): Remove.
18505         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
18506
18507 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18508
18509         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
18510         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
18511         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
18512         (REG_OK_FOR_BASE_STRICT_P): Likewise.
18513         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
18514         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
18515         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
18516         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
18517
18518 2004-01-24  Jan Hubicka  <jh@suse.cz>
18519
18520         * cselib.c (remove_useless_values):  Do not access discarded values.
18521
18522 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
18523
18524         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
18525         arrays.
18526
18527 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18528
18529         * recog.c: Fix a typo in copyright.
18530
18531 2004-01-23  Andrew Pinski  <apinski@apple.com>
18532
18533         * config/rs6000/rs6000.md (call): Fix misappiled patch.
18534         (call_value): Likewise.
18535
18536 2004-01-23  Richard Henderson  <rth@redhat.com>
18537
18538         PR opt/12941
18539         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
18540         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
18541         if SHIFT_COUNT_TRUNCATED is set.
18542
18543 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
18544
18545         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
18546         separate real and imaginary parts.
18547         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
18548
18549 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
18550
18551         PR target/13674
18552         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
18553         loading into GPR.
18554
18555 2004-01-23  Jan Hubicka  <jh@suse.cz>
18556
18557         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
18558         change.
18559
18560         * alloc-pool.c (align_four): Kill.
18561         (create_alloc_pool): Align size to eight.
18562         (free_alloc_pool, free_pool): Invalidate deallocated data.
18563
18564 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
18565
18566         PR gcc/1532
18567         * cse.c (cse_change_cc_mode): New static function.
18568         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
18569         (cse_condition_code_reg): New function.
18570         * rtl.h (cse_condition_code_reg): Declare.
18571         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
18572         * target.h (struct gcc_target): Add fixed_condition_code_regs and
18573         cc_modes_compatible.
18574         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18575         (TARGET_CC_MODES_COMPATIBLE): Define.
18576         (TARGET_INITIALIZER): Add new initializers.
18577         * targhooks.c (default_cc_modes_compatible): New function.
18578         * targhooks.c (default_cc_modes_compatible): Declare.
18579         * hooks.c (hook_bool_intp_intp_false): New function.
18580         * hooks.h (hook_bool_intp_intp_false): Declare.
18581         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18582         (TARGET_CC_MODES_COMPATIBLE): Define.
18583         (ix86_fixed_condition_code_regs): New static function.
18584         (ix86_cc_modes_compatible): Likewise.
18585         * doc/tm.texi (Condition Code): Document new hooks.
18586
18587 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18588
18589         * fixinc/inclhack.def (bad_lval): Renamed to ...
18590         (alpha_bad_lval): ... this.
18591         Removed file list.
18592         Restrict to alpha*-dec-osf*.
18593         * fixinc/fixincl.x: Regenerate.
18594         * fixinc/tests/base/dirent.h: Remove, moving test ...
18595         * fixinc/tests/base/testing.h: ... here, reflecting new name.
18596
18597 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
18598
18599         PR c/13814
18600         * c-decl.c (diagnose_mismatched_decls): Also discard a
18601         built-in if we encounter an old-style definition with the
18602         same name.
18603
18604 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
18605
18606         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
18607         set to default{32,64}.
18608
18609 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18610
18611         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
18612         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
18613
18614 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
18615             Olivier Hainque  <hainque@act-europe.fr>
18616
18617         * fold-const.c (fold_binary_op_with_conditional_arg): Only
18618         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
18619
18620 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
18621
18622         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
18623         size for minipool references.
18624
18625 2004-01-23  Roger Sayle  <roger@eyesopen.com>
18626
18627         * real.c (real_floor, real_ceil): Tweak to allow input and output
18628         arguments to overlap.
18629         (real_round): New function to implement round(3m) semantics.
18630         * real.h (real_round): Prototype here.
18631         * builtins.c (fold_builtin_round): New function to constant fold
18632         round, roundf and roundl.
18633         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
18634
18635 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
18636
18637         PR optimization/13819
18638         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
18639         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
18640         (sh_handle_sp_switch_attribute): Remove warning.
18641
18642 2004-01-23  Jan Hubicka  <jh@suse.cz>
18643
18644         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
18645
18646 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
18647
18648         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
18649         may or may not return non-NIL.
18650         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
18651         check CANNOT_CHANGE_MODE_CLASS
18652
18653 2004-01-23  Jan Hubicka  <jh@suse.cz>
18654
18655         * basic-block.h (PROP_POSTRELOAD): New macro.
18656         (CLEANUP_LOG_LINKS): New.
18657         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
18658         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
18659
18660         * cselib.c (value_pool): New.
18661         (new_cselib_val): Use pool.
18662         (cselib_init): Initialize value_pool
18663         (cselib_finish): Free pool.
18664
18665 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
18666
18667         * config/sparc/sparc.c (scan_record_type): New function.
18668         (function_arg_slotno): Use it to determine which kinds of
18669         registers the record can be passed in.
18670
18671 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
18672
18673         * config/pa/fptr.c: Fix old-style definition.
18674
18675 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
18676
18677         PR optimization/13724
18678         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
18679         represents the zero bits produced by a ZERO_EXTEND operation.
18680
18681 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18682
18683         PR optimization/13821
18684         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
18685         correctly calculate the lowpart offset of the contracted subreg.
18686
18687 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
18688
18689         * doc/invoke.texi (Optimize Options): Note that --param arguments
18690         are subject to change without notice.
18691
18692 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18693
18694         * config.gcc (mips-sgi-irix6*o32): Removed.
18695         * config/mips/iris6-o32-as.h: Likewise.
18696         * config/mips/iris6-o32-gas.h: Likewise.
18697         * config/mips/iris6-o32.h: Likewise.
18698
18699 2004-01-22  Jan Hubicka  <jh@suse.cz>
18700
18701         * cfgcleanup.c (first_pass): New static variable.
18702         (try_forward_edges):  Add work limiting check for threading.
18703         (try_crossjump_bb):  Add work limiting check for crossjumping.
18704         (try_optimize_cfg):  Maintain first pass variable.
18705
18706 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
18707
18708         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
18709         handles complex and vector modes.
18710
18711 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18712
18713         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
18714         (REG_OK_FOR_BASE_P_STRICT): Likewise.
18715         (STRICT): Likewise.
18716
18717 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18718
18719         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
18720         (genrtl_for_stmt): Remove emit_nop calls.
18721
18722 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18723
18724         PR target/13713
18725         PR target/13324
18726         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
18727         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
18728         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
18729
18730 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18731
18732         * config/arm/arm.c: Include "debug.h".
18733         (thumb_pushpop): Take two new arguments.  Add some commentary.
18734         Output frame information when pushing.
18735         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
18736         thumb_pushpop.
18737         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
18738         offset, and pass it to thumb_pushpop.  Output CFI information.
18739         (thumb_expand_prologue): Add some frame-related markers and notes.
18740
18741 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
18742
18743         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
18744         for TARGET_64BIT.
18745         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
18746         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
18747
18748 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18749             Paolo Bonzini  <bonzini@gnu.org>
18750
18751         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
18752         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
18753         * rtl.h (subreg_lsb_1): Prototype here.
18754         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
18755         sign extensions.
18756
18757 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18758
18759         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
18760         macro need not be defined if jump-tables should contain
18761         relative addresses only when -fPIC or -fPIC is in effect.
18762
18763 2004-01-22  Jan Hubicka  <jh@suse.cz>
18764
18765         * alias.c (reg_base_value): Turn into varray.
18766         (reg_base_value_size): Kill.
18767         (old_reg_base_value): New deletable varray.
18768         (alias_invariant_size): New variable.
18769         (REG_BASE_VALUE): Update to use varray.
18770         (find_base_value): Likewise.
18771         (record_set): Likewise.
18772         (record_base_value): Likewise.
18773         (memrefs_conflict_p): Likewise.
18774         (record_set): Likewise
18775         (record_base_value): Likewise.
18776         (memrefs_conflict_p): Use alias_invariant_size.
18777         (init_alias_analysis): Use varray; set alias_invariant_size;
18778         rescale other arrays to be sized by maxreg.
18779         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
18780
18781 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18782
18783         * config/sparc/sparc.c (function_arg_slotno): Use
18784         FLOAT_TYPE_P to detect FP fields in structures.
18785         (function_arg_record_value_1): Likewise.
18786         (function_arg_record_value_2): Likewise.
18787
18788 2004-01-22  Jan Hubicka  <jh@suse.cz>
18789
18790         * function.c (allocate_struct_function): Do not initialize expr, emit
18791         and varasm.
18792         (prepare_function_start): Do it here.
18793         * c-parse.in (maybe_type_qual): Do not produce line number notes.
18794
18795 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18796
18797         PR target/13559
18798         * config/sparc/sparc.c (function_arg_record_value_3): Revert
18799         to 'word_mode' once the first slot has been filled.
18800
18801 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
18802
18803         * config/sparc/sparc.c (function_arg_record_value_1): Fix
18804         computation of the number of integer registers required.
18805
18806 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18807
18808         * config/i386/i386.md: Simplify certain comparisons of
18809         const_int.
18810
18811 2004-01-21  Andrew Pinski  <apinski@apple.com>
18812
18813         PR target/13785
18814         * config/rs6000/rs6000.md (call_value): Force operand
18815         1 not operand 0 into a register.
18816
18817 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18818
18819         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
18820         unwind-dw2-fde.h: Update copyright.
18821
18822 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18823
18824         * pa-protos.h: Update copyright.
18825         * pa.h: Likewise.
18826         * pa.md: Likewise.
18827
18828 2004-01-21  Caroline Tice  <ctice@apple.com>
18829
18830         PR target/12308
18831         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
18832         flags register.
18833         (fix_truncdfdi2): Likewise.
18834         (fix_truncsfdi2): Likewise.
18835         (*fix_truncdi_1): Likewise.
18836         (fix_truncxfsi2): Likewise.
18837         (fix_truncdfsi2): Likewise.
18838         (fix_truncsfsi2): Likewise.
18839         (*fix_truncsi_1): Likewise.
18840         (fix_truncxfhi2): Likewise.
18841         (fix_truncdfhi2): Likewise.
18842         (fix_truncsfhi2): Likewise.
18843         (*fix_trunchi_1): Likewise.
18844
18845 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18846
18847         * alias.c, basic-block.h, c-common.c, c-common.h,
18848         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
18849         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
18850         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
18851         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
18852         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
18853         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
18854         genautomata.c, genconditions.c, genemit.c, genflags.c,
18855         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
18856         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
18857         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
18858         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
18859         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
18860         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
18861         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
18862         unwind.h, varray.c, varray.h: Update copyright.
18863
18864 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18865
18866         * config/h8300/coff.h: Update copyright.
18867         * config/h8300/elf.h: Likewise.
18868         * config/h8300/h8300-protos.h: Likewise.
18869         * config/h8300/h8300.c: Likewise.
18870         * config/h8300/h8300.h: Likewise.
18871         * config/h8300/h8300.md: Likewise.
18872
18873 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18874
18875         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
18876         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
18877         ultrix_unistd): New hacks.
18878         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
18879         ULTRIX_CONST2_CHECK): Add checks.
18880         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
18881         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
18882         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
18883         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
18884         * fixinc/tests/base/locale.h: New file.
18885         * fixinc/fixincl.x: Rebuilt.
18886
18887 2004-01-21  Andreas Jaeger  <aj@suse.de>
18888             Michael Matz  <matz@suse.de>
18889
18890         * doc/extend.texi (Extended Asm): Clarify memory clobber.
18891
18892 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18893
18894         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
18895         _Jv_RegisterClasses through a function pointer.
18896
18897 2004-01-21  Falk Hueffner  <falk@debian.org>
18898
18899         PR target/12898
18900         * config/alpha/alpha.c (alpha_emit_set_const_1): If
18901         no_new_pseudos, use gen_rtx_SET directly for SImode constants
18902         which need multiple instructions to emit.
18903
18904 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
18905
18906         * config/m32r/m32r.h (CPP_SPEC): Define.
18907
18908 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
18909
18910         * c-decl.c (merge_decls): Kill different_binding_level and
18911         different_tu arguments; simplify throughout.
18912         (duplicate_decls): Likewise.
18913         (pushdecl, merge_translation_unit_decls): Update calls to
18914         duplicate_decls.
18915
18916 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18917
18918         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
18919         $(SYSTEM_H).
18920         (print-rtl1.o): Depend on $(SYSTEM_H).
18921
18922 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18923
18924         PR bootstrap/12730
18925         * configure.ac: Delete definition and subsitution of docdir.
18926         Add info, man, srcman and srcinfo to target hooks. Create doc/
18927         directory.
18928         * configure: Regenerate.
18929         * Makefile.in: Don't substitute docdir and delete all references
18930         throughout.
18931         (MAKEINFOFLAGS): Define.
18932         (stmp-docobjdir): Delete.
18933         (INFOFILES, MANFILES): Define.
18934         (info): Call lang.info, srcinfo and lang.srcinfo.
18935         (generated-manpages): Call lang.man, srcman and lang.srcman.
18936         (srcinfo, srcman): New rules to copy back files to source directory.
18937         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
18938         (install-man): Revamp rule.
18939         (clean): Update dvi directory.
18940         (distclean): Delete TAGS from front end directorys.
18941         (maintainer-clean): Delete all document files in source directory.
18942
18943         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
18944         (objc.srcman, objc.srcinfo): Likewise.
18945
18946 2004-01-20  Bruce Korb  <bkorb@gnu.org>
18947
18948         * fixinc/inclhack.def(math_exception): bypass only for glibc.
18949         (matherr_decl): rename & relocate as exception_structure.
18950         This fix must precede the math_exception fix.
18951
18952 2004-01-20  Roger Sayle  <roger@eyesopen.com>
18953
18954         * fold-const.c (fold_convert): Rename to fold_convert_const.
18955         (fold_convert_const): Change arguments to take a tree_code,
18956         a type and the operand/expression to be converted.  Return
18957         NULL_TREE if no simplification is possible.  Add support for
18958         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
18959         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
18960         Adjust call to fold_convert to match new fold_convert_const.
18961         Avoid modifying the tree passed to fold in-place.
18962
18963 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
18964
18965         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
18966         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
18967         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
18968
18969 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18970
18971         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
18972         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
18973         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
18974         (emit_move_sequence): Check scratch_reg first in various if statements.
18975         Extend source simplification to handle all 64-bit CONST_INTs.
18976         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
18977         frame size.
18978         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
18979         frame offset calculations.
18980         * pa.h (NEW_HP_ASSEMBLER): Add comment.
18981         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
18982         LEGITIMATE_64BIT_CONST_INT_P): Define.
18983         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
18984         any CONST_INT as legitimate during and after reload.
18985         (VAL_32_BITS_P, INT_32_BITS): Define.
18986         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
18987
18988 2004-01-20  Jan Hubicka  <jh@suse.cz>
18989
18990         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
18991         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
18992         containing hard regs are shared.
18993         (gen_hard_reg_clobber): New function.
18994         (hard_reg_clobbers): New array.
18995         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
18996         (copy_rtx): Do not copy clobbers containing hard regs.
18997         * rtl.h (gen_hard_reg_clobber): Declare.
18998
18999 2004-01-20  Jan Hubicka  <jh@suse.cz>
19000
19001         * varray.c:  Include hashtab.h
19002         (varray_descriptor): New structure.
19003         (hash_descriptor, eq_descriptor, varray_descriptor,
19004         print_statistics): New static functions
19005         (varray_init, varray_grow): Update statistics
19006         (dump_varray_statistics): New function.
19007         * varray.h (dump_varray_statistics): Declare.
19008         * toplev.c (finalize): Call it.
19009         * Makefile.in (varray.o): Add dependency.
19010
19011 2004-01-20  Jan Hubicka  <jh@suse.cz>
19012
19013         * cselib.c: Include alloc-pool.h
19014         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
19015         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
19016         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
19017         unchain_one_elt_loc_list_pool, unchain_one_value,
19018         new_cselib_val): Simplify using allocpool.
19019         (cselib_init): Initialize allocpools.
19020         (cselib_finish): Finish allocpools.
19021         * Makefile.in (cselib.o): Depend on alloc-pool.h
19022
19023 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
19024
19025         * config/mips/mips.c (mips_load_call_address): Make the call insn
19026         use $gp if it could be calling a lazy binding stub.
19027
19028 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
19029
19030         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
19031         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
19032         (TARGET_STRUCT_VALUE_RTX): Likewise.
19033         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
19034         (PROMOTE_FUNCTION_RETURN): Remove.
19035         (STRUCT_VALUE): Remove.
19036
19037 2004-01-20  Denis Chertykov  <denisc@overta.ru>
19038
19039         PR bootstrap/13735
19040         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
19041         register as pointer after reload.
19042
19043 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19044
19045         PR optimization/12440
19046         * loop.c: Include ggc.h.
19047         (loop_optimize): Run garbage collector between optimization of loops.
19048         * Makefile.in (loop.o): Add GGC_H dependency.
19049
19050 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
19051
19052         * gcc/config/rs6000/rs6000.c (function_arg) Handle
19053         vector register special in function without prototype.
19054         (function_arg_advance): Vector parameters get always
19055         GPRs allocated for the linux64 target.
19056
19057 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19058
19059         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
19060         not TARGET_M32RX_MASK.
19061
19062 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
19063
19064         PR target/13557
19065         * config/sparc/sparc.c (function_arg): Reorder the cases.
19066
19067 2004-01-19  Per Bothner  <per@bothner.com>
19068
19069         Move cpp_reader's line_maps field to a shared global.
19070         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
19071         and change the type to a pointer rather than a struct.
19072         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
19073         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
19074         Likewise.
19075         * cppfiles.c (validate_pch):  Likewise.
19076         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
19077         Likewise.
19078         * cpperror.c (print_location):  Likewise.
19079         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
19080         * cppinit.c (cpp_create_reader):  Handle new parameter.
19081         (cpp_destroy):  Don't free line_maps - that's no longer our job.
19082         * input.h (line_table):  New variable.
19083         * toplev.c (line_table):  Declare variable.
19084         (general_init):  Initialize line_table.
19085         * c-opts.c (c_common_init_options):  Pass line_table to
19086         cpp_create_reader.
19087         * fix-header.c (read_scan_file):  New local variable line_table.
19088         Initialize, and pass it to cpp_create_reader.
19089         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
19090         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
19091
19092 2004-01-19  Per Bothner  <per@bothner.com>
19093
19094         Implement a cache for linemap_lookup.
19095         * line-map.h (struct_line_maps):  Add cache field.
19096         * line-map.c (linemap_init):  Zero cache field.
19097         (linemap_add):  Set cache field to offset of newly allocated map.
19098         (linemap_lookup):  Use and set cache field.
19099
19100 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19101
19102         PR optimization/13567
19103         * cse.c (cse_basic_block): Call cse_insn with a non-null
19104         libcall_insn for the last SET insn of a no-confilict block.
19105
19106 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
19107
19108         * Makefile.in (target_noncanonical, program_transform_name): Use
19109         immediate define instead of deferred.
19110         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
19111         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
19112         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
19113         deferred backquote.
19114
19115 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
19116
19117         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
19118         true unconditionally.
19119         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
19120         Remove.
19121         (build_unary_op, build_modify_expr): Don't handle extended
19122         lvalues.
19123         (build_component_ref, build_conditional_expr): Call non_lvalue
19124         instead of pedantic_non_lvalue.
19125         (build_c_cast): Don't condition use of non_lvalue on pedantic.
19126         * fold-const.c (fold): Don't check pedantic directly for
19127         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
19128         passed to pedantic_non_lvalue.
19129         * doc/extend.texi: Remove documentation of extended lvalues.
19130
19131 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19132
19133         PR optimization/5263
19134         * simplify-rtx.c (associative_constant_p): Delete.
19135         (simplify_associative_operation): Rewrite to linearize terms, and
19136         attempt to simplify new term against both left and right subterms.
19137         (simplify_binary_operation): Call swap_commutative_operands_p on
19138         op0 and op1, not trueop0 and trueop1.  Move the initialization of
19139         trueop0 and trueop1 down to where first needed.
19140         (simplify_relational_operation): Likewise.
19141         * rtlanal.c (commutative_operand_precedence): Also order constant
19142         operands using avoid_constant_pool_reference.
19143
19144 2004-01-19  Richard Henderson  <rth@redhat.com>
19145
19146         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
19147         don't check memory mode.
19148         (unaligned_memory_operand): Likewise.
19149         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
19150         abort for op0 not MEM.
19151
19152         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
19153         is not a reg, copy to a scratch first.
19154         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
19155         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
19156         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
19157         (reload_inqi, reload_inhi): Fix mode of op0.
19158         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
19159         reload_outhi_help): Likewise.  Use define_insn_and_split.
19160
19161         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
19162         as well as $29 dead.
19163
19164 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
19165
19166         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
19167         "tls_object" for thread-local objects.
19168         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
19169         "#tls" for thread-local sections.
19170         * configure.ac (thread-local checks): Specify --fatal-warnings in
19171         every binutils-specific checks.  For sparc*-*-*, test whether the
19172         OS is Solaris and the tools are native and act accordingly.
19173         * configure: Rebuild.
19174
19175 2004-01-19  Jeff Law  <law@redhat.com>
19176
19177         * contrib.texi: Update Paolo Carlini's entry.  New entries for
19178         Jerry Quinn and Petur Runolfsson.
19179
19180 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19181
19182         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
19183         size, don't use the larger zero-extending loads.
19184
19185 2004-01-19  Richard Henderson  <rth@redhat.com>
19186
19187         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
19188         * alpha.md (UNSPEC_NT_LDA): Remove.
19189         (UNSPEC_CVTLQ, cvtlq): New.
19190         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
19191         (extendsidi2_fix): Remove.
19192         (extendsidi2 splitter): Use cvtlq.
19193         (extendsidi2 fp peepholes): Remove.
19194         (cvtql): Use SFmode instead of SImode.
19195         (fix_trunc?fsi): Update to match.
19196         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
19197         (movsi): Rename from movsi_nofix, remove f alternatives.
19198         (movsi_nt_vms): Similarly.
19199         (movsi_fix, movsi_nt_vms_fix): Remove.
19200         (nt_lda): Remove.
19201         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
19202
19203 2004-01-19  Jan Hubicka  <jh@suse.cz>
19204
19205         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
19206         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
19207         list.
19208         (cgraph_remove_unreachable_nodes): New function
19209         (cgraph_decide_inlining_of_small_function): Fix pasto.
19210         (cgraph_decide_inlining_incrementally): Fix pasto.
19211         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
19212
19213 2004-01-19  Steven Bosscher  <stevenb@suse.de>
19214
19215         * gengtype.c (header_file): Make it static.
19216         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
19217         * gengtype.h (header_file): No longer extern.
19218
19219 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19220
19221         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
19222         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
19223         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
19224
19225 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19226
19227         * stmt.c (HAVE_casesi): Define it not already defined.
19228         (HAVE_tablejump): Likewise.
19229         (expand_end_case_type): Resort to the binary tree method if
19230         neither casesi or tablejump is available.
19231
19232 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
19233
19234         * final.c (final_scan_insn): Make non-static again.
19235         * output.h (final_scan_insn): Re-add prototype.
19236         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
19237         to final_scan_insn call.
19238         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
19239         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
19240         * config/pa/pa.c (output_lbranch, output_call): Likewise.
19241         * config/sh/sh.c (print_slot): Likewise.
19242         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
19243         (output_sibcall, sparc_flat_function_epilogue): Likewise.
19244
19245 2004-01-18  Jan Hubicka  <jh@suse.cz>
19246
19247         * basic-block.h (try_redirect_by_replacing_jump): Declare.
19248         * cfgcleanup.c (try_optimize_cfg): Use it.
19249         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
19250         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
19251         Kill hack.
19252         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
19253
19254         Revert:
19255         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19256
19257                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19258                 even after reload, just don't remove the actual jump tables.
19259
19260 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19261
19262         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
19263
19264 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19265
19266         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
19267         the size of a pointer in bytes.
19268
19269 2004-01-18  Roger Sayle  <roger@eyesopen.com>
19270
19271         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
19272         live "next" variable, which could lead to an infinite loop.
19273
19274 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
19275
19276         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
19277         block.
19278
19279         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19280         Check for NULL in the chain and remove repeated code.
19281
19282 2004-01-18  Jan Hubicka  <jh@suse.cz>
19283
19284         * coverage.c (checksum_string): Rename to ...
19285         (coverage_checksum_string): ... this one, Use crc32_string; recognize
19286         names containing random number and zero the number out in order to get
19287         match.
19288
19289 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19290
19291         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
19292
19293 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19294
19295         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
19296         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
19297         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
19298         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
19299         doc/trouble.texi: Remove trailing whitespace.
19300
19301 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19302
19303         PR target/7618
19304         * config/mips/mips.c: Include cfglayout.h.
19305         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
19306         (mips_unspec_offset_high): Add temporary register argument.
19307         (mips_load_call_address): New function, split out from...
19308         (mips_expand_call): ...here.
19309         (mips_output_cplocal): New function.
19310         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
19311         (mips_emit_loadgp): New function, split out from...
19312         (mips_expand_prologue): ...here.
19313         (mips_output_mi_thunk): New function.
19314
19315 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
19316
19317         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
19318         mcpu32): Remove redundant checks for implied target predefines.
19319
19320 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
19321
19322         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19323         Return type is unsigned int not int.
19324         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19325         Likewise.
19326
19327 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19328
19329         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
19330         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
19331         "GNU/Linux" and "Microsoft Windows" terminology.
19332
19333 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19334
19335         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
19336         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
19337         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
19338         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
19339         @smallexample instead of @example.
19340
19341 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
19342
19343         * objc/objc-act.c (build_objc_method_call): Use target
19344         hooks instead of macros to determine if ..._stret
19345         dispatchers should be used (NeXT runtime only).
19346
19347 2004-01-17  Roger Sayle  <roger@eyesopen.com>
19348
19349         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
19350         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
19351
19352 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19353
19354         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
19355         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
19356         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
19357         macros.
19358         * reload1.c (emit_reload_insns): Use them.
19359         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
19360         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
19361         for NULL PATTERN.
19362
19363 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19364
19365         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
19366         (final_scan_insn): Update to take an additional SEEN argument.  Emit
19367         a line note after the prologue.  Make static.
19368         (line_note_exists): Remove.
19369         (final): Don't initialize line_note_exists.  Update call to
19370         final_scan_insn.
19371         * output.h (final_scan_insn): Remove prologue.
19372         * function.c (set_insn_locators): Update comment.
19373         (thread_prologue_and_epilogue_insns): Add a comment.
19374
19375 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
19376
19377         PR target/10781
19378         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19379         Prototype.
19380         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19381         New function.
19382         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
19383         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
19384         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
19385
19386 2004-01-17  Jan Hubicka  <jh@suse.cz>
19387
19388         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
19389         commit.
19390
19391         * toplev.c (HAVE_conditional_execution): Provide default.
19392         (rest_of_handle_reorder_blocks): For conditional_execution target
19393         update liveness once after all transformations
19394         (rest_of_compilation): Do crossjumping before ce3.
19395
19396 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
19397
19398         * alias.c (new_alias_set): Mark last_alias_set for PCH.
19399         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
19400         for PCH.
19401         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
19402         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
19403         (get_TOC_alias_set): Mark 'set' for PCH.
19404
19405 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19406
19407         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19408         even after reload, just don't remove the actual jump tables.
19409
19410 2004-01-17  J. Brobecker  <brobecker@gnat.com>
19411
19412         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
19413         Remove checks for is_ada() and TREE_UNSIGNED.
19414         (subrange_type_die): Emit a byte_size attribute if the subrange
19415         type size is different from the base type size.
19416         (modified_type_die): Replace call to is_ada_subrange_type() by
19417         call to is_subrange_type().
19418
19419 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
19420
19421         * config/sh/sh.c: Include ggc.h.
19422
19423 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19424
19425         * Makefile.in (MD5_H): New.
19426         (fold-const.o): Depend on md5.h.
19427         (dwarf2out.o): Likewise.
19428         (cppfiles.o): Likewise.
19429         * cppfiles.c: Include md5.h.
19430         (should_stack_file): Check against list read from PCH file.
19431         (struct pchf_data): New.
19432         (pchf): New variable.
19433         (struct pchf_adder_info): New.
19434         (pchf_adder): New.
19435         (pchf_save_compare): New.
19436         (_cpp_save_file_entries): New.
19437         (_cpp_read_file_entries): New.
19438         (struct pchf_compare_data): New.
19439         (pchf_compare): New.
19440         (check_file_against_entries): New.
19441         * cpphash.h (_cpp_save_file_entries): Prototype.
19442         (_cpp_read_file_entries): Prototype.
19443         * cpppch.c (cpp_write_pch_state): Write the list of headers.
19444         (cpp_read_state): Read the list of headers.
19445
19446 2004-01-17  Jan Hubicka  <jh@suse.cz>
19447
19448         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
19449         builtin_expect specially.
19450         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
19451         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
19452         * invoke.texi (max-inline-insns-single): Set to 100.
19453         (large-function-insns): Set to 3000.
19454
19455 2004-01-16  Eric Christopher  <echristo@redhat.com>
19456             Chandrakala Chavva <cchavva@redhat.com>
19457
19458         * cppcharset.c (one_iso88591_to_utf8): New function.
19459         (convert_iso88591_utf8): Ditto. Use.
19460         (conversion_tab): Use.
19461         (_cpp_input_to_utf8): New function.
19462         (_cpp_init_iconv_buffer): Ditto.
19463         (_cpp_close_iconv_buffer): Ditto.
19464         * cpphash.h: Prototype new functions.
19465         (cpp_buffer): Add input_cset_desc.
19466         * cppinit.c: Add input_charset default.
19467         * cpplib.c (cpp_push_buffer): Support init and
19468         close of iconv.
19469         * cpplib.h (cpp_options): Add input_charset.
19470
19471 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19472
19473         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
19474         * config/alpha/unicosmk.h: Remove a commented-out definition
19475         of ASM_OUTPUT_SECTION_NAME.
19476         * config/stormy16/stormy16.h: Likewise.
19477
19478 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19479
19480         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
19481         (alpha___extern_prefix_sys_stat): ... this.
19482         Apply to <sys/mount.h>, too.
19483         Tweak to match more variations.
19484         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
19485
19486         * fixinc/inclhack.def (alpha___extern_prefix,
19487         alpha___extern_prefix_standards): New hacks to obey
19488         __PRAGMA_EXTERN_PREFIX.
19489         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
19490         test.
19491         * fixinc/tests/base/standards.h: Likewise.
19492
19493         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
19494         variations.
19495         New testcase.
19496         * fixinc/tests/base/pthread.h: Handle it.
19497
19498         * fixincl/inclhack.def (bad_lval): Sort file list.
19499         Add many missing files up to Tru64 UNIX V5.1B.
19500         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
19501         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
19502         order.
19503
19504         * fixinc/fixincl.x: Regenerate.
19505
19506 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
19507
19508         * version.c (version_string): Change to 3.5.0.
19509         * doc/include/gcc-common.texi (version-GCC): Likewise.
19510
19511 2004-01-16  Jan Hubicka  <jh@suse.cz>
19512
19513         * i386.md (load_tp_di): Fix pasto.
19514
19515         PR opt/13608
19516         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
19517
19518         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
19519         pp_c_character_constant, pp_c_floating_constant,
19520         pp_c_additive_expression, pp_c_shift_expression,
19521         pp_c_equality_expression, pp_c_and_expression,
19522         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
19523         pp_c_logical_and_expression): Remove inline modifier.
19524         * dwarf2out.c (get_AT): Likewise.
19525         * et-forest.c (et_splay): Likewise.
19526         * ra.h (ra_alloc, ra_calloc): Likewise
19527
19528 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19529
19530         * config/frv/frv-protos.h: Fix comment formatting.
19531         * config/frv/frv.c: Likewise.
19532         * config/frv/frv.h: Likewise.
19533         * config/frv/frv.md: Likewise.
19534         * config/frv/frvbegin.c: Likewise.
19535         * config/frv/frvend.c: Likewise.
19536
19537 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19538
19539         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
19540         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
19541         LINKER_DOES_NOT_WORK_WITH_DWARF2.
19542         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
19543
19544 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
19545
19546         PR 11864
19547         * postreload.c (reload_cse_simplify_operands): Don't remove
19548         implicit extension from LOAD_EXTEND_OP.
19549
19550 2004-01-16  Jan Hubicka  <jh@suse.cz>
19551
19552         PR opt/11350
19553         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
19554         after reload.
19555         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
19556         rtl_try_redirect_by_replacing_branch): Likewise.
19557
19558 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
19559
19560         PR pch/13689
19561         * alias.c (struct alias_set_entry): Mark for GC.
19562         (alias_sets): Make static, mark for GC.
19563         (record_alias_subset): Use GC to allocate alias structures.
19564         * varray.c (element): Make generic varrays GCed.
19565
19566         PR pch/13361
19567         * c-typeck.c (constructor_asmspec): Delete.
19568         (struct initializer_stack): Delete field 'asmspec'.
19569         (start_init): Delete saving of asmspec.
19570         (finish_init): Don't update constructor_asmspec.
19571         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
19572         * stmt.c (expand_asm): Duplicate strings from tree.
19573         (expand_asm_operands): Likewise.
19574         * tree.c (tree_size): Update computation of size of STRING_CST.
19575         (make_node): Don't make STRING_CST nodes.
19576         (build_string): Allocate string with tree node.
19577         * tree.def (STRING_CST): Update comment.
19578         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
19579         (tree_string): Place contents of string in tree node.
19580         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
19581         from tree.
19582
19583         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
19584         altivec operands.
19585
19586 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19587
19588         * c-common.h: Fix comment formatting.
19589         * c-cppbuiltin.c: Likewise.
19590         * c-pragma.c: Likewise.
19591         * calls.c: Likewise.
19592         * collect2.c: Likewise.
19593         * cppcharset.c: Likewise.
19594         * cpptrad.c: Likewise.
19595         * dbxout.c: Likewise.
19596         * defaults.h: Likewise.
19597         * dwarf2out.c: Likewise.
19598         * fold-const.c: Likewise.
19599         * genautomata.c: Likewise.
19600         * genconditions.c: Likewise.
19601         * genflags.c: Likewise.
19602         * gengtype.c: Likewise.
19603         * integrate.c: Likewise.
19604         * loop.c: Likewise.
19605         * predict.c: Likewise.
19606         * sdbout.c: Likewise.
19607
19608 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
19609
19610         * config/ia64/ia64.md (*movti_internal): C output template
19611         extracted to ia64.c.
19612         (*movti_internal_reg): Delete.
19613         (reload_inti, reload_outti): Use the correct mode on operand 2
19614         in the first place, don't fix it up in the output template.
19615         (movtf, reload_ointf, reload_outtf): New expanders.
19616         (*movtf_internal): New define_insn_and_split.
19617         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
19618         make static; do not hand TFmode CONST_DOUBLEs to split_double.
19619         (ia64_split_tmode_move): New function, body mostly pulled
19620         from ia64.md:*movti_internal.
19621         (ia64_function_arg_words): New function, extracted common
19622         logic from ia64_function_arg et seq.
19623         (ia64_function_arg_offset): Likewise.  Handle correctly the
19624         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
19625         (ia64_function_arg, ia64_function_arg_partial_nregs)
19626         (ia64_function_arg_advance): Use ia64_function_arg_words and
19627         ia64_function_arg_offset.
19628         (ia64_function_value): TCmode does not go in float regs.
19629         (ia64_secondary_reload_class): Also handle TFmode.
19630         * config/ia64/ia64-protos.h: Remove prototype for
19631         ia64_split_timode; add prototype for ia64_split_tmode_move.
19632
19633 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19634
19635         * Makefile.in (MAINT): Make it an immediate assignment.
19636
19637 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19638
19639         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
19640
19641 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19642
19643         * config/h8300/coff.h: Replace Hitachi with Renesas.
19644         * config/h8300/elf.h: Likewise.
19645         * config/h8300/h8300-protos.h: Likewise.
19646         * config/h8300/h8300.c: Likewise.
19647         * config/h8300/h8300.h: Likewise.
19648         * config/h8300/h8300.md: Likewise.
19649         * config/h8300/lib1funcs.asm: Likewise.
19650
19651 2004-01-15  Andrew Pinski  <apinski@apple.com>
19652
19653         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
19654         around it.
19655
19656 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19657
19658         * config/h8300/h8300.c (h8300_return_in_memory): New.
19659         (TARGET_STRUCT_VALUE_RTX): Likewise.
19660         (TARGET_RETURN_IN_MEMORY): Likewise.
19661         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
19662         (RETURN_IN_MEMORY): Likewise.
19663
19664 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19665
19666         PR optimization/13375
19667         * gcse.c (handle_avail_expr): Just return if the source is not a
19668         single set.
19669
19670 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19671             Daniel Jacobowitz  <drow@mvista.com>
19672
19673         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
19674         (EQUIV): Define.
19675         (ARM_FUNC_ALIAS): New macro.
19676         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
19677         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
19678
19679 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19680
19681         PR optimization/12372
19682         * calls.c (expand_call): Add call_fusage data for stack arguments in
19683         constant calls.
19684
19685 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
19686
19687         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
19688         (rs6000_elf_declare_function_name): Formatting.
19689         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
19690
19691 2004-01-15  Jan Hubicka  <jh@suse.cz>
19692
19693         PR bootstrap/13692
19694         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
19695         previous patch.
19696
19697 2004-01-15  Richard Henderson  <rth@redhat.com>
19698
19699         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
19700         integer regs of the same call-savedness.
19701
19702 2004-01-15  Andreas Schwab  <schwab@suse.de>
19703
19704         PR bootstrap/13562
19705         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
19706         status for NOTB/NOTW/NEGW methods.
19707
19708 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19709
19710         * doc/invoke.texi: Update dump file names.  Fix a typo.
19711
19712 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19713
19714         * builtins.c (expand_builtin_va_end): Don't use
19715         EXPAND_BUILTIN_VA_END.
19716         * system.h (EXPAND_BUILTIN_VA_END): Poison.
19717         * config/d30v/d30v.h: Remove a commented-out definition of
19718         EXPAND_BUILTIN_VA_END.
19719         * config/stormy16/stormy16.h: Likewise.
19720
19721 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19722
19723         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
19724         * targhooks.c (default_struct_value_rtx): Don't use
19725         STRUCT_VALUE_INCOMING_REGNUM.
19726
19727 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19728
19729         PR bootstrap/12744
19730         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
19731         GENINSRC and not parsedir.  Define srcextra as a langhook.
19732         * configure: Regenerate.
19733         * Makefile.in: Suppress default .l.c rule.  Don't substitute
19734         parsedir and delete all references throughout.  Conditionally define
19735         rule for srcextra dependent on GENINSRC.
19736         (stmp-docobjdir): Delete.
19737         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
19738         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
19739         and gengtype-yacc.h back to source directory.
19740         (maintainer-clean): Delete all parse files in source directory.
19741         (distclean): Delete generated files.
19742
19743         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
19744         (objc-parse.c, objc-parse.y): Don't use parsedir.
19745         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
19746         directory if requested.
19747         (po-generated): Don't use parsedir.
19748         (objc.maintainer-clean): Delete above files from source directory.
19749
19750 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19751
19752         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
19753
19754 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19755
19756         * doc/tm.texi: Replace RETURN_IN_MEMORY with
19757         TARGET_RETURN_IN_MEMORY.
19758
19759 2004-01-15  Jan Hubicka  <jh@suse.cz>
19760
19761         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
19762         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
19763         functions accepting SSE arguments
19764         (function_arg): Warn only when asked to warn.
19765         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
19766
19767 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
19768
19769         * c-parse.in (stmts_and_decls): Make label at end of compound
19770         statement a hard error.
19771
19772 2004-01-14  Jan Hubicka  <jh@suse.cz>
19773
19774         * cgraph.c (create_edge): Use local.redefined_extern_inline.
19775         * cgraph.h (cgraph_local_info): Sort fields by size; add
19776         redefined_extern_inline
19777         (cgraph_global_info): Sort fields by size.
19778         (cgraph_node): Likewise.
19779         * cgraphunit.c (cgraph_finalize_function): Se
19780         local.redefined_extern_inline on redefinition.
19781         (cgraph_analyze_function): Use it; fix formating.
19782
19783 2004-01-14  Jan Hubicka  <jh@suse.cz>
19784
19785         PR c++/10776
19786         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
19787         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
19788         bitmaps
19789         (cache_size): New variable
19790         (add_dependence): Update use; canonize early memory locations
19791         (sched_analyze_1): Likewise.
19792         (sched_analyze_2): Likewise.
19793         (init_dependency_caches): Initialize bitmaps.
19794         (free_dependency_caches): Free bitmaps
19795
19796 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19797
19798         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
19799         targetm.calls.strict_argument_naming().
19800         * target.h: Likewise.
19801
19802 2004-01-14  Richard Henderson  <rth@redhat.com>
19803
19804         PR debug/13231
19805         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
19806         instructions.
19807
19808 2004-01-14  Richard Henderson  <rth@redhat.com>
19809
19810         PR c++/12491
19811         * except.c (struct eh_region): Add u.fixup.resolved.
19812         (resolve_one_fixup_region): Split out from ...
19813         (resolve_fixup_regions): ... here.
19814
19815 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19816
19817         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
19818
19819 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19820
19821         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
19822         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
19823         (STRUCT_VALUE): Remove.
19824
19825 2004-01-14  Steven Bosscher  <stevenb@suse.de>
19826
19827         * system.h: Poison PROMOTED_MODE
19828         * integrate.c (expand_inline_function): Don't mention the
19829         PROMOTED_MODE.
19830         * loop.c (update_giv_derive): Same.
19831         * tree.h (DECL_RTL): Same.
19832
19833 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
19834
19835         PR target/9365
19836         * sh.c (gen_block_redirect): Add special handling of RETURN.
19837         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
19838         far branch target (i.e. it's a return).
19839
19840 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19841
19842         * regrename.c (find_oldest_value_reg): Fix a warning.
19843
19844 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19845
19846         PR bootstrap/12527
19847         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
19848         Move linux-gas.h and linux-elf.h before aout.h.
19849         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
19850         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
19851
19852 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19853
19854         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
19855         (CONST_INT, VOIDmode, ...).
19856
19857 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19858
19859         * regrename.c (find_oldest_value_reg): If the replacement uses
19860         multiple hard registers, check that all of them are in CLASS.
19861
19862 2004-01-14  Jan Hubicka  <jh@suse.cz>
19863
19864         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
19865         impossible.
19866
19867 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
19868
19869         * Makefile.in: Define MAINT from --enable-maintainer-mode.
19870
19871 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19872
19873         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
19874         Calculate always vrsave_mask if TARGET_ALTIVEC.
19875         (rs6000_emit_prologue): Emit code for vrsave
19876         only if TARGET_ALTIVEC_VRSAVE.
19877         (rs6000_emit_epilogue): Likewise.
19878
19879 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
19880
19881         * config/sparc/sparc.md (tie_add32): Fix pasto.
19882         (tie_add64): Likewise.
19883
19884 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19885
19886         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
19887
19888 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19889
19890         * config/iq2000/iq2000-protos.h: Fix comment formatting.
19891         * config/iq2000/iq2000.c: Likewise.
19892         * config/iq2000/iq2000.md: Likewise.
19893
19894 2004-01-14  J. Brobecker  <brobecker@gnat.com>
19895
19896         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
19897         (subrange_type_die): Add handle for nameless subrange types.
19898
19899 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19900
19901         * config/h8300/h8300-protos.h: Replace do_movsi with
19902         h8300_expand_movsi.
19903         * config/h8300/h8300.c (do_movsi): Change to
19904         h8300_expand_movsi.
19905         * config/h8300/h8300.md (movsi): Replace do_movsi with
19906         h8300_expand_movsi.
19907         (movsf): Likewise.
19908
19909 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19910
19911         * config/h8300/h8300.c (dosize): Change to
19912         h8300_emit_stack_adjustment.  Update callers.
19913
19914 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19915
19916         * config/h8300/h8300.md (movstrictqi): Add an alternative with
19917         the source being post_inc.  Tighten the predicate for the
19918         destination to register_operand.
19919         (movstricthi): Likewise.
19920
19921 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19922
19923         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
19924         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
19925         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
19926
19927 2004-01-14  Jan Hubicka  <jh@suse.cz>
19928
19929         Partial fix PR c++/12850
19930         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
19931         at zero nest level.
19932
19933 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
19934
19935         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
19936         pseudo-register.
19937
19938 2004-01-13  Devang Patel <dpatel@apple.com
19939
19940         PR debug/7078
19941         * dbxout.c (dbxout_symbol_name): Emit mangled names for
19942         NAMESPACE_DECL memebers.
19943
19944 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
19945
19946         PR c++/12709
19947         * c-common.c (finish_fname_decls): Use the chain only if the
19948         tree is an expr_stmt.
19949
19950 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19951
19952         * rtl.def: Add comment about new option in automata_option.
19953
19954         * genautomata.c (PROGRESS_OPTION): New macro.
19955         (progress_flag): New global variable.
19956         (gen_automata_option): Process `progress'.
19957         (transform_insn_regexps, check_unit_distributions_to_automata,
19958         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
19959         expand_automata, write_automata): Print about the progress only if
19960         progress_flag.  Remove fflush.
19961         (initiate_automaton_gen): Process command line flag `-progress'.
19962
19963         * doc/md.texi: Describe the new option.
19964
19965 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19966
19967         * cfg.c (dump_bb): Dump entry edges.
19968
19969 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
19970
19971         * arm.c (thumb_legitimate_address_p): Only allow constant pool
19972         references from SImode.
19973         * arm.md (thumb_movhi_insn): Don't allow minipool references.
19974
19975 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19976
19977         * system.h (TEXT_SECTION): Poison.
19978         * varasm.c (text_section): Don't use TEXT_SECTION.
19979         * config/sh/sh.c (sh_file_start): Fix a comment typo.
19980         * doc/tm.texi (TEXT_SECTION): Remove.
19981
19982 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
19983
19984         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
19985
19986 2004-01-12  James E Wilson  <wilson@specifixinc.com>
19987
19988         * unwind-libunwind.c: Delete.
19989
19990 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19991
19992         PR 13656
19993         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
19994         oldtype is set, set *newtypep or *oldtypep too.  Do not set
19995         them at the very end.
19996         (validate_proto_after_old_defn): Restructure for comprehensibility;
19997         make error messages clearer.
19998
19999 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
20000
20001         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
20002         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
20003         * varray.c: No need to prototype error.
20004         (varray_check_failed): Wrap long string onto two lines.
20005         (varray_underflow): New function.
20006
20007 2004-01-13  Steven Bosscher  <stevenb@suse.de>
20008
20009         PR c++/13376
20010         * function.h (struct function): Kill `name' field.
20011         (current_function_name): Make it an extern function.
20012         * function.c (current_function_name): New function.
20013         * graph.c: Update all uses of current_function_name.
20014         * gcse.c: Likewise.
20015         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
20016         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
20017         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
20018         instead of a strcmp with "main".
20019
20020 2004-01-13  Jan Hubicka  <jh@suse.cz>
20021
20022         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
20023
20024         * cgraphunit.c (cgraph_optimize_function):  Always do
20025         optimize_inline_calls when there is always_inline callee.
20026         (cgraph_decide_inlining): Fix formating.
20027         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
20028         functions.
20029         (expand_call_inline): Likewise.
20030         * toplev.h (sorry): Fix prototype.
20031
20032 2004-01-12  Roger Sayle  <roger@eyesopen.com>
20033
20034         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
20035         conditional jumps that drop through to unconditional jumps or the
20036         end of the sequence.
20037
20038 2004-01-13  Jan Hubicka  <jh@suse.cz>
20039
20040         * alias.c (new_alias_set): Construct the alias_set varray.
20041         (init_alias_once): Don't do it here.
20042
20043 2004-01-12  Marc Espie <espie@openbsd.org>
20044
20045         * system.h: handle YYBYACC like YYBISON.
20046
20047 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
20048
20049         PR target/10847
20050         * config.gcc: No longer includes conflicting header sparc/sol2.h when
20051         building on sparc64-*-openbsd*.
20052
20053 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
20054
20055         PR debug/13539
20056         * dbxout.c (dbxout_type): Protected inheritance is not
20057         private but protected.
20058
20059 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
20060
20061         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
20062
20063 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
20064
20065         PR optimization/12508.
20066         * combine.c (try_combine): Remove a dead set in a parallel
20067         even if its destination is a subreg.
20068
20069         Revert:
20070         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
20071         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
20072         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
20073
20074 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
20075
20076         * real.c: Update copyright date.
20077         * emit-rtl.c: Likewise.
20078         * rtl.h: Likewise.
20079         * dwarf2out.c: Likewise.
20080         * config/rs6000/darwin-ldouble.c: Likewise.
20081         * config/rs6000/rs6000.md: Likewise.
20082
20083 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
20084
20085         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
20086         TFmode to SImode libfuncs.
20087
20088 2004-01-12  Roger Sayle  <roger@eyesopen.com>
20089
20090         PR middle-end/11397
20091         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
20092
20093 2004-01-12  Jan Hubicka  <jh@suse.cz>
20094
20095         PR opt/12826
20096         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
20097         stored.
20098
20099         PR opt/12863
20100         * cfgcleanup.c (label_is_jump_target_p): Move to...
20101         * rtlanal.c (label_is_jump_target_p): ... here.
20102         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
20103         edges unified with branch edges.
20104
20105 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
20106
20107         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
20108         high word of an integral CONST_DOUBLE.
20109
20110 2004-01-12  Paul Brook  <paul@codesourcery.com>
20111
20112         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
20113
20114 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
20115
20116         PR target/13585
20117         * sh-protos.h (check_use_sfunc_addr): Declare.
20118         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
20119         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
20120
20121 2004-01-12  Jan Hubicka  <jh@suse.cz>
20122
20123         * alias.c:  Invlude varray.h
20124         (alias_sets): Turn into varray.
20125         (get_alias_set_entry): Use VARRAY; mark inline.
20126         (mems_in_disjoint_alias_sets_p): Mark inline.
20127         (record_alias_subset): Use varray.
20128         (init_alias_once): Initialize varray.
20129         (new_alias_set): Grow array.
20130         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
20131
20132 2004-01-12  Jan Hubicka  <jh@suse.cz>
20133
20134         Partial fix for PR opt/10776 II
20135         * cselib.c: Include params.h
20136         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
20137         locations.
20138         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
20139         * Makefile.in (cselib.o): Depend on params.h
20140
20141 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
20142
20143         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
20144         simplify_unary_operation if the operand has a known mode.
20145
20146 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
20147
20148         PR target/13534
20149         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
20150         predicate to handle 'ld' conform addresses.
20151         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
20152         contraint.
20153         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
20154         are memory contraints.
20155         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
20156         New prototype.
20157         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
20158         Change 'o' to 'Y' constraint.
20159         (*movdf_softfloat64): Ditto.
20160
20161 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
20162
20163         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
20164         brace-enclosed syntax in all C output statements.
20165
20166 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
20167
20168         PR target/13401
20169         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
20170         Objective-C language type value is 14.
20171
20172 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
20173
20174         PR c/12148
20175         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
20176         `int' in a number of places to make sure we always have a SImode
20177         and not a HImode.  Add a 'L' suffix to a number of constants.
20178
20179 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20180
20181         * pa.c: Don't include obstack.h.
20182
20183         * pa.md: Correct constraint in pattern for loading PIC label address.
20184
20185 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20186
20187         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
20188          before defining.
20189
20190 2004-01-11  Steven Bosscher  <stevenb@suse.de>
20191
20192         PR fortran/9972
20193         * toplev.c (rest_of_handle_inline): Also consider functions
20194         for deferral if the language is GNU F77.
20195
20196 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
20197
20198         * c-decl.c (diagnose_arglist_conflict): Add missing space to
20199         diagnostic messages.
20200
20201 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
20202
20203         PR middle-end/13392
20204         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
20205         to drop through label.  Don't fall back to SCC even when conditional
20206         jump has not been found.
20207
20208 2004-01-11  Jan Hubicka  <jh@suse.cz>
20209
20210         * invoke.texi: Fix syntax error in previous patch.
20211
20212         Partial fix for PR opt/10776
20213         * Makefile.in (reload.o): Include param.h
20214         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
20215         * reload.c: Include params.h.
20216         (find_equiv_reg): Work limiting check.
20217         * invoke.texi: Document.
20218
20219 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20220
20221         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
20222         out-of-bounds accesses to string constants.  Simplify mips16
20223         case accordingly.
20224
20225 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20226
20227         PR optimization/13469
20228         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
20229         reload_cse_regs (-fnon-call-exceptions only).
20230
20231 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
20232
20233         * config/mcore/lib1.asm: Fix comment formatting.
20234         * config/mcore/mcore-elf.h: Likewise.
20235         * config/mcore/mcore.c: Likewise.
20236         * config/mcore/mcore.h: Likewise.
20237         * config/mcore/mcore.md: Likewise.
20238
20239 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20240
20241         * c-decl.c (duplicate_decls): Break apart into...
20242         (diagnose_arglist_conflict, validate_proto_after_old_defn)
20243         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
20244         ... these new functions.  Restructure for comprehensibility.
20245         Remove various archaic special cases.  Always report the
20246         location of the previous declaration when a diagnostic is issued.
20247         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
20248         (match_builtin_function_types): Delete unnecessary forward declaration.
20249
20250 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20251
20252         * genautomata.c (make_automaton, NDFA_to_DFA):
20253         Print progress bars with '.' characters instead of '*'.
20254         (build_automaton): Change notes to match.
20255
20256 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20257
20258         * config/m32r/m32r.md: Use define_constants for unspec and
20259         unspec_volatile.
20260
20261 2004-01-10  Jan Hubicka  <jh@suse.cz>
20262
20263         PR opt/11635
20264         * expr.c (expand_expr_real):  More curefully expand union casts.
20265
20266 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20267
20268         * config/m32r/m32r.md (flush_icache): Use 1 for
20269         unspec_volatile.
20270
20271 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
20272             James E Wilson  <wilson@specifixinc.com>
20273
20274         PR debug/12860
20275         * dbxout.c (dbxout_symbol): Remove initialization of
20276         current_sym_code, current_sym_value, and current_sym_addr.
20277         (dbxout_symbol_location): Same.
20278         (dbxout_prepare_symbol): Zero current_sym_code,
20279         current_sym_value, and current_sym_addr.
20280
20281 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
20282
20283         * tree.c (get_unwidened): Reorder conditions so that the null pointer
20284         check is done first.
20285
20286 2004-01-09  Eric Christopher  <echristo@redhat.com>
20287
20288         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
20289         if we're running mark_constant_function.
20290
20291 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
20292
20293         PR target/12561
20294         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
20295
20296 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
20297
20298         PR debug/11231
20299         * dbxout.c (dbxout_type_fields): Return if any item is
20300         error_mark_node or the type is error_mark_node.
20301
20302 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
20303
20304         * config/rs6000/darwin-ldouble.c: Add big comment explaining
20305         exactly what is expected as a 'long double'.
20306         (_xlqadd): When a value to be returned is representable as a
20307         'double', just return it directly, do not construct it using a union.
20308         Also, correct final fixup.
20309         (_xlqmul): Likewise.
20310         (_xlqdiv): Likewise.
20311         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
20312
20313         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
20314
20315 2004-01-09  Richard Henderson  <rth@redhat.com>
20316
20317         * recog.c (constrain_operands): Validate mem operands.
20318
20319 2004-01-09   James E Wilson  <wilson@specifixinc.com>
20320
20321         * gcc.c (init_spec): Remove -lunwind from shared case.
20322         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
20323
20324 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
20325
20326         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
20327         * configure: Regenerate
20328
20329 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
20330
20331         PR c/11234
20332         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
20333         between function and object pointers.
20334         (digest_init): When comparing a pointer to function type to the
20335         target type, only apply TREE_TYPE once to the pointer to function
20336         type.
20337         * except.c (for_each_eh_label_1): Treat data as a pointer to a
20338         function pointer rather than casting it to a function pointer.
20339         (for_each_eh_label): Update caller.
20340         * recog.h (struct insn_data): Use a struct or union for output.
20341         * genoutput.c (output_insn_data): Update.
20342         * final.c (get_insn_template): Update.
20343
20344 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20345
20346         * expr.h (expand_expr): Make it a macro, not a function.
20347         (expand_expr_real): New function.
20348         * expr.c (store_expr): Adjust logic for deciding whether or not to
20349         copy the value returned by expand_expr.
20350         (expand_expr): Rename to ...
20351         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
20352         calls to language hooks.
20353         * c-common.h (c_expand_expr): Adjust prototype.
20354         * c-common.c (c_expand_expr): Add alt_rtl parameter.
20355         * langhooks-def.h (lhd_expand_expr): Change prototype.
20356         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
20357         * langhooks.h (lang_hooks): Change type of expand_expr.
20358         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
20359         (last_expr_alt_rtl): Likewise.
20360         (expand_expr_stmt_value): Set last_expr_alt_rtl.
20361         (clear_last_expr): Clear it.
20362         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
20363         (expand_end_bindings): Save and restor last_expr_alt_rtl.
20364         * tree.def (RTL_EXPR): Give it an additional operand.
20365         * tree.h (RTL_EXPR_ALT_RTL): New macro.
20366
20367 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20368
20369         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
20370         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
20371
20372 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20373
20374         PR target/13380.
20375         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
20376         or (ne:SI (reg:CC 17) (const_int 0)).
20377         Be specific about modes wherever possible.
20378
20379 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20380
20381         * config/m32r/m32r.c (m32r_expand_block_move): Call
20382         gen_movestrsi_internal with two more arguments.
20383         (m32r_output_block_move): Adjust operand numbers.
20384         Properly update the source and destination pointers.
20385         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
20386         'r+'.  Change the set detinations to match_operand.
20387
20388 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20389
20390         * final.c (FIRST_INSN_ADDRESS): Remove.
20391         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
20392         * system.h (FIRST_INSN_ADDRESS): Poison.
20393         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
20394         * config/m32r/m32r-protos.h: Remove the prototype for
20395         m32r_first_insn_address.
20396         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
20397         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
20398         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
20399
20400 2004-01-09  J. Brobecker  <brobecker@gnat.com>
20401
20402         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
20403         we just created.
20404         (is_ada_subrange_type): DIEs for enumeration subtypes should be
20405         emitted as subrange types too.
20406         (subrange_type_die): Add handling of enumeration subtypes.
20407
20408 2004-01-08  Richard Henderson  <rth@redhat.com>
20409
20410         PR opt/12441
20411         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
20412         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
20413         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
20414         (ix86_address_cost): Be prepared for SUBREGed registers.
20415         (legitimate_address_p): Accept SUBREGed registers.
20416
20417 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
20418
20419         * Makefile.in: Rename configure.in to configure.ac
20420         * doc/sourcebuild.texi: Likewise.
20421         * configure: Regenerate.
20422         * config.in: Regenerate.
20423
20424 2004-01-08  Stuart Hastings  <stuart@apple.com>
20425
20426         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
20427
20428 2004-01-08  Jan Hubicka  <jh@suse.cz>
20429
20430         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
20431
20432 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
20433
20434         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
20435         (UNSPEC_FIX_TRUNC_TF): New constant.
20436         (movtf_internal): Make splitter active only when insn is active.
20437         (extenddftf2): Rewrite to properly load zero into low part.
20438         (extenddftf2_internal): New.
20439         (extendsftf2): Rewrite.
20440         (truncdftf2): Correct length.
20441         (floatditf2): Delete.
20442         (fix_trunc_helper): New.
20443         (fix_trunctfdi2): Use fix_trunc_helper.
20444         (fix_trunctfsi2): Likewise.fix_trunc
20445         (fix_trunctfsi2_internal): New.
20446
20447         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
20448         addresses are legitimate on Darwin even when flag_pic.
20449         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
20450         non-offsettable addresses for loads of TFmode constants.
20451
20452 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20453
20454         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
20455         variables in the appropriate bss section.
20456
20457 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
20458
20459         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
20460         target_flags has MASK_POWERPC64 when -m64.
20461         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
20462         to 620, 630, power3, power4 and rs64a entries.
20463         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
20464
20465 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
20466
20467         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
20468         floating-point constants.
20469
20470 2004-01-08  J. Brobecker  <brobecker@gnat.com>
20471
20472         * dwarf2out.c (subrange_type_die): Add context_die parameter.
20473         Create the subrange_type DIE using the given context DIE.
20474         (modified_type_die): Update call to subrange_type_die.
20475
20476 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
20477
20478         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
20479         Add multiple-include guard.
20480
20481 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
20482
20483         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
20484         all vector constant loadable by vsplt*.
20485         (output_vec_const_move): Likewise.
20486
20487 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20488
20489         PR c/6024
20490         * c-typeck.c (comptypes): Only treat enumerated types in the same
20491         translation unit as compatible with each other when they are the
20492         same type.
20493         * doc/extend.texi: Update.
20494
20495 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20496
20497         PR c/12165
20498         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
20499         array type from the array element type.
20500
20501 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
20502
20503         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
20504         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
20505         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
20506         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
20507         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
20508
20509 2004-01-06  Eric Christopher  <echristo@redhat.com>
20510
20511         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
20512         (DWARF2_DEBUGGING_INFO): Define.
20513         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
20514         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
20515         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
20516         for irix as.
20517         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
20518         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
20519         * config/mips/iris5gas.h: Ditto.
20520         (DBX_DEBUGGING_INFO): Remove.
20521         (DWARF2_DEBUGGING_INFO): Ditto.
20522         (MIPS_DEBUGGING_INFO): Ditto.
20523         (PREFERRED_DEBUGGING_TYPE): Ditto.
20524         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
20525         (PREFERRED_DEBUGGING_TYPE): Ditto.
20526         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
20527         * config/mips/elf64.h: Ditto.
20528
20529 2004-01-06  Jan Hubicka  <jh@suse.cz>
20530
20531         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
20532         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
20533
20534 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
20535
20536         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
20537         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
20538         * config/rs6000/darwin-ldouble.c: New.
20539
20540         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
20541         for constants.
20542         (constant_subword): Delete.
20543         * rtl.h (constant_subword): Delete prototype.
20544         (immed_double_const): Is not in varasm.c.
20545         * simplify-rtx.c (simplify_immed_subreg): New.
20546         (simplify_subreg): Use simplify_immed_subreg.
20547
20548         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
20549         than trying to generate RTL directly.
20550         (fix_trunctfsi2): Use expand_fix rather than trying to generate
20551         RTL directly.
20552
20553         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
20554
20555 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
20556
20557         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
20558         function into a separate macro.
20559         (read_only_data_section): Add void argument.
20560         (private_data_section): Same.
20561         (read_only_private_data_section): Same.
20562         (toc_section): Same.
20563
20564 2004-01-06  Jan Hubicka  <jh@suse.cz>
20565
20566         * invoke.texi:  Remove typo in last change.
20567
20568         PR target/10301
20569         * config.gcc: Accept opteron and athlon-64 as variants
20570         of k8.
20571         * i386.c (override_options): Likewise.
20572         * invoke.texi (i386 -mtune): Expand documentation.
20573
20574 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20575
20576         * alias.c: Fix comment typos.
20577         * builtins.c: Likewise.
20578         * cfg.c: Likewise.
20579         * df.c: Likewise.
20580         * dominance.c: Likewise.
20581         * dwarf2out.c: Likewise.
20582         * emit-rtl.c: Likewise.
20583         * expr.c: Likewise.
20584         * final.c: Likewise.
20585         * fold-const.c: Likewise.
20586         * gcse.c: Likewise.
20587         * genattrtab.c: Likewise.
20588         * genrecog.c: Likewise.
20589         * gensupport.c: Likewise.
20590         * ggc-zone.c: Likewise.
20591         * integrate.c: Likewise.
20592         * local-alloc.c: Likewise.
20593         * loop.c: Likewise.
20594         * recog.c: Likewise.
20595         * regmove.c: Likewise.
20596         * reg-stack.c: Likewise.
20597         * reorg.c: Likewise.
20598         * rtlanal.c: Likewise.
20599         * rtl.h: Likewise.
20600         * sched-ebb.c: Likewise.
20601         * simplify-rtx.c: Likewise.
20602         * toplev.c: Likewise.
20603         * varasm.c: Likewise.
20604
20605 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20606
20607         * doc/install.texi: Fix typos.
20608         * doc/invoke.texi: Likewise.
20609         * doc/md.texi: Likewise.
20610
20611 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20612
20613         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
20614
20615 2004-01-06  Jan Hubicka  <jh@suse.cz>
20616
20617         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
20618         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
20619         of MMX_REGPARM.
20620         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
20621         add MMX_REGPARM.
20622         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
20623         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
20624         (MMX_REGPARM_MAX): Similarly for -mmmx.
20625
20626 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20627
20628         * config/sh/linux.h: Fix comment formatting.
20629         * config/sh/netbsd-elf.h: Likewise.
20630         * config/sh/sh.c: Likewise.
20631         * config/sh/sh.h: Likewise.
20632         * config/sh/vxworks.h: Likewise.
20633
20634 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20635
20636         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
20637         * toplev.c (output_file_directive): Don't use
20638         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
20639
20640 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
20641
20642         * toplev.c: Fix broken checkin of 2003-12-30.
20643
20644 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
20645
20646         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
20647         (USING_MMAP): We don't support non-mmap.
20648         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
20649         large objects.
20650         (struct page_entry): Remove bytes_free.
20651         (struct page_table_chain): Remove.
20652         (struct globals): Remove page_table member.
20653         (loookup_page_table_entry): Function deleted.
20654         (set_page_table_entry): Ditto.
20655         (ggc_allocated_p): No longer need page table lookups.
20656         (ggc_marked_p): Ditto.
20657         (alloc_small_page): Don't care about bytes_free anymore.
20658         (alloc_large_page): Round up size.
20659         (ggc_alloc_zone_1): Mark large objects as such, and calculate
20660         their size the new way.
20661         Remove page table lookups and setting.
20662         (ggc_get_size): Calculate large object size the new way.
20663         (sweep_pages): Redo to account for fact that we no longer have
20664         bytes_free.
20665         (ggc_collect): No longer need to reincrement bytes_free.
20666         (ggc_pch_alloc_object): Handle new large objects properly.
20667         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
20668
20669 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20670
20671         * doc/invoke.texi: Remove a page break.
20672
20673 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20674
20675         * config/avr/avr.c (avr_output_function_prologue): Remove an
20676         extra pair of curly braces.
20677
20678 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20679
20680         * config/mn10300/mn10300.c: Fix comment formatting.
20681         * config/mn10300/mn10300.h: Likewise.
20682
20683 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20684
20685         * tree.h: Update documentation on nothrow_flag.
20686         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
20687         types.
20688
20689 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20690
20691         * doc/invoke.texi: Remove traces of dead ports.
20692
20693 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20694
20695         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
20696         option.
20697
20698 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20699
20700         PR target/12945
20701         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
20702         counter labels.
20703         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
20704         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
20705         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
20706         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
20707         (mips_symbol_insns): Don't trust the local/global classification.
20708         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
20709         (override_options): Make -mabicalls -fno-unit-at-a-time imply
20710         -mno-explicit-relocs.
20711         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
20712         between local and global symbols.
20713
20714 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20715
20716         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
20717         (mips_preferred_reload_class): Declare.
20718         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
20719         (EXTRA_CONSTRAINT): Update accordingly.
20720         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
20721         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
20722         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
20723         mips_dangerous_for_la25_p.
20724         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
20725         if mips_dangerous_for_la25_p.
20726
20727 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
20728
20729         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
20730         warning.
20731
20732 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
20733
20734         * configure.ac: Use AC_PROG_CPP_WERROR.
20735         * configure: Regenerate.
20736
20737 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
20738
20739         * .cvsignore: Add autom4te.cache.
20740
20741 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
20742
20743         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
20744         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
20745         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
20746         then architecture options, then ABI options.  General rewording.
20747
20748 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
20749
20750         PR c/3414
20751         * doc/extend.texi: Clarify definition of malloc attribute.
20752
20753 2004-01-04  Jan Hubicka  <jh@suse.cz>
20754
20755         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
20756         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
20757         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
20758         (cgraph_inline_p): Add extra argument reason.
20759         * cgraphunit.c: Minor formating fixes.
20760         cgraph_first_inlined_callee): New functions.
20761         (record_call_1): Record builtins too.
20762         (cgraph_analyze_function): Update inline_failed messages.
20763         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
20764         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
20765         (cgraph_check_inline_limits): Likewise; Add argument reason.
20766         (cgraph_set_inline_failed): New static function.
20767         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
20768         reasons.
20769         (cgraph_inline_p): Add new argument reason.
20770         * tree-inline.c (expand_call_inline):  Update warning.
20771
20772 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
20773
20774         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
20775         with modern equivalents.
20776         * configure: Regenerate.
20777
20778         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
20779         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
20780         * configure: Regenerate.
20781
20782         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
20783
20784         * configure.in: Rename to configure.ac.
20785         * configure.ac: Renamed from configure.in; make minimum necessary
20786         changes for autoconf 2.5x.
20787         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
20788         * configure: Regenerate with autoconf 2.57.
20789
20790 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
20791
20792         * config/mips/linux.h: Fix comment formatting.
20793         * config/mips/mips.c: Likewise.
20794         * config/mips/mips.h: Likewise.
20795         * config/mips/mips.md: Likewise.
20796         * config/mips/netbsd.h: Likewise.
20797         * config/mips/windiss.h: Likewise.
20798
20799 2004-01-02  Richard Henderson  <rth@redhat.com>
20800
20801         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
20802         for sse and 387; add suppression for mmx.
20803
20804 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
20805
20806         * loop.c (loop_optimize): Free all loops_info's mems.
20807
20808         * c-typeck.c (finish_init): Free spelling_base before
20809         setting it again.
20810
20811         * cfgloop.c (flow_loops_find): Always free the sbitmap
20812         headers.
20813
20814         * predict.c (estimate_probability): Free bbs after being
20815         done with it.
20816
20817 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20818
20819         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
20820         const_8bit_operand and call_address_operand.
20821
20822 2004-01-02  Jan Hubicka  <jh@suse.cz>
20823
20824         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
20825         when there is nothing to inline but warnings are requested.
20826         (cgraph_decide_inlining):  Fix memory leak.
20827
20828 2004-01-02  Jan Hubicka  <jh@suse.cz>
20829
20830         * expr.c (store_constructor):  Fix pasto in previous patch.
20831
20832 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20833
20834         * config/i386/cygming.h: Fix comment formatting.
20835         * config/i386/djgpp.h: Likewise.
20836         * config/i386/gthr-win32.c: Likewise.
20837         * config/i386/i386-interix.h: Likewise.
20838         * config/i386/i386.c: Likewise.
20839         * config/i386/i386.h: Likewise.
20840         * config/i386/openbsd.h: Likewise.
20841         * config/i386/winnt.c: Likewise.
20842         * config/i386/xm-mingw32.h: Likewise.
20843
20844 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
20845
20846         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
20847         copyright and last modification dates.
20848
20849 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
20850
20851         * doc/install.texi (Specific): Mention x86_64.
20852
20853 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20854
20855         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
20856         Call force_operand on plus_constant result.
20857
20858 2004-01-01  Jan Hubicka  <jh@suse.cz>
20859
20860         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
20861         * expr.c (store_constructor): Use vec_init pattern.
20862         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
20863         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
20864         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
20865         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
20866         New patterns.
20867         (sse2_unpc?pd): Fix pattern.
20868         (sse2_movlpd): Kill.
20869         (sse2_movsd): Deal with movlpd too.
20870         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
20871         (ix86_expand_vector_init): New.
20872         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
20873         * md.texi (vec_set, vec_extract): Document
20874
20875 2003-12-31  Jan Hubicka  <jh@suse.cz>
20876
20877         PR opt/13473
20878         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
20879         ASM input operands
20880
20881         PR opt/12617
20882         * toplev.c (dump_file_index): Reorder ce3 and bbro.
20883         (dump_file): Likewise.
20884         (rest_of_compilation): Likewise.
20885
20886         PR debug/13367
20887         * cgraph.c (cgraph_function_possibly_inlined):  Even with
20888         flag_really_no_inline we inline always_inline functions.
20889         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
20890         for non-always_inline functions when there is flag_really_no_inline.
20891         (cgraph_decide_inlining): Limit work done when not inlining.
20892         (cgraph_decide_inlining_incrementally): Likewise.
20893         (cgraph_optimize_function): Check whether something got inlined.
20894         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
20895         extern inline functions when not inlining.
20896
20897         * opts.c (decode_options):  Disable crossjumping at -O1
20898         * invoke.texi (-O1): Document change.
20899
20900 See ChangeLog.10 for earlier changes.