OSDN Git Service

* tree-ssa-loop-ch.c: New file.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2
3         * tree-ssa-loop-ch.c: New file.
4         * Makefile.in (tree-ssa-loop-ch.o): Add.
5         (tree-into-ssa.o): Add GGC_H dependency.
6         * tree-cfg.c (tree_duplicate_bb): Copy virtual arguments.
7         * tree-flow.h (rewrite_into_ssa): Declaration changed.
8         (rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name):
9         Declare.
10         * tree-into-ssa.c: Include ggc.h.
11         (struct def_blocks_d): Add phi_blocks field.
12         (struct mark_def_sites_global_data): Add names_to_rename field.
13         (struct ssa_name_info): New.
14         (compute_global_livein): Export.
15         (set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block,
16         insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for,
17         register_new_def, get_reaching_def, def_blocks_free,
18         get_def_blocks_for, rewrite_into_ssa): Modified to work with
19         rewrite_ssa_into_ssa.
20         (get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def,
21         set_current_def, ssa_mark_def_sites_initialize_block,
22         ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name,
23         ssa_register_new_def, ssa_rewrite_initialize_block,
24         ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block,
25         ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New
26         functions.
27         (pass_build_ssa): Call rewrite_all_into_ssa.
28         * tree-optimize.c (execute_todo, execute_one_pass,
29         tree_rest_of_compilation): Allocate vars_to_rename only once.
30         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter
31         to rewrite_into_ssa.
32         * tree-ssa-loop.c (should_duplicate_loop_header_p,
33         mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p,
34         copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c.
35         Use rewrite_ssa_into_ssa.
36         * tree-ssa-operands.c (copy_virtual_operands): New function.
37         * tree-ssa-operands.h (copy_virtual_operands): Declare.
38         * tree.h (struct tree_ssa_name): Add aux field.
39         (SSA_NAME_AUX): New macro to access it.
40
41 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
42
43         * prefix.c (lookup_key): Cast buffer to LPBYTE.
44
45 2004-06-30  Per Bothner  <per@bothner.com>
46
47         Conditionally compile support for --enable-mapped_location.
48         * input.h:  #include line-map.h for source_location typedef.
49         (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location,
50         LOCATION_FILE, LOCATION_LINE):  New macros and functions.
51         (expanded_location, source_locus):  New typedefs.
52         (push_srcloc):  Change parameter list if USE_MAPPED_LOCATION.
53         * rtl.def (NOTE, ASM_OPERANDS):  Modify specifcation, if
54         USE_MAPPED_LOCATION.
55         * rtl.h (NOTE_DELETED_LABEL_NAME):  New macro.
56         (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED):
57         New conditional macros.
58         (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE):  Replace
59         by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION.
60         * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION,
61         EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO,
62         DECL_IS_BUILTIN):  New macros, most depending on USE_MAPPED__LOCATION.
63         (tree_exp):  Change type of locus to use new source_locus typedef.
64         * tree.c (build1_stat):  Use SET_EXPR_LOCATION.
65         (annotate_with_locus, annotate_with_file_line):  Conditionalize.
66         (expand_location):  New function.
67         * toplev.c (unknown_location):  New static, when USE_MAPPED_LOCATION.
68         (push_srcloc, pop_loc):  Adjust parameter handling.
69         (process_options):  Don't set input_filename by itself.
70         (lang_dependent_init):  Save, set input_location to <built-in>.
71         (warn_deprecated_use):  Use expand_location.
72
73         * basic-block.h (struct edge_def):  Use new source_locus typedef.
74         * c-common.c (fname_decl):  Update save/clear/store of input_location.
75         (c_do_switch_warnings):  Update for USE_MAPPED_LOCATION case.
76         * c-decl.c:  Likewise.
77         * c-dump.c (dump_stmt):  Likewise.
78         * c-gimplify.c (c-gimplify.c):  Generalize using SET_EXPR_LOCATION.
79         * c-lex.c (cb_line_change):  If USE_MAPPED_LOCATION use token's src_loc
80         to set input_location direction, rather than using linemap_lookup.
81         (fe_file_change, cb_def_pragma):  Again use source_location directly.
82         * c-opts.c (saved_lineno):  Remove static variable.
83         (c_common_post_options, c_common_init):  Don't bothner to save,
84         clear and restore input_Location - now handled by lang_dependent_init.
85         * function.c (init_function_start):  Use new DECL_IS_BUILTIN macro.
86         * xcoffout.c (xcoff_assign_fundamental_type_number):  Likewise.
87         * tree-mudflap.c (mf_file_function_line_tree):  Take a location_t
88         rather than a pointer to one.  Use expand_location.
89         (mf_varname_tree):  Use expand_location.
90         * tree-dump.c:  Use expand_location on DECL_SOURCE_LOCATION.
91         * coverage.c:  Likewise.
92         * print-tree.c:  Likewise.
93         * c-aux-info.c (gen_aux_info_record):  Likewise.
94         * c-parse.in:  Use SET_EXPR_LOCATION macro.
95         * gimple-low.c:  Likewise.
96         * tree-mudflap.c:  Likewise.
97         * gimplify.c:  Likewise.  Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
98         * c-ppoutput.c:  Use new source_location typedef instead of fileline.
99         * c-semantics.c:  Use new macros.
100         * c-typeck.c:  Likewise.
101         * cfgexpand.c:  Handle USE_MAPPED_LOCATION case for function_end_locus.
102         * cfglayout.c (insn_locators_initialize):  Const cleanup.  New macros.
103         * cfgrtl.c (delete_insn):  Use new NOTE_DELETED_LABEL_NAME macro.
104         * print-rtl.c (print_rtx):  Likewise.
105         * emit-rtl.c:  Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION.
106         * combine.c:  Use new SET_INSN_DELETED macro.
107         * flow.c:  Likewise.
108         * haifa-sched.c:  Likewise.
109         * ifcvt.c:  Likewise.
110         * recog.c:  Likewise.
111         * reload1.c:  Likewise.
112         * diagnostic.c:  Use expand_location macro.
113         * pretty-print.c (pp_base_format_text):  Likewise.
114         * profile.c:  Likewise.
115         * dwarf2out.c:  Likewise.  Also use expand_location, DECL_IS_BUILTIN.
116         * dwarf2out.c (dwarf2out_decl:  Use BUILTINS_LOCATION.
117         * emit-rtl.c (emit_line_note):  Simplify if USE_MAPPED_LOCATION.
118         (force_next_line_note, insn_emit):  Handle USE_MAPPED_LOCATION case.
119         * final.c (final):  Likewise.
120         * haifa-sched.c:  Likewise.
121         * integrate.c:  Likewise.
122         * jump.c:  Likewise.
123         * rtl-error.c:  Likewise.
124         * stmt.c (check_seenlabel):  Likewise.
125         * tree-pretty-print.c:  Likewise.
126         * gengtype-lex.l:  Temporary kludge to avoid duplicate typedef.
127         * gengtype.c:  Update for now typdefs in input.h.  More kludges.
128         * modulo-sched.c (sms_schedule):  Use NOTE_EXPANDED_LOCATION macro.
129         * ra-debug.c (ra_print_rtl):  Likewise.
130         * sched-rgn.c:  Likewise.
131         * sched-vis.c:  Likewise.
132         * rtl.h (gen_rtx_ASM_OPERANDS):  Redefine if USE_MAPPED_LOCATION.
133         * stmt.c (expand_asm_operands):  Adjust calls to gen_rtx_ASM_OPERANDS.
134         * tree-cfg.c:  Use new macros and typedefs.
135         * tree-flow-inline.h:  Likewise.
136
137 2004-06-30  Richard Sandiford  <rsandifo@redhat.com>
138             Eric Christopher  <echristo@redhat.com>
139
140         * config/mips/3000.md: Improve description.
141
142 2004-06-30  Paul Brook  <paul@codesourcery.com>
143
144         * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
145         cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.
146
147 2004-06-30  Sebastian Pop  <pop@cri.ensmp.fr>
148
149         * Makefile.in (OBJS-common): Add tree-chrec.o.
150         (tree-chrec.o): New rule.
151         (GTFILES): Add tree-chrec.h.
152         * gengtype.c (open_base_files): Add tree-chrec.h.
153         * tree-chrec.c: New file.
154         * tree-chrec.h: New file.
155         * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes.
156
157 2004-06-30  Roger Sayle  <roger@eyesopen.com>
158
159         * combine.c: Include "output.h" to define dump_file.
160         (uid_insn_cost, last_insn_cost): New global variables.
161         (combine_insn_cost): New function to estimate cost of an insn.
162         (combine_validate_cost): New function to determine whether a
163         try_combine replacement sequence is cheaper than the original.
164         (combine_instructions): Allocate and populate uid_insn_cost
165         array at the start of the combine pass, and deallocate it after.
166         (try_combine): Check combine_validate_cost to determine whether
167         a "recombination" should be rejected as being more expensive.
168         * Makefile.in (combine.o): Add dependency upon output.h.
169
170 2004-06-30  Roger Sayle  <roger@eyesopen.com>
171
172         * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle
173         subtractions identically to additions, always COSTS_N_INSNS (1).
174
175 2004-06-30  J"orn Rennecke <joern.rennecke@superh.com>
176
177         * expmed.c (expand_smod_pow2): Fix sign of mask.
178
179 2004-06-29  Diego Novillo  <dnovillo@redhat.com>
180
181         * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant
182         to check for constants.
183         (set_remove): Likewise.
184         (value_replace_in_set): Likewise.
185         (find_leader): Likewise.
186         * tree-vn.c (set_value_handle): Likewise.
187         (vn_lookup): Likewise.
188         (vn_lookup_or_add): Likewise.
189
190 2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
191
192         RTL prologue/epilogue for SPARC
193         * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
194         (sparc_skip_caller_unimp): Likewise.
195         (load_pic_register): Likewise.
196         (leaf_return_peephole_ok): Likewise.
197         (compute_frame_size): Rename into sparc_compute_frame_size.
198         (sparc_expand_prologue): New prototype.
199         (sparc_expand_epilogue): Likewise.
200         (output_return): Likewise.
201         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
202         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
203         compute_frame_size.  Move comment up.
204         (DELAY_SLOTS_FOR_EPILOGUE): Delete.
205         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
206         (EPILOGUE_USES): Return true for %g1 if the function uses EH return.
207         * config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
208         (type attribute): Add 'return' and 'savew'.
209         (eligible_for_return_delay): New attribute.
210         (return): New delay_slot.
211         (sibcall_epilogue): Call sparc_expand_epilogue.
212         (prologue): Likewise.  Move up.
213         (save_register_window): New expander.
214         (save_register_windowsi): New pattern.
215         (save_register_windowdi): Likewise.
216         (epilogue): New expander.
217         (return_internal): New pattern.
218         (Return peepholes): Delete.
219         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
220         (sparc_emitting_epilogue): Delete.
221         (sparc_skip_caller_unimp): Likewise.
222         (sparc_sr_alias_set): New global variable.
223         (frame_base_name): Delete.
224         (frame_base_reg): New global variable.
225         (sparc_override_options): Get new alias set for save/restore.
226         (leaf_return_peephole_ok): Delete.
227         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
228         Factor out code into eligible_for_restore_insn_delay.
229         (eligible_for_restore_insn_delay): New function extraced from above.
230         Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
231         (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
232         Factor out code into eligible_for_restore_insn_delay.
233         (load_pic_register): Make static.  Remove check.
234         (save_regs): Delete.
235         (restore_regs): Likewise.
236         (compute_frame_size): Rename into sparc_compute_frame_size.
237         Rename leaf_function into leaf_function_p.
238         (build_big_number): Delete.
239         (save_or_restore_regs): New function.
240         (emit_save_regs): Likewise.
241         (emit_restore_regs): Likewise.
242         (emit_stack_pointer_increment ): Likewise.
243         (emit_stack_pointer_decrement): Likewise.
244         (sparc_expand_prologue): Likewise.
245         (sparc_function_prologue): Rename into sparc_asm_function_prologue.
246         Remove all code to emit instructions.
247         (sparc_expand_epilogue): New function.
248         (sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
249         Remove all code to emit instructions.
250         (output_restore): New function.
251         (output_return): Likewise.
252         (output_sibcall): Factor out code into output_restore.
253         (print_operand): Adjust for frame_base_reg.
254         * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
255         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
256         (TARGET_INITIALIZER): Add it.
257         * passes.c (rest_of_compilation): Set the conditional predicate
258         'current_function_uses_only_leaf_regs' before sched2.  If target
259         has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
260         before sched2.
261         * reorg.c (return_insn_p): New predicate.
262         (find_end_label): Use it.
263         (relax_delay_slots): Do not thread an unconditional jump that points
264         to the end return label.
265         * doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
266         domain of 'current_function_uses_only_leaf_regs'.
267         (Stack and Calling) <Function Entry>: Document new target hook
268         TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
269
270 2004-06-30  Jakub Jelinek  <jakub@redhat.com>
271
272         * simplify-rtx.c (simplify_binary_operation): Simplify
273         ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
274         N has at least all bits in M set as well.
275
276         PR tree-optimization/15310
277         * expr.c (expand_assignment): Optimize += or -= on a bit field in
278         most significant bits.
279
280 2004-06-30  Steven Bosscher  <stevenb@suse.de>
281
282         * config/c4x/c4x.md: Fix comment.
283
284 2004-06-30  Akos Kiss  <akiss@inf.u-szeged.hu>
285
286         * arm.md (cond_return_inverted): Add "length" attribute.
287
288 2004-06-29  Per Bothner  <per@bothner.com>
289
290         * config/i386/winnt.c (i386_pe_encode_section_info):  Smash rtlname's
291         XSTR in place, so we don't lose SYMBOL_REF_DECL info.
292
293 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
294
295         * config/ia64/hpux.h: Target does too support thread-local storage.
296
297 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
298
299         * combine.c (distribute_notes): Don't look at global_regs for
300         pseudos.
301
302 2004-06-29  Richard Henderson  <rth@redhat.com>
303
304         * gimplify.c (gimplify_modify_expr_rhs): Move immediately before
305         gimplify_modify_expr.
306         (gimplify_init_constructor): Likewise.  Gimplify the null
307         CONSTRUCTOR assignment.
308         (gimplify_modify_expr_to_memcpy): New.
309         (gimplify_modify_expr_to_memset): New.
310         (gimplify_modify_expr): Use them.
311
312 2004-06-29  Roman Zippel <zippel@linux-m68k.org>
313
314         * web.c (union_defs): use all defs of an instruction to create a
315         union with a read/write use
316
317 2004-06-29  Richard Henderson  <rth@redhat.com>
318
319         PR middle-end/16216
320         * builtins.c (gimplify_va_arg_expr): Check for valist being
321         an error_mark_node.
322
323 2004-06-29  Jakub Jelinek  <jakub@redhat.com>
324
325         PR target/16195
326         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
327         r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC.
328         (first_reg_to_save): Pretend call_used_regs[30] is 0 if
329         TARGET_TOC && TARGET_MINIMAL_TOC.
330         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
331
332 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
333
334         Fix gcc.dg/builtin-apply2.c failures:
335         * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
336         * sh.c (extra_push): Delete.
337         (sh_expand_prologue): Don't do extra stack adjustment for
338         current_function_pretend_args_size if it comes from varargs setup.
339         Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
340         (sh_expand_epilogue): Don't use extra_push.
341         (sh_setup_incoming_varargs): Set pretend_arg_size when necessary.
342
343 2004-06-29  Roger Sayle  <roger@eyesopen.com>
344
345         * expmed.c (expand_smod_pow2): Provide alternate implementations
346         that avoid conditional jumps, and choose between them based upon
347         the target's rtx_costs.
348
349 2004-06-29  Andrew Pinski  <apinski@apple.com>
350
351         * tree-sra.c: Include expr.h for definition of MOVE_RATIO.
352         * Makefile.in (tree-sra.c): Update dependencies.
353
354 2004-06-29  Richard Henderson  <rth@redhat.com>
355
356         * tree-sra.c: Rewrite from scratch.  Handle nested aggregates.
357
358 2004-06-29  Nathan Sidwell  <nathan@codesourcery.com>
359
360         * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when
361         size_t is bigger than int.
362
363 2004-06-29  Paul Brook  <paul@codesourcery.com>
364
365         * target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
366         TARGET_CXX_COOKIE_HAS_SIZE): Define.
367         (TARGET_CXX): Use them.
368         * target.h (struct gcc_target): Add cxx.get_cookie_size and
369         cxx.cookie_has_size.
370         * targhooks.c (default_cxx_get_cookie_size): New fucntion.
371         * targhooks.h (default_cxx_get_cookie_size): Add prototype.
372         * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
373         TARGET_CXX_COOKIE_HAS_SIZE): Define.
374         (arm_get_cookie_size, arm_cookie_has_size): New functions.
375         * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
376         * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
377         TARGET_CXX_COOKIE_HAS_SIZE.
378
379 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
380
381         * cfglayout.c (fixup_reorder_chain): Don't do anything for
382         e_fall->dest == EXIT_BLOCK_PTR.
383
384 2004-06-28  Richard Henderson  <rth@redhat.com>
385
386         * tree-cfg.c (verify_stmt): Add last_in_block parameter.  Verify
387         that eh stmts can throw.
388         (verify_stmts): Update verify_stmt call.
389         (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
390         * tree-eh.c (remove_stmt_from_eh_region): New.
391         (lower_eh_constructs): Fix throw_stmt_table delete routine.
392         (tree_could_trap_p): Match may_trap_p.
393         (maybe_clean_eh_stmt): New.
394         * tree-flow.h: Update decls.
395         * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
396         (substitute_and_fold): Clean eh edges.
397         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
398         empty basic blocks.
399         * tree-ssa-dom.c (need_eh_cleanup): New.
400         (tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
401         (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
402
403 2004-06-29  Alan Modra  <amodra@bigpond.net.au>
404
405         * function.c (assign_parms): Don't abort with zero size stack
406         parm failing the PARM_BOUNDARY check.
407
408 2004-06-28  Diego Novillo  <dnovillo@redhat.com>
409
410         * common.opt (ftree-fre): New flag.
411         * flags.h (flag_tree_fre): Declare.
412         * opts.c (decode_options): Set.
413         * timevar.def (TV_TREE_FRE): Define.
414         * tree-flow-inline.h (may_propagate_copy): Re-arrange for
415         readability.  Handle destinations that are not SSA_NAMEs.
416         * tree-flow.h (struct ptr_info_def): Move from tree.h
417         (cprop_into_stmt, cprop_into_successor_phis): Remove.
418         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
419         vuse_optype parameter.
420         * tree-pass.h (pass_fre): Declare.
421         * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
422         (cprop_into_stmt): Likewise.
423         (cprop_into_successor_phis): Likewise.
424         * tree-ssa-dom.c (eliminate_redundant_computations): Fix
425         argument ordering in call to may_propagate_copy.
426         * tree-ssa-pre.c (is_undefined_value): Assume hard registers
427         to be always defined.
428         (add_to_sets): New local function.
429         (create_value_expr_from): New local function.
430         (compute_avail): Call them.
431         (eliminate): Don't ignore statements with virtual operands.
432         (init_pre): New local function.
433         (fini_pre): New local function.
434         (execute_pre): Call them.
435         Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
436         (do_pre): New function.
437         (do_fre): New function.
438         (gate_fre): New function.
439         (pass_fre): Declare.
440         * tree-ssa.c (init_tree_ssa): Don't call vn_init.
441         (delete_tree_ssa): Don't call vn_delete.
442         * tree-vn.c (val_expr_pair_d): Add documentation.
443         (vn_compute): Add VUSES argument to incorporate in computing
444         hash values.  Update all callers.
445         (expressions_equal_p): Call operand_equal_p with
446         OEP_PURE_SAME.
447         (vn_add): Add VUSES argument.  Update all callers.
448         (vn_lookup): Likewise.
449         (vn_lookup_or_add): Likewise.
450         * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
451
452 2004-06-28  Steven Bosscher  <stevenb@suse.de>
453
454         * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
455         m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
456         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
457         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
458         * config/m32r/m32r.md: Rewrite the pipeline description as a DFA.
459
460 2004-06-28  Richard Henderson  <rth@redhat.com>
461
462         * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
463         * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
464         IMAGPART_EXPR.
465         * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
466         IMAGPART_EXPR explicitly.
467         * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
468         and IMAGPART_EXPR specially.
469         * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
470
471 2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>
472
473         * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
474
475 2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>
476
477         * builtins.def (execl, execlp, execle, execv, execvp, execve,
478         fork): Change to DEF_EXT_LIB_BUILTIN.
479
480 2004-06-28  Roger Sayle  <roger@eyesopen.com>
481
482         * expmed.c (expand_smod_pow2): New function to expand signed
483         remainder by a constant power of 2, such as "x % 16".
484         (expand_divmod): Call new expand_smod_pow2 when appropriate.
485         Minor corrections to comments, e.g. wrapping long lines.
486
487 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
488
489         * Makefile.in (vec.o): Fix dependencies.
490
491 2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>
492
493         * Makefile.in: Fix parallel make dependency problem on vec.o.
494
495 2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
496
497         PR target/14041
498         * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
499
500 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
501
502         * tree.h (tree_check_failed): Make varadic.
503         (tree_not_check_failed): New prototype.
504         (tree_check2_failed, tree_check3_failed,
505         tree_check4_failed, tree_check5_failed): Remove.
506         (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
507         TREE_CHECK5): Adjust.
508         (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
509         TREE_NOT_CHECK5): New.
510         (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
511         TREE_RTL_OPERAND_CHECK): Adjust.
512         * tree.c (tree_check_failed): Make varadic.
513         (tree_not_check_failed): New.
514         (tree_check2_failed, tree_check3_failed,
515         tree_check4_failed, tree_check5_failed): Remove.
516
517 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
518
519         * combine.c (can_combine_p): Do not prevent building insns that use
520         and clobber the same fixed hard register.
521         (reg_dead_at_p): Likewise.
522
523 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
524
525         * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
526         changed.
527         (is_sra_candidate_complex_ref): New function.
528         (scalarize_modify_expr): Call it and check for LHS also.
529
530         * tree-pretty-print.c (dump_function_declaration): New.
531         (dump_generic_node, case FUNCTION_TYPE): Call it.
532         (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
533         (dump_generic_node, case DECL_EXPR): New case.
534         (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
535         (print_declaration): Handle type and function declarations.
536
537         * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
538         (convert_nonlocal_reference, convert_local_reference): Properly
539         convert nest of handled component references.
540
541 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
542
543         * vec.h, vec.c: New, type safe vector API.
544         * Makefile.in (OBJS-common): Add vec.o.
545         (vec.o): New target.
546         (gengtype-lex.o): Depend on vec.h.
547
548 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
549
550         * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
551         parameter.  Use it instead of ARG00 to produce the result.
552
553 2004-06-28  Alexandre Oliva  <aoliva@redhat.com>
554
555         * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
556         * config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
557         index is legitimate, compared with code moved from...
558         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
559         (REG_STRICT): Define, according to REG_OK_STRICT.
560         (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
561         REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
562         argument.
563         (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
564         REGNO_STRICT_OK_FOR_INDEX_P): New.
565         (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
566         REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
567         RTX_OK_FOR_BASE_P): Use them.
568
569 2004-06-28  Ben Elliston  <bje@au.ibm.com>
570
571         * doc/cfg.texi (Basic Blocks): Define dominators.
572
573 2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
574
575         PR c++/16205
576         * c-common.c (warn_for_collisions_1): Warn for only decls which
577         have a name.
578
579         PR c++/15145
580         * c.opt (Wsequence-point): Enable for C++ and ObjC++.
581
582         PR c/14963
583         * c-decl.c (start_decl): Check for null types.
584
585 2004-06-27  David Edelsohn  <edelsohn@gnu.org>
586
587         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
588         Accept TOC addresses.
589
590 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
591
592         * config/s390/s390-protos.h (s390_load_got): Update prototype.
593         * config/s390/s390.c (struct machine_function): Add member base_reg.
594         (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
595         (s390_split_branches): Annotate late pool references.
596         (annotate_constant_pool_refs): New function.
597         (find_constant_pool_ref): Work on annotated pool references.
598         (replace_constant_pool_ref): Likewise.  Use explicit base.
599         (replace_ltrel_base): Use explicit base.
600         (s390_mainpool_start): Reflect main_pool pattern change.
601         (s390_mainpool_finish): Use base register from main_pool.
602         Update calls to replace_ltrel_base and replace_constant_pool_ref.
603         (s390_chunkify_start): Use base_reg from struct machine_function.
604         (s390_chunkify_finish): Remove base_reg argument.  Update calls
605         to replace_ltrel_base and replace_constant_pool_ref.
606         (s390_reorg): Don't decide upon base register.  Update calls.
607         (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
608         but return sequence instead.
609         (s390_emit_prologue): Decide upon base register to use.  Annotate
610         all literal pool references.  Adapt to main_pool pattern change.
611         Update s390_load_got call; move MAYBE_DEAD handling here.
612         (s390_emit_epilogue): Annotate late literal pool references.
613         Remove barrier before register restore instruction.
614         * config/s390/s390.md (UNSPEC_LTREF): New constant.
615         ("builtin_setjmp_receiver"): Update s390_load_got call.
616         ("main_pool"): Explicitly reference base register.
617
618 2004-06-27  Roger Sayle  <roger@eyesopen.com>
619
620         * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
621         <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
622         <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
623         <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
624         <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
625         <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
626         TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
627         is a constant.
628
629 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
630
631         * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
632         * c-common.def (DECL_STMT): Remove.
633         * c-common.h (DECL_STMT_DECL): Deleted.
634         (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
635         (c_safe_from_p, c_walk_subtrees): Deleted.
636         * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
637         * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
638         * c-gimplify.c (gimplify_decl_stmt): Deleted.
639         (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
640         and gimplify_and_add.
641         (c_gimplify_expr, case DECL_EXPR): New case.
642         (c_gimplify_expr, case DECL_STMT): Deleted.
643         * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
644         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
645         * expr.c (safe_from_p, case 's'): New case.
646         * gimplify.c (gimplify_decl_expr): New function.
647         (gimplify_expr, case DECL_EXPR): New case.
648         * tree-inline.c (walk_tree): Walk into all fields of a type and
649         decl only if they are in a DECL_EXPR.
650         (mark_local_for_remap_r): Minor code cleanup.
651         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
652         * tree.c (has_cleanups, case DECL_EXPR): New case.
653         * tree.def (DECL_EXPR): New code.
654         * tree.h (DECL_EXPR_DECL): New macro.
655
656         * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
657
658 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
659
660         PR 13334
661         * doc/install.texi: Document non-standard CFLAGS and bootstrap
662         failures and warnings.
663
664 2004-06-26  Andrew Haley  <aph@redhat.com>
665
666         * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
667         TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
668         * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
669         * tree.h (TREE_THIS_NOTRAP): New.
670
671 2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
672
673         * genattrtab.c (write_test_expr): Put a unsigned cast before
674         the first operand for GEU, GTU, LEU and LTU.
675
676 2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
677
678         * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
679         gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
680         tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
681         tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
682         tree-tailcall.c: Fix comment typos.  Follow spelling
683         conventions.
684
685 2004-06-25  Eric Christopher  <echristo@redhat.com>
686
687         * config/mips/mips.md: Add back scheduling exclusion info.
688
689 2004-06-25  Roger Sayle  <roger@eyesopen.com>
690
691         * ifcvt.c (seq_contains_jump): Delete function.
692         (end_ifcvt_sequence): Replace call to seq_contains_jump with an
693         inline test for a jump instruction in the existing "insn" loop.
694         (block_fallthru): Document function.
695
696 2004-06-25  Philip Blundell  <philb@gnu.org>
697
698         PR wrong-code/15089
699         * loop.c (scan_loop): Do not move user-specified register
700         assignments.
701
702 2004-06-25  DJ Delorie  <dj@redhat.com>
703
704         * c-common.h (warn_cast_qual, warn_missing_format_attribute,
705         warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
706         warn_missing_braces, warn_sign_compare, warn_long_long,
707         warn_redundant_decls, warn_float_equal, warn_char_subscripts,
708         warn_conversion, warn_format_y2k, warn_format_extra_args,
709         warn_format_zero_length, warn_format_nonliteral,
710         warn_format_security, mesg_implicit_function_declaration,
711         warn_bad_function_cast, warn_traditional,
712         warn_declaration_after_statement, warn_strict_prototypes,
713         warn_missing_declarations, warn_nested_externs,
714         warn_sequence_point, warn_init_self, warn_div_by_zero,
715         warn_implicit_int, warn_nonnull, warn_old_style_definition,
716         warn_selector, warn_undeclared_selector, warn_protocol,
717         warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
718         warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
719         warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
720         warn_old_style_cast, warn_nontemplate_friend,
721         warn_deprecated): Remove explicit declarations.
722         * c-common.c: Likewise, remove explicit definitions.
723         * c-opts.c: Likewise, remove explicit assignments.
724         * c.opts: Likewise, add implicit declare/define/assign.
725
726 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
727
728         * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
729         (build_addr_expr_with_type): Deleted.
730         (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
731         (gimplify_compound_lval): Make two passes over reference nest.
732
733         * tree-nested.c (build_addr): Merge real/imagpart with
734         handled_component_p.
735         (convert_nonlocal_reference, convert_local_reference): Process extra
736         args to COMPONENT_REF and ARRAY_REF.
737         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
738         lower bound and field offset being constant.
739
740 2004-06-25  Mark Mitchell  <mark@codesourcery.com>
741
742         PR wrong-code/16129
743         * alias.c (get_alias_set): Adjust setting of
744         DECL_POINTER_ALIAS_SET for pointers to aggregates.
745
746 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
747
748         * tree-inline.c (remap_type): Arrange to have just one pointer type
749         for each type, mode, and 'can alias' value.
750         (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
751         (estimate_num_insns_1): Minor code reformatting.
752         (inline_forbidden_p_1): Likewise; add; missing return statement.
753
754 2004-06-25  Roger Sayle  <roger@eyesopen.com>
755
756         PR middle-end/15825
757         * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
758         Use get_isns and end_sequence instead of accepting a seq argument.
759         Scan the instruction sequence for unrecognizable or jump insns.
760         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
761         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
762         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
763         noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
764
765 2004-06-24  Jeff Law  <law@redhat.com>
766
767         * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
768         after gimplifying the innermost component.
769
770 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
771
772         PR target/16176
773         * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
774         register for the destination of the lwl or ldl.
775
776 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
777
778         * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
779         handled_component_p handling.
780         * tree-gimple.c (get_base_address): Likewise and fix typo that
781         caused both recursion and looping.
782
783         * tree-cfg.c (verify_expr): Add macro CHECK_OK.
784         Properly test for nest of handled_components in LHS context.
785
786 2004-06-25  Devang Patel  <dpatel@apple.com>
787
788         * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
789
790 2004-06-25  Paul Brook  <paul@codesourcery.com>
791
792         * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
793         TARGET_CXX): Define.
794         (TARGET_INITIALIZER): Use TARGET_CXX.
795         * target.h (struct gcc_target): Add struct cxx.
796         * targhooks.h (default_cxx_guard_type): Add prototype.
797         * targhooks.c (default_cxx_guard_type): New function.
798         * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
799         Define.
800         (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
801         * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
802         TARGET_CXX_GUARD_MASK_BIT.
803
804 2004-06-25  Devang Patel  <dpatel@apple.com>
805
806         * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
807         * config/i386/darwin.h (CC1_SPEC): Same.
808
809 2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
810
811         * dbxout.h: Add include guards
812
813 2004-06-25  Paul Brook  <paul@codesourcery.com>
814
815         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
816
817 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
818
819         * arm.c (arm_arch4t): New variable.
820         (arm_override_options): Initialize it.  If compiling for armv5 or
821         higher clear TARGET_INTERWORK.
822         (output_call): Abort if called for armv5.  Use BX if it's available.
823         (output_call_mem): Use BLX if available and ensure that all armv5
824         code is interworking safe.
825         (output_return_instruction): Always use BX in preference to MOV if
826         it's available.
827         (arm_output_epilogue): Likewise.
828         (arm_final_prescan_insn): Never conditionally call a subroutine
829         on armv5.
830         * arm.h (arm_arch4t): Declare.
831         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
832         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
833         call_value_reg respectively.
834         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
835         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
836         and call_value_indirect respectively.
837
838 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
839
840         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
841         in terms of const_float_1_operand.
842
843 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
844
845         PR target/16144
846         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
847         is 1.0; force it into a register instead.
848
849 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
850
851         * config/m68k/m68k.h: Restore valid comment removed by mistake with
852         the recent m68k comments cleanup.
853
854 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
855
856         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
857         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
858         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
859         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
860
861         PR/16131
862         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
863
864         * gimplify.c: Remove unneeded forward declarations.
865
866         * gimplify.c (append_to_compound_expr): Deleted.
867         * tree-gimple.h (append_to_compound_expr): Deleted.
868
869         * fold-const.c (fold_addr_expr_with_type): Look through all
870         valid LHS modifiers to find a base to mark addressable.
871
872         * tree.h (debug_find_tree): Add declaration.
873         * tree-inline.c (debug_find_tree): Remove extern declaration.
874
875 2004-06-24  Eric Christopher  <echristo@redhat.com>
876
877         * config/rs6000/rs6000.md: Apply change mistakenly
878         deleted with 2004-06-22 patch.
879
880 2004-06-24  Richard Henderson  <rth@redhat.com>
881
882         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
883         (c_break_label, c_cont_label): New.
884         (start_function): Update initializations.
885         (c_push_function_context): Update saves.
886         (c_pop_function_context): Update restores.
887         * c-parse.in: Update expected conflicts.
888         (stmt_count, compstmt_count): Remove.  Remove all updates.
889         (if_prefix, simple_if, do_stmt_start): Remove.
890         (lineno_labeled_stmt): Remove.
891         (lineno_labels): New.
892         (c99_block_lineno_labeled_stmt): Use it.
893         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
894         annotate_with_locus.
895         (select_or_iter_stmt): Replace by ...
896         (condition, if_statement_1, if_statement_2, if_statement,
897         start_break, start_continue, while_statement, do_statement,
898         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
899         (stmt): Split out ...
900         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
901         c_finish_goto_ptr.
902         * c-semantics.c (add_stmt): Don't add line numbers to labels.
903         * c-tree.h: Update prototypes.
904         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
905         add x_break_label, x_cont_label, x_switch_stack.
906         (c_switch_stack): Declare.
907         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
908         (c_finish_return): Return the statement.
909         (c_switch_stack): Rename from switch_stack; export.
910         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
911         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
912         c_finish_else): Remove.
913         (c_finish_if_stmt): Rewrite to perform the entire operation.
914         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
915         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
916         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
917         (c_finish_loop): New.
918         (c_finish_bc_stmt): New.
919         (c_finish_expr_stmt): Return the statement.  Split out...
920         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
921         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
922         * tree-gimple.c (is_gimple_stmt): Likewise.
923         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
924         (print_struct_decl): Delete empty compound statement.
925         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
926         * objc/objc-act.h: Update decl.
927
928 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
929
930         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
931         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
932
933 2004-06-24  Andrew Pinski  <apinski@apple.com>
934
935         * objc-act.c (build_objc_method_call): Save the lookup_object
936         so we do not call it twice.
937
938 2004-06-24  Richard Henderson  <rth@redhat.com>
939
940         * tree-ssa-dom.c (real_avail_expr_hash): New.
941         (tree_ssa_dominator_optimize): Use it in the htab.
942
943 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
944
945         * tree-mudflap.c (mx_register_decls): Add third (type) argument
946         to synthesized __mf_unregister call.
947
948 2004-06-24  Roger Sayle  <roger@eyesopen.com>
949
950         PR middle-end/15239
951         * expmed.c (expand_mult): Remove artificial restriction on the
952         maximum cost of a synthetic multiplication sequence.
953
954 2004-06-24  Eric Christopher  <echristo@redhat.com>
955
956         * combine.c (distribute_notes): Don't delete sets to
957         global register variables.
958
959 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
960
961         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
962         (ffs_rex64): New splitter.
963         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
964
965 2004-06-24  Andrew Pinski  <apinski@apple.com>
966
967         * config/darwin7.h (MATH_LIBRARY): Remove.
968         (LIB_SPEC): Define.
969         * config/darwin.h (MATH_LIBRARY): Define always to empty.
970         (LIB_SPEC): Only define if not already defined.
971
972 2004-06-24  Revital Eres  <eres@il.ibm.com>
973
974         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
975         shifts of induction variable.
976         (iv_shift): New function.
977
978 2004-06-24  Richard Henderson  <rth@redhat.com>
979
980         * gimplify.c (gimplify_body): Watch for body vanishing.
981
982 2004-06-24  Jeff Law  <law@redhat.com>
983
984         * tree-ssa-dom.c (record_dominating_conditions): New function.
985         (dom_opt_finalize_block, get_eq_expr_value): Use it.
986
987 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
988
989         * calls.c (shift_returned_value): Fix handling of non-integer
990         TYPE_MODEs.
991
992 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
993
994         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
995         * system.h (DEFAULT_MAIN_RETURN): Poison.
996         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
997
998 2004-06-24  Ben Elliston  <bje@au.ibm.com>
999
1000         * doc/cfg.texi (Edges): Fix typo.
1001
1002 2004-06-24  Paul Brook  <paul@codesourcery.com>
1003
1004         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
1005
1006 2004-06-23  Andrew Pinski  <apinski@apple.com>
1007
1008         PR middle-end/15988
1009         * fold-const.c (fold_convert): Types which are compatible
1010         can be converted with only a NOP_EXPR.
1011
1012 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
1013
1014         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
1015         pass raw n_named_args to it.
1016         * targhooks.c: Formatting.
1017         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
1018
1019 2004-06-23  Richard Henderson  <rth@redhat.com>
1020
1021         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
1022         non-constant size check.  Gimplify the type too.  Tidy building
1023         BUILT_IN_STACK_ALLOC call.
1024
1025 2004-06-23  Roger Sayle  <roger@eyesopen.com>
1026
1027         * c-common.c (expand_unordered_cmp): Delete.
1028         (expand_tree_builtin): Delete.
1029         * c-common.h (expand_tree_builtin): Delete function prototype.
1030         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
1031
1032 2004-06-23  Richard Henderson  <rth@redhat.com>
1033
1034         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
1035         COMPONENT_REF variable fields unless they're non-constant.
1036
1037 2004-06-23  Robert Millan  <robertmh@gnu.org>
1038
1039         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
1040         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
1041           DYNAMIC_LINKER and register names in sc_ structure.
1042         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
1043         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
1044         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
1045         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
1046
1047         * config/kfreebsdgnu.h: Remove.
1048         * config/t-kfreebsd-gnu: Likewise.
1049         * config/i386/kfreebsdgnu.h: Likewise.
1050
1051 2004-06-23  Eric Christopher  <echristo@redhat.com>
1052
1053         * fold-const.c (make_range): Cleanup type checking through function.
1054         Remove orig_type. Replace with checks to exp_type and arg0_type.
1055         Clarify comment when converting from unsigned to signed.
1056
1057 2004-06-23  Eric Christopher  <echristo@redhat.com>
1058
1059         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
1060         * config/mips/mips.md: Remove R3000 scheduling description.
1061         * config/mips/3000.md: New file.
1062
1063 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1064
1065         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
1066         (s390_emit_jump): Likewise.
1067         * config/s390/s390.c (s390_emit_compare): New function.
1068         (s390_emit_jump): Likewise.
1069         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
1070         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
1071         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
1072         and s390_emit_jump.
1073         ("cjump"): Remove, replace by ...
1074         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
1075         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
1076         ("trap"): Fix type attribute.
1077         ("conditional_trap"): Use s390_emit_compare.
1078         ("doloop_si"): Remove, replace by ...
1079         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
1080         Merge existing splitter into insn_and_split.  Improve length default.
1081         ("doloop_di"): Merge with existing splitter into insn_and_split.
1082         ("doloop"): Adapt.
1083         ("jump"): Convert to expander.  Use s390_emit_jump.
1084         ("*jump_64", "*jump_31"): New insns.  Improve length default.
1085
1086 2004-06-23  Wu Yongwei  <adah@sh163.net>
1087
1088         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
1089         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
1090         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
1091         suitable function for interlocked compare-and-exchange.
1092         (__gthread_mutex_trylock): Use
1093         __GTHR_W32_InterlockedCompareExchange.
1094         (__gthread_mutex_init_function, __gthread_mutex_lock,
1095         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
1096         initial counter value to work correctly under Windows 95.
1097         * config/i386/gthr-win32.c: Adjust include order.
1098         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
1099         gthr-win32.h.
1100         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
1101         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
1102         to match inline versions in gthr-win32.h.
1103
1104 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
1105
1106         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
1107         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
1108         (insvdi_rshift_rlwimi_p): New function.
1109         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
1110         (extendsfdf2): Convert to define_insn_and_split.
1111         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
1112
1113 2004-06-23  Andrew Pinski  <apinski@apple.com>
1114
1115         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
1116         type qualifiers at all.
1117         If both of the type domains are null and the new element type is
1118         the same as one of the, return the one which the element type.
1119         matches.
1120         Do not call qualify_type on the new type.
1121
1122 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1123
1124         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
1125
1126 2004-06-23  Roger Sayle  <roger@eyesopen.com>
1127
1128         * convert.c (strip_float_extension): Skip both NOP_EXPR and
1129         CONVERT_EXPR floating point extensions.
1130
1131 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
1132
1133         * Makefile.in (tree-vn.o): New.
1134         (tree-ssa-pre.o): Don't depend on RTL_H.
1135         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
1136         * tree-flow.h (struct var_ann_d): Remove field expr_set.
1137         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
1138         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
1139         * tree-optimize.c (execute_init_datastructures): New local function.
1140         (pass_init_datastructures): New local variable.
1141         (init_tree_optimization_passes): Sequence pass_init_datastructures.
1142         * tree-pretty-print.c (MASK_POINTER): Remove.
1143         (dump_generic_node): Handle VALUE_HANDLE.
1144         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
1145         Update callers to use new function names.
1146         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
1147         variable annotations.
1148         * tree-ssa.c (init_tree_ssa): Call vn_init.
1149         (delete_tree_ssa): Call vn_delete.
1150         * tree-vn.c: New file.
1151         * tree.c (tree_size): Handle VALUE_HANDLE.
1152         (tree_node_structure): Likewise.
1153         (iterative_hash_expr): Likewise.
1154         * tree.def (VALUE_HANDLE): New code.
1155         * tree.h (struct tree_value_handle): New.
1156         (VALUE_HANDLE_ID): Define.
1157         (VALUE_HANDLE_EXPR_SET): Define.
1158         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
1159         (union tree_node): Add struct tree_value_handle.
1160
1161 2004-06-23  Andrew Pinski  <apinski@apple.com>
1162
1163         * c-typeck.c (composite_type):
1164         <case POINTER_TYPE>: Build a qualified type of
1165         the new type.
1166         <case ARRAY_TYPE>: Likewise.
1167         <case FUNCTION_TYPE>: Likewise.
1168
1169 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
1170
1171         PR optimization/15633
1172         * value-prof.c (divmod_fixed_value_transform): Compute probability
1173         of taking optimal path and pass along to gen_ routine.
1174         (mod_pow2_value_transform): Same.
1175         (mod_subtract_transform): Same.
1176         (gen_divmod_fixed_value): Add new probability parameter.
1177         Add probability to newly created jump.
1178         (gen_mod_pow2): Same.
1179         (gen_mod_subtract): Same.
1180
1181 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1182
1183         * PR target/15948
1184         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
1185         one and two.
1186
1187 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1188
1189         PR target/15927
1190         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
1191         reload if CLASS is BASE_REGS.
1192
1193 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
1194
1195         * gengtype-yacc.y (option): Avoid use of non-constant struct
1196         initializer.
1197
1198 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1199
1200         * doc/extend.texi (Function Attributes): Alphabetize.
1201
1202 2004-06-23  Richard Henderson  <rth@redhat.com>
1203
1204         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
1205         Use gimplify_and_add.
1206         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
1207         * gimplify.c (build_and_jump, gimplify_exit_expr,
1208         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
1209         gimplify_stmt, gimplify_expr): Likewise.
1210         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
1211         (gimplify_statement_list): Remove NULL entries.
1212         (gimplify_to_stmt_list): Handle NULL results.
1213         (gimplify_type_sizes): Add list_p argument.
1214         (gimplify_one_sizepos): Don't use internal pre/post queue.
1215         * tree-gimple.h (gimplify_type_sizes): Update.
1216
1217 2004-06-22  Eric Christopher  <echristo@redhat.com>
1218
1219         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
1220
1221 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
1222
1223         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
1224         when redirecting back edges.
1225
1226         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
1227         count/probability are set correctly.
1228
1229 2004-06-22  Richard Henderson  <rth@redhat.com>
1230
1231         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
1232         (c_finish_stmt_expr): Likewise.
1233
1234         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
1235         (ix86_return_in_memory): Move SSE vector return warning ...
1236         (ix86_struct_value_rtx): ... here.  New.
1237
1238 2004-06-22  Richard Henderson  <rth@redhat.com>
1239
1240         * tree.def (VTABLE_REF): Remove.
1241         (OBJ_TYPE_REF): New.
1242         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
1243         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1244         * fold-const.c (non_lvalue): Likewise.
1245         * gimplify.c (gimplify_expr): Likewise.
1246         (gimplify_call_expr): Use is_gimple_call_addr.
1247         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
1248         * langhooks.h (fold_obj_type_ref): New.
1249         * tree-gimple.c (is_gimple_call_addr): New.
1250         * tree-gimple.h (is_gimple_call_addr): Declare.
1251         * tree-inline.c (inlinable_function_p): Fix merge error.
1252         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1253         * tree-pretty-print.c (dump_generic_node): Likewise.
1254         (print_call_name): Handle OBJ_TYPE_REF.
1255         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
1256         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
1257         * tree.h (OBJ_TYPE_REF_EXPR): New.
1258         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
1259         * doc/c-tree.texi (VTABLE_REF): Remove.
1260         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
1261
1262 2004-06-22  Richard Henderson  <rth@redhat.com>
1263
1264         PR middle-end/16026
1265         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
1266
1267 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1268
1269         * Makefile.in (distclean): Don't try to remove empty directories.
1270
1271 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
1272
1273         PR target/15869
1274         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
1275
1276 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1277
1278         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
1279         operands.
1280
1281 2004-06-22  Dale Johannesen  <dalej@apple.com>
1282
1283         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
1284         global, rename rs6000_legitimate_offset_address_p.
1285         (rs6000_legitimate_address_p): Adjust calls to it.
1286         (lmw_operation): Ditto.
1287         (stmw_operation): Ditto.
1288         * config/rs6000/rs6000-protos.h: Declare it.
1289         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
1290         instead of offsettable_memref_p.
1291
1292 2004-06-22  Dale Johannesen  <dalej@apple.com>
1293
1294         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
1295         [reg+reg] mode for TFmode memory accesses.
1296         (rs6000_eliminate_indexed_memrefs): New.
1297         (rs6000_emit_move): Call preceding for TImode and TFmode.
1298
1299 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
1300
1301         * tree-cfg.c (pass_warn_function_return): It needs
1302         CFG, not SSA.
1303
1304 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1305
1306         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
1307         (Submodel Options): Likewise.
1308
1309 2004-06-21  Andrew Pinski  <apinski@apple.com>
1310
1311         Radar #: 3701874
1312         * c-decl.c (push_file_scope): Return early if we already
1313         have a file scope.
1314
1315 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
1316
1317         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
1318         * c-common.h (flag_pch_preprocess): Declare.
1319         (c_common_pch_pragma): Likewise.
1320         * c-common.c (flag_pch_preprocess): New.
1321         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
1322         (c_common_pch_pragma): New.
1323         * c-ppoutput.c (cb_read_pch): New.
1324         (init_pp_output): Support -fpch-preprocess.
1325         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
1326         * c.opt (fpch-preprocess): New.
1327         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
1328         * doc/cppopts.texi: Document -fpch-preprocess.
1329         * doc/invoke.texi (Precompiled Headers): Mention that
1330         -fpreprocessed is safe for PCH.  Mention that if an option is
1331         listed as safe that doesn't mean it does what you expect.
1332
1333 2004-06-22  Ben Elliston  <bje@au.ibm.com>
1334
1335         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
1336
1337 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1338
1339         * Makefile.in (gimplify.o): Add cgraph.h.
1340         * alias.c (adjust_offset_for_component_ref): Use
1341         component_ref_field_offset.
1342         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
1343         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
1344         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
1345         For decl, call gimplify_one_sizepos and use statement list.
1346         (gimplify_compound_literal_expr): New arg PRE_P.
1347         Add statement to PRE_P list and return DECL.
1348         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
1349         gimplify_compound_literal_expr.
1350         * c-tree.h (getdecls): Deleted.
1351         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
1352         (build_array_ref): Add two operands for ARRAY_REF.
1353         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
1354         COMPOUND_LITERAL_EXPR.
1355         * coverage.c (tree_coverage_counter_ref): Add new operands
1356         for ARRAY_REF.
1357         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
1358         for COMPONENT_REF.
1359         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
1360         and array_ref_element_size.
1361         (widen_memory_access):Use component_ref_field_offset.
1362         * explow.c (update_nonlocal_goto_save_area): Add two operands
1363         for ARRAY_REF.
1364         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
1365         (component_ref_field_offset): Likewise.
1366         (get_inner_reference): Use them.
1367         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
1368         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
1369         (fold_read_from_constant_string): Use array_ref_low_bound.
1370         Verify that result is a character type.
1371         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
1372         * function.c (expand_function_start): Likewise.
1373         * gimple-low.c (expand_var_p): Delete duplicated line.
1374         * gimplify.c: Add static decls for local functions.
1375         (cgraph.h): Now included.
1376         (create_tmp_var): Remove check for ARRAY_TYPE.
1377         (copy_if_shared_r): Look at bounds and sizes of types.
1378         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
1379         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
1380         (gimplify_save_expr, gimple_push_cleanup): Likewise.
1381         (gimplify_init_constructor): Likewise.
1382         WANT_VALUE now bool.
1383         If empty list with no result wanted, return GS_UNHANDLED.
1384         Add additional operands for ARRAY_REF and COMPONENT_REF.
1385         (canonicalize_component_ref): Convert to &array[L].
1386         (gimplify_array_ref_to_plus): Use array_ref_element_size and
1387         array_ref_lower_bound.
1388         (build_addr_expr_with_type, build_addr_expr): New functions.
1389         (gimplify_compound_lval): WANT_LVALUE now bool.
1390         Major rework to allow handle_component_p and initialize and
1391         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
1392         COMPONENT_REF.
1393         (gimplify_array_ref): Deleted.
1394         (gimplify_self_mod_expr): WANT_VALUE now bool.
1395         (gimplify_modify_expr): Gimplify to_p and from_p later.
1396         Factor out code into gimplify_modify_expr_rhs and call twice.
1397         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
1398         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
1399         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
1400         (gimplify_expr, case ARRAY_REF): Delete special case.
1401         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
1402         IMAGPART, and REALPART the same way.
1403         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
1404         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
1405         Call alloc_stmt_list instead of build_empty_stmt.
1406         Deal with _REF that's volatile.
1407         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
1408         (unshare_body, unvisit_body): New functions.
1409         (gimplify_body): Call them.
1410         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
1411         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
1412         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
1413         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
1414         like ARRAY_REF.
1415         (verify_expr, case ADDR_EXPR): Use handled_component_p.
1416         * tree-dfa.c (get_virtual_var): Likewise.
1417         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
1418         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
1419         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
1420         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
1421         and INDIRECT_REF.
1422         (get_base_address): Use handled_component_p.
1423         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
1424         * tree-inline.c (walk_tree): Walk more things for types and decls.
1425         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
1426         for ARRAY_REF and COMPONENT_REF.
1427         (mx_xform_derefs_1): Clean up usage of decl sizes.
1428         * tree-nested.c (build_addr): Use handled_component_p.
1429         (walk_stmts, case CATCH_EXPR): Add missing "break".
1430         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
1431         (finalize_nesting_tree_1): Likewise.
1432         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
1433         and process additional operands.
1434         (convert_local_reference): Likewise.
1435         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
1436         ARRAY_RANGE_REF similarly to ARRAY_REF.
1437         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
1438         like RECORD_TYPE.
1439         (dump_generic_node, case COMPONENT_REF): Print offset operand.
1440         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
1441         and print lower bound and element size for both.
1442         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
1443         * tree-sra.c (csc_build_component_ref): Add new operand.
1444         (scalarize_call_expr): Use get_base_address.
1445         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
1446         (maybe_fold_offset_to_array_ref): Rework to handle input having an
1447         ARRAY_REF, refine handling of lower bound, and add new operands
1448         for ARRAY_REF.
1449         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
1450         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
1451         (maybe_fold_stmt_addition): Only handle constant lower bound.
1452         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1453         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
1454         Look at new offset operand of COMPONENT_REF.
1455         * tree-ssa.c (set_is_used): Use handled_component_p.
1456         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
1457         (stabilize_reference, case COMPONENT_REF): Likewise.
1458         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
1459         (recompute_tree_invariant_for_addr_expr): Completely rework to
1460         be more precise.  Also set TREE_SIDE_EFFECTS.
1461         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
1462         (build2_stat, build3_stat, build4_stat): For references,
1463         propagate TREE_THIS_VOLATILE.
1464         (get_unwidened): Add new operand for COMPONENT_REF.
1465         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
1466         * tree.def (COMPONENT_REF): Add new operand.
1467         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
1468         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
1469         (component_ref_field_offset): Likewise.
1470         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
1471         (alpha_gimplify_va_arg): Likewise.
1472         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1473         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
1474         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
1475         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
1476         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1477         Likewise.
1478         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1479         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
1480         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
1481         Likewise.
1482         (xstormy16_expand_builtin_va_arg): Likewise.
1483         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
1484         * objc/objc-act.c (generate_static_references): Likewise.
1485         (generate_strings, build_method_prototype_list_template): Likewise.
1486         (generate_protocol_list): Likewise.
1487
1488 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1489
1490         PR rtl-optimization/14782
1491         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
1492         the address checks for secondary reloads for loads from and stores
1493         to floating-point registers.
1494         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
1495         in the address check.  Move work around for ELF32 targets to
1496         GO_IF_LEGITIMATE_ADDRESS.
1497         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
1498         correctly aligned for DImode loads and stores.  Don't allow long
1499         SFmode displacements on ELF32.
1500
1501 2004-06-21  Richard Henderson  <rth@redhat.com>
1502
1503         PR rtl-opt/16114
1504         * cse.c (merge_equiv_classes): Also rehash in response to
1505         delete_reg_equiv changes.
1506         (rehash_using_reg): Don't exclude REGs from rehashing.
1507
1508 2004-06-21  Richard Henderson  <rth@redhat.com>
1509
1510         * c-common.def (RETURN_STMT): Remove.
1511         * c-common.h (RETURN_STMT_EXPR): Remove.
1512         (c_expand_return, build_return_stmt): Remove.
1513         (c_common_stmt_codes): Remove RETURN_STMT.
1514         * c-dump.c (dump_next_stmt): Remove.
1515         (c_dump_tree): Remove RETURN_STMT.
1516         * c-decl.c (finish_function): Use c_finish_return.
1517         * c-parse.in (stmt): Likewise.
1518         * c-gimplify.c (gimplify_return_stmt): Remove.
1519         (c_gimplify_expr): Remove RETURN_STMT.
1520         * c-pretty-print.c (pp_c_statement): Likewise.
1521         * c-semantics.c (build_return_stmt): Remove.
1522         * c-tree.h (c_finish_return): Declare.
1523         * c-typeck.c (c_finish_return): Rename from c_expand_return.
1524         Return void.  Build RETURN_EXPR directly.
1525         * tree-dump.h (dump_next_stmt): Remove.
1526
1527 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
1528
1529         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
1530         look at TREE_ADDRESSABLE of symbol name.
1531
1532 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
1533
1534         PR target/15551
1535         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
1536         (allocate_stack_worker): Make unspec_volatile.
1537         (allocate_stack_worker_rex64):  Likewise.
1538         (allocate_stack_worker_postreload):  Likewise.
1539         (allocate_stack_worker_rex64_postreload):  Likewise.
1540
1541 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
1542
1543         Fix PR optimization/15982
1544         * tree-ssa-pre.c: Update a few comments and todos to
1545         reflect constants change.
1546         (get_value_handle): Constants now value number to themselves.
1547         (lookup): Constants lookup to themselves.
1548         (add_to_value): Adjust to always be on.
1549         (set_contains_value): Adjust for constants change.
1550         (find_leader): Ditto.
1551         (phi_translate): 'r' nodes are never ANTIC right now.
1552         (valid_in_set): Ditto.
1553         (get_expr_set): New function.
1554         (find_or_generate_expression): New function, broken out from
1555         insert_aux.
1556         (create_expression_by_pieces): Ditto, plus additional
1557         machinery to handle complex values.
1558         (compute_avail): Remove dead RETURN_EXPR handling.
1559
1560 2004-06-21  Steven Bosscher  <stevenb@suse.de>
1561
1562         * config/i386/i386.c: Include insn-codes.h
1563         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
1564         define here.
1565         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
1566         DIRFLAG_REG): New define_constants.  Use them everywhere.
1567
1568 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1569
1570         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
1571
1572 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
1573
1574         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
1575         (SUPPORT_SH4_SINGLE): Likewise.
1576         (TARGET_SWITCHES): Break out switches for cpu subtargets:
1577         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
1578         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
1579         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
1580         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
1581         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
1582         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
1583         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
1584         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
1585         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
1586         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
1587         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
1588         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
1589         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
1590         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
1591         (TARGET_DEFAULT): Likewise.
1592         * config/sh/t-elf: Amend comment.
1593         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
1594         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
1595         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
1596         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
1597         * config/sh/t-mlib-sh4-single: Likewise.
1598         * config/sh/t-mlib-sh4-single-only: Likewise.
1599         * config/sh/t-mlib-sh5-32media: Likewise.
1600         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
1601         * config/sh/t-mlib-sh5-64media: Likewise.
1602         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
1603         * config/sh/t-mlib-sh5-compact: Likewise.
1604         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
1605         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
1606         (MULTILIB_CPUS): Define.
1607         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1608         (MULTILIB_MATCHES): Use some shell code to calculate it.
1609         (MULTILIB_EXCEPTIONS): Change to ml/m1.
1610         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1611         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1612         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1613         (NO_PROFILE_COUNTERS): Define to 1.
1614         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1615         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1616         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1617         (MULTILIB_MATCHES): Don't zap.
1618         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1619         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1620         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1621         (MULTILIB_RAW_DIRNAMES): Define.
1622         (MULTILIB_DIRNAMES): Use it.
1623         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1624         (sh*linux configurations): Merge into:
1625         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
1626         --with-multilib-list options.  Support sh-superh-elf configuration.
1627         (sh*-netbsd*): Use SELECT_SH* macros.
1628         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1629         Merge sh*-*-netbsd* configurations into sh-elf configurations.
1630         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1631         * config/sh/t-monolib: Likewise.
1632
1633 2004-06-21  Paul Brook  <paul@codesourcery.com>
1634
1635         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1636         not imply FPA.
1637
1638 2004-06-21  Roger Sayle  <roger@eyesopen.com>
1639
1640         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1641         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
1642         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1643         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1644         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1645         and TRUTH_XOR_EXPR.
1646
1647 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1648
1649         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1650
1651 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1652
1653         * tree-alias-common.h (struct tree_alias_ops): Change ip and
1654         ip_partial to unsigned int.
1655
1656 2004-06-21  Richard Henderson  <rth@redhat.com>
1657
1658         * c-common.c (verify_sequence_points): Export.
1659         (c_expand_expr_stmt): Move to c-typeck.c.
1660         * c-common.h (c_expand_expr_stmt): Remove.
1661         (verify_sequence_points): Declare.
1662         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1663         * c-parse.in (for_init_stmt, stmt): Likewise.
1664         * c-tree.h (c_finish_expr_stmt): Declare.
1665         (c_tree_expr_nonnegative_p): Remove.
1666         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1667         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1668         (emit_side_effect_warnings): New.
1669         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
1670         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
1671         Use emit_side_effect_warnings.
1672         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1673         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1674         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1675         with void initializer.
1676         (gimplify_target_expr): Handle void BIND_EXPR initializer.
1677         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1678         INIT_EXPR and MODIFY_EXPR.
1679         * objc/objc-act.c (build_module_descriptor): Use add_stmt
1680         instead of c_expand_expr_stmt.
1681
1682 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1683
1684         * fold-const.c (fold_cond_expr_with_comparison):
1685         New function, extracted from fold.
1686         (fold): Extract code to fold A op B ? A : C, use
1687         it to fold A op B ? C : A.  Really optimize
1688         A & N ? N : 0 where N is a power of two.  Avoid
1689         relying on canonicalization and recursion for
1690         foldings of COND_EXPR to happen.
1691
1692 2004-06-20  David Ayers  <d.ayers@inode.at>
1693
1694         * objc/objc-act.h (get_object_reference): Rename to
1695         get_protocol_reference.
1696         (super_type): Rename to objc_super_type.
1697         (selector_type): Rename to objc_selector_type.
1698         (id_type): Rename to objc_id_type.
1699         (instance_type): Rename to objc_instance_type.
1700         (protocol_type): Rename to objc_protocol_type.
1701         (IS_ID): Update reference to id_type.
1702         * objc/objc-act.c (get_object_reference): Rename to
1703         get_protocol_reference; add documentation; update references to
1704         id_type.
1705         (lookup_method_in_protocol_list): Rename class_meth to
1706         is_class; add documentation.
1707         (finish_message_expr): Rename is_class to class_tree.
1708         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1709         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1710         build_next_objc_exception_stuff, get_arg_type_list,
1711         build_objc_method_call): Update references to id_type.
1712         (synth_module_prologue, build_objc_symtab_template,
1713         build_selector_reference_decl, build_selector,
1714         build_selector_translation_table, build_typed_selector_reference,
1715         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1716         synth_self_and_ucmd_args): Update references to selector_type.
1717         (build_private_template, build_ivar_reference): Update references
1718         to instance_type.
1719         (synth_module_prologue, build_protocol_reference,
1720         build_protocol_expr, start_protocol): Update references to
1721         protocol_type.
1722         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1723         Update references to super_type.
1724         * c-parse.in: (typespec_nonreserved_nonattr): Update
1725         references to get_object_reference.
1726         * objc/objc-tree.def: Add C mode identifier sequence.
1727
1728 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1729
1730         * loop-invariant.c: New file.
1731         * Makefile.in (loop-invariant.o): New.
1732         * cfgloop.h (global_cost_for_size, init_set_costs,
1733         move_loop_invariants): Declare.
1734         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1735         functions.
1736         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1737         variables.
1738         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1739         * loop-init.c (loop_optimizer_init): Call init_set_costs.
1740         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1741         (rest_of_compilation): Check flag_loop_optimize2.
1742         * toplev.c (process_options): Handle flag_loop_optimize2.
1743         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1744         * doc/passes.texi (loop-invariant.c): Document.
1745
1746 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1747
1748         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1749
1750 2004-06-20  Richard Henderson  <rth@redhat.com>
1751
1752         * stmt.c (warn_if_unused_value): Add locus argument.
1753         * tree.h (warn_if_unused_value): Update decl.
1754         * c-typeck.c (internal_build_compound_expr): Update call.
1755         * c-gimplify.c (gimplify_expr_stmt): Likewise.
1756
1757 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
1758
1759         PR middle-end/16089
1760         * builtins.c (entry_of_function): Move to ...
1761         * cfgrtl.c (entry_of_function): Here and make non-static.
1762         * integrate.c (emit_initial_value_sets): Use entry_of_function.
1763         * rtl.h (entry_of_function): Prototype.
1764
1765 2004-06-20  Roger Sayle  <roger@eyesopen.com>
1766
1767         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1768         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1769         TARGET_DECOMPOSE_LEA.
1770
1771 2004-06-20  Richard Henderson  <rth@redhat.com>
1772
1773         * c-common.h (add_decl_stmt): Move to cp-tree.h.
1774         * c-decl.c (finish_decl): Don't use add_decl_stmt.
1775         * c-parse.in: Likewise.
1776         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1777         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1778         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1779
1780 2004-06-20  Richard Henderson  <rth@redhat.com>
1781
1782         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1783         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1784         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1785         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1786         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1787         * c-pretty-print.c (pp_c_statement): Similarly.
1788         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1789         gimplify_if_stmt): Move to cp-gimplify.c.
1790         (c_genericize, c_gimplify_expr): Don't call them.
1791         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1792         * c-typeck.c (push_cleanup): New.
1793         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1794         c_finish_if_stmt): Use COND_EXPR.
1795         * tree.h (CLEANUP_EH_ONLY): Update documentation.
1796
1797 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
1798
1799         * c-common.h (has_c_linkage): New interface.
1800         * c-cppbuiltin.c: Include target.h.
1801         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1802         __PRAGMA_EXTERN_PREFIX when appropriate.
1803         * c-pragma.c: Include target.h.
1804         Document clarified semantics of symbol-renaming #pragmas.
1805         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1806         (maybe_apply_renaming_pragma): Rewrite according to clarified
1807         semantics.  Always recognize, but do not necessarily execute.
1808         (init_pragma): Unconditionally register symbol-renaming pragmas.
1809         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1810         and HANDLE_PRAGMA_EXTERN_PREFIX.
1811         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1812         and handle_pragma_extern_prefix flags.
1813         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1814         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1815         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1816         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1817         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1818         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1819         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1820         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1821         not HANDLE_PRAGMA_EXTERN_PREFIX.
1822         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1823         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1824         into one section "Symbol-Renaming Pragmas"; clarify; document
1825         adjusted semantics.
1826
1827         * builtins.c (expand_builtin): Do not issue error for a builtin
1828         with no special case code and no DECL_ASSEMBLER_NAME; just do the
1829         library call.
1830         * c-decl.c (builtin_function): Don't call make_decl_rtl.
1831         * c-objc-common.c (has_c_linkage): Stub implementation.
1832         * cgraphunit.c (cgraph_expand_function)
1833         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1834
1835 2004-06-19  Roger Sayle  <roger@eyesopen.com>
1836
1837         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1838         instead of both an ARGLIST and a result TYPE.  Handle these C99
1839         comparison functions as "polymorphic" builtins.  Also handle
1840         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1841         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1842         Move handling of BUILT_IN_ISUNORDERED from here to there.
1843
1844 2004-06-19  Richard Henderson  <rth@redhat.com>
1845
1846         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1847         * c-gimplify.c: Remove unnecessary prototypes.
1848         (c_gimplify_stmt): Merge into ...
1849         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
1850         * c-semantics.c (prep_stmt): Remove.
1851         * gimplify.c (annotate_one_with_locus): Break out from ...
1852         (annotate_all_with_locus): ... here.
1853         (gimplify_expr): Add locus to expressions even if pre/post queues
1854         are not present.
1855
1856 2004-06-19  Richard Henderson  <rth@redhat.com>
1857
1858         PR target/15941
1859         * function.c (assign_parms): If not padding upward or intentionally
1860         forcing upward padding, take offset_rtx into account when determining
1861         the alignment for stack_parm.
1862
1863 2004-06-19  Richard Henderson  <rth@redhat.com>
1864
1865         PR target/15550
1866         * ifcvt.c (noce_try_move): Recognize all generated instructions.
1867
1868 2004-06-19  Jan Hubicka  <jh@suse.cz>
1869
1870         * function.c (free_after_compilation): Do not free computed_goto_common*.
1871         * function.h (struct function): Kill computed_goto_common*.
1872         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1873         * tree-cfg.c (disband_implicit_edges): Do not forward across the
1874         commonized computed goto.
1875
1876 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1877
1878         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1879         in binutils.
1880
1881 2004-06-19  Andrew Pinski  <apinski@apple.com>
1882
1883         PR c++/15721
1884         * toplev.c (wrapup_global_declarations): Do not check
1885         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1886         cgraph_varpool_node's needed field.
1887
1888 2004-06-19  Jan Hubicka  <jh@suse.cz>
1889             Steven Bosscher  <stevenb@suse.de>
1890
1891         CFG transparent RTL expansion:
1892         * Makefile.in (cfgexpand.o): New object file.
1893         (builtins.o): Add dependency on basic-block.h
1894         * builtins.c: Include basic-block.h
1895         (entry_of_function): New function.
1896         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1897         * cfgexpand.c: New file.
1898         * expr.c (execute_expand, pass_expand): Kill.
1899         * pass.c (rest_of_compilation): Do not build CFG unless called from
1900         coverage code.
1901         * tree-cfg.c (delete_tree_cfg): Rename to..
1902         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1903         * tree-flow.h (delete_tree_cfg_annotations): Declare.
1904         (dleete_tree_cfg): Kill.
1905         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1906         (execute_del_cfg): Rename to...
1907         (execute_free_datastructures): This one...
1908         (pass_del_cfg): Rename to...
1909         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1910         (init_tree_optimization_passes): Make cfg build and profiling to happen
1911         unconditionally.
1912
1913 2004-06-19  Steven Bosscher  <stevenb@suse.de>
1914
1915         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1916         inserting the cache variables.
1917
1918         * tree-mudflap.c: Include headers to make basic_block available.
1919         Move functions around such that related functions are near each
1920         other.  Add prototypes for all static functions.  Add comments
1921         briefly explaining what IR the mudflap1 and mudflap2 work on and
1922         what they do.
1923         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1924         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1925         (pass_mudflap_1, pass_mudflap_2): Update.
1926         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1927         function tree.
1928         (mf_build_check_statement_for): Make it work on the CFG.
1929         (mf_xform_derefs_1): Likewise.  Cleanup code style.
1930         (mf_xform_derefs): Likewise.
1931
1932 2004-06-19  Jan Hubicka  <jh@suse.cz>
1933
1934         * tree-cfg.c (label_to_block): Invent the label destination for
1935         undefined labels.
1936         (cleanup_dead_labels): Update table in the case label_to_block added
1937         new label.
1938
1939 2004-06-18  Richard Henderson  <rth@redhat.com>
1940
1941         PR c++/16036
1942         * gimple-low.c (lower_function_body): Generate return statement for
1943         fall off the end of the function here ...
1944         * tree-cfg.c (make_edges): ... instead of here.
1945         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1946
1947 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1948
1949         * tree-ssa.c (raise_value): Removed.
1950         (get_eq_name, check_phi_redundancy): New functions.
1951         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1952
1953 2004-06-18  Roger Sayle  <roger@eyesopen.com>
1954
1955         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1956         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1957         constant folding for unordered comparison tree nodes.  If both
1958         operands are real constants, call fold_relational_const.  If either
1959         operand is a NaN, evaluate the other for side-effects and return a
1960         constant.  Optimize (double)float1 CMP (double)float2 into the
1961         equivalent float1 CMP float2.
1962         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1963         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1964         LTGT_EXPR>: Call fold_relational_const for constant operands.
1965         (fold_relational_const): Add support for unordered comparison tree
1966         nodes.  Don't constant fold "ordered" floating point comparisons
1967         against NaN if when flag_trapping_math is set.
1968
1969 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
1970
1971         * fold-const.c (build_range_check): If !in_p and recursive call
1972         fails, exit immediately.  If high - low overflows and etype is
1973         a signed type, retry with unsigned etype.
1974         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1975         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1976
1977 2004-06-18  Richard Henderson  <rth@redhat.com>
1978
1979         * c-gimplify.c (gimplify_condition): Remove.
1980         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1981         call it.
1982
1983 2004-06-18  Richard Henderson  <rth@redhat.com>
1984
1985         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1986         switch estimates.
1987
1988 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
1989
1990         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1991         (NORMAL_TEXT_SECTION_NAME): Define.
1992         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1993         (SECTION_FORMAT_STRING): Define.
1994
1995 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1996
1997         * config/xtensa/xtensa.c
1998         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1999         * xtensa.md: Replace the old pipeline description with a DFA model.
2000
2001 2004-06-18  Steven Bosscher  <stevenb@suse.de>
2002             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2003
2004         * config/s390/s390.md: Remove the generic pipeline description.
2005         * config/s390/2064.md: Make all insn reservations apply to
2006         the z900, g5 and g6.
2007         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
2008         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2009         Define to hook_int_void_1.
2010         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
2011         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
2012
2013 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
2014                         Diego Novillo  <dnovillo@redhat.com>
2015
2016         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
2017         (create_stmt_ann): Ditto.
2018         (create_tree_ann): New function.
2019         (create_cst_ann): Remove.
2020         (create_expr_ann): Ditto.
2021
2022         * tree-flow-inline.h (cst_ann): Remove.
2023         (get_cst_ann): Ditto.
2024         (get_expr_ann): Ditto.
2025         (expr_ann): Ditto.
2026         (get_tree_ann): New function.
2027         (tree_ann): Ditto.
2028         (ann_type): tree_ann -> tree_ann_t.
2029         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
2030         (struct cst_ann_d): Removed.
2031         (struct expr_ann_d): Ditto.
2032         (union tree_ann_d): Removed cst and expr.
2033         (tree_ann): Renamed to tree_ann_t.
2034         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
2035         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
2036         annotation.
2037         (set_value_handle): Ditto.
2038         (phi_translate): Ditto.
2039         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
2040
2041 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2042
2043         * config/sh/t-linux64: New file.
2044         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
2045
2046 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
2047
2048         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
2049         (unshare_all_rtl_again): Call unshare_all_rtl_1.
2050         (unshare_all_rtl): New.
2051         * function.c (instantiate_virtual_regs): Remove parameters.
2052         * function.h (instantiate_virtual_regs): Add prototype.
2053         * rtl.h (unshare_all_rtl): Add prototype.
2054         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
2055         prototype.
2056         * passes.c: Remove assertions on the parameters to
2057         rest_of_handle_* functions.  Remove the parameters to
2058         the functions, replacing decl with current_function_decl
2059         and insns with get_insns ().
2060
2061 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2062
2063         * fold-const.c (constant_boolean_node): Handle boolean_type_node
2064         directly, return either boolean_true_node or boolean_false_node.
2065
2066 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
2067
2068         * opts.sh: Delete.  Break out generated code to next four files.
2069         * opt-gather.awk: New file.
2070         * optc-gen.awk: New file.
2071         * opth-gen.awk: New file.
2072         * opt-functions.awk: New common file.
2073         * Makefile.in: Update for above.
2074         * configure.ac: Update comment.
2075         * configure: Regenerate.
2076
2077 2004-06-17  Richard Henderson  <rth@redhat.com>
2078
2079         * c-common.c (flag_objc_sjlj_exceptions): New.
2080         * c-common.h (flag_objc_sjlj_exceptions): Declare.
2081         * c-opts.c (c_common_handle_option): Set it.
2082         (c_common_post_options): Handle interation of different
2083         objective-c exception and runtime switches.
2084         * c-decl.c (c_eh_initialized_p): New.
2085         (finish_decl): Use it instead of local eh_initialized_p.
2086         * c-parse.in (nested_function, notype_nested_function): Record
2087         the result of compstmt.
2088         (compstmt_or_error): Likewise.
2089         (compstmt): Don't add_stmt the result.
2090         (stmt): Don't return anything.  Rewrite objc try and sync rules.
2091         (objc_try_stmt, objc_catch_list): Remove.
2092         (objc_catch_block, objc_finally_block): Remove.
2093         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
2094         (objc_try_catch_clause, objc_finally_clause): New.
2095         (objc_try_catch_stmt): Rewrite.
2096         * c-tree.h (c_eh_initialized_p): Declare.
2097         * c-opt (fobjc-sjlj-exceptions): New.
2098         * except.c (output_function_exception_table): Don't call cgraph
2099         on non-decls.
2100         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
2101         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
2102         catch_count_stack, exc_binding_stack, if_nesting_count,
2103         blk_nesting_count, objc_enter_block, objc_exit_block,
2104         objc_declare_variable, val_stack_push, val_stack_pop,
2105         objc_build_try_enter_fragment, objc_build_extract_expr,
2106         objc_build_try_exit_fragment, objc_build_extract_fragment,
2107         objc_build_try_prologue, objc_build_try_epilogue,
2108         objc_build_catch_stmt, objc_build_catch_epilogue,
2109         objc_build_finally_prologue, objc_build_finally_epilogue,
2110         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
2111         objc_build_synchronized_epilogue): Remove.
2112         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
2113         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
2114         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
2115         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2116         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
2117         objc_begin_catch_clause, objc_finish_catch_clause,
2118         objc_build_finally_clause, objc_finish_try_stmt,
2119         objc_build_synchronized): New.
2120         (objc_is_object_id, objc_is_class_id): New.
2121         (objc_comptypes): Use them.
2122         (build_next_objc_exception_stuff): Break NeXT sjlj out from
2123         build_objc_exception_stuff.
2124         (synth_module_prologue): Update to match.
2125         (objc_build_throw_stmt): Use cur_try_context to decide if
2126         we're in a @catch.
2127         * objc/objc-act.h: Update prototypes.
2128         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
2129
2130 2004-06-17  Andrew Pinski <apinski@apple.com>
2131
2132         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
2133         Use TYPE_FIELDS instead of TYPE_VALUES.
2134
2135 2004-06-17  Jason Merrill  <jason@redhat.com>
2136
2137         PR c++/16015
2138         * gimplify.c (gimplify_target_expr): Handle void initializer.
2139         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
2140         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
2141         and AGGR_INIT_EXPR.
2142
2143 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2144
2145         * fold-const.c (fold_relational_const): Use constant_boolean_node.
2146
2147 2004-06-17  Jan Hubicka  <jh@suse.cz>
2148
2149         PR target/15433
2150         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
2151         operand numbering in the output template.
2152         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
2153
2154 2004-06-17  Jan Hubicka  <jh@suse.cz>
2155
2156         * except.c (can_throw_internal): Recognize RESX expresisons.
2157
2158 2004-06-17  Jan Hubicka  <jh@suse.cz>
2159
2160         * cfgbuild.c (make_edges): Do not use label_value_list.
2161         (find_basic_blocks_1): Do not collect label_value_list.
2162         (find_sub_basic_blocks): Update call of make_edges.
2163
2164 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
2165
2166         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
2167         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
2168         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
2169         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
2170         (get_v_may_def_result_ptr):  Return a def_operand_p.
2171         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
2172         (get_v_must_def_op_ptr):  Return a def_operand_p.
2173         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
2174         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
2175         (phi_element_for_edge):  Remove.
2176         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
2177         (propagate_tree_value):  Add new prototype.
2178         (phi_element_for_edge):  Remove prototype.
2179         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
2180         (prepare_operand_for_rename):  Split into two functions.
2181         (prepare_use_operand_for_rename):  Prepare use operands.
2182         (prepare_def_operand_for_rename):  Prepare def operands.
2183         (rewrite_stmt):  Use new operand types.
2184         (rewrite_operand):  Use new operand types, change parameter type.
2185         * tree-outof-ssa.c (replace_variable):  Split into two functions.
2186         (replace_use_variable):  Rewrite uses.
2187         (replace_def_variable):  Rewrite defs.
2188         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
2189         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
2190         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
2191         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
2192         (ccp_fold, replace_uses_in):  Use new operand types.
2193         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
2194         and no longer set the value, change parameter type.
2195         (replace_exp_1):  Use new operand types.
2196         (propagate_value):  Change parameter type, use new operand types.
2197         (propagate_tree_value):  Propagate_value without SSA operands.
2198         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
2199         (cprop_into_successor_phis):  Use new operand types.
2200         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
2201         (eliminate_redundant_computations):  Use new operand types.
2202         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
2203         (fix_stmt_v_may_defs):  Use new operand_types.
2204         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
2205         (build_tree_conflict_graph):  Use new operand_types.
2206         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
2207         * tree-ssa-operands.c (struct freelist_d):  Remove.
2208         (check_optype_freelist, add_optype_freelist):  Remove.
2209         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2210         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
2211         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2212         Call ggc_free instead of add_optype_freelist.
2213         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
2214         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
2215         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
2216         (struct use_optype_d):  Change underlying type.
2217         (def_operand_p, use_operand_p):  New types for pointers to operands.
2218         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
2219         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
2220         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
2221         pointer types.
2222         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
2223         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
2224         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
2225         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
2226         PHI result as an operand.
2227         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
2228         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
2229         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
2230         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
2231         PHI_ARG_DEF_FROM_EDGE.
2232         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
2233         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
2234
2235 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2236
2237         PR tree-optimization/15991
2238         * tree-cfg.c (tree_block_label): Export.
2239         * tree-flow-inline.h (bsi_after_labels): New function.
2240         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
2241         * tree-ssa.c (propagate_into_addr): New function.
2242         (replace_immediate_uses): Handle propagation of pointer constants.
2243         (raise_value): Do not restrict propagation of pointer constants.
2244         * tree-ssanames.c (duplicate_ssa_name): New function.
2245         * tree.h (duplicate_ssa_name): Declare.
2246
2247 2004-06-17  David Ayers  <d.ayers@inode.at>
2248
2249         * c-parse.in: Unify Objective-C token names.
2250
2251 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2252
2253         Bug 14610
2254         * Makefile.in (min-insn-modes.o): Correct dependencies.
2255         * real.c (encode_ieee_extended, decode_ieee_extended): Always
2256         produce/consume 12-byte little-endian Intel format.
2257         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
2258         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
2259         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
2260         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
2261         New functions which convert between 12-byte little-endian Intel
2262         format and the desired format.
2263         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
2264         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
2265         Update.
2266
2267 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2268
2269         * expmed.c (expand_mult_const): In sanity check, compare only
2270         the bits of val and val_so_far that are significant in the
2271         result mode.
2272
2273 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
2274
2275         * tree-ssa-pre.c:  Update comments.
2276         (val_expr_pair_eq): Factor code from here.
2277         (expr_pred_trans_eq): and here.
2278         (expressions_equal_p): To here.
2279         (print_value_set): Print value for expression.
2280         (phi_trans_lookup): Rename some variables.
2281         (lookup): Ditto.
2282         (value_exists_in_set_bitmap): Ditto.
2283         (value_remove_from_set_bitmap): Ditto.
2284         (value_insert_into_set_bitmap): Ditto.
2285
2286 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
2287
2288         * config/s390/s390-modes.def (CCL3mode): New machine mode.
2289         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
2290         (s390_alc_comparison, s390_slb_comparison): Likewise.
2291         (s390_branch_condition_mask): Likewise.
2292         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
2293         ("*subsi3_cc2", "*subsi3_cconly2"): New.
2294
2295         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
2296         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
2297         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2298         Handle SIGN_EXTEND and ZERO_EXTEND.
2299
2300         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
2301         * config/s390/s390.c (s390_expand_addcc): New function.
2302         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
2303         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
2304         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
2305
2306 2004-06-17  Ben Elliston  <bje@au.ibm.com>
2307
2308         * tree-alias-common.c: Add whitespace.
2309         * tree-inline.c: Correct comment about this file's purpose.
2310         * tree-optimize.c: Likewise.
2311         * tree-tailcall.c: Likewise.
2312
2313         * tree-alias-ander.h: Add standard top-of-file comment.
2314         * tree-alias-common.h: Likewise.
2315         * tree-alias-type.h: Likewise.
2316
2317 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2318
2319         * tree-ssa-pre.c (compute_avail): Value number uses as well.
2320         Strip useless type conversions.
2321         Casts have to be treated slightly different than normal unaries.
2322
2323 2004-06-16  Richard Henderson  <rth@redhat.com>
2324
2325         * c-common.def (COMPOUND_STMT): Remove.
2326         * c-common.c (finish_fname_decls): Don't look through it.
2327         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
2328         * c-common.h (COMPOUND_BODY): Remove.
2329         (c_common_stmt_codes): Remove COMPOUND_STMT.
2330         * c-dump.c (c_dump_tree): Likewise.
2331         * c-gimplify.c (c_gimplify_stmt): Likewise.
2332         * c-pretty-print.c (pp_c_statement): Likewise.
2333         * tree.h (DECL_SAVED_TREE): Update commentary.
2334         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
2335         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
2336         (GOTO_EXPR): Rename from GOTO_STMT.
2337         (GOTO_FAKE_P): Remove.
2338         (COMPOUND_STMT): Remove.
2339         (HANDLER): Update wrt COMPOUND_STMT.
2340         (STMT_EXPR): Likewise.
2341         (LABEL_EXPR): Rename from LABEL_STMT.
2342         (SCOPE_STMT): Remove.
2343         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
2344         through COMPOUND_STMT.
2345
2346 2004-06-16  Richard Henderson  <rth@redhat.com>
2347
2348         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
2349         c_finish_while_stmt_cond): Remove decls.
2350         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
2351         * c-typeck.c (c_begin_if_stmt): Return void.
2352         (c_begin_else): Tidy.  Save stmt_count.
2353         * c-tree.h (c_begin_if_stmt): Update decl.
2354
2355         * objc/objc-act.c (objc_build_try_enter_fragment,
2356         objc_build_extract_fragment, objc_build_try_epilogue,
2357         objc_build_catch_stmt, objc_build_catch_epilogue,
2358         objc_build_finally_prologue, objc_build_finally_epilogue): Update
2359         for if builder function changes.
2360
2361 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
2362
2363         * config/s390/s390.c (struct machine_function):  New member
2364         last_restore_gpr.
2365         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
2366         Do not modify machine->save_return_addr_p or regs_ever_live.
2367         Fill in machine->last_restore_gpr.
2368         (s390_optimize_prolog): Use s390_frame_info to compute registers
2369         to save/restore, remove duplicated code.
2370         (s390_arg_frame_offset): Use s390_frame_info to compute frame
2371         size, remove duplicated code.
2372         (s390_emit_prologue): Adapt s390_frame_info call.  Update
2373         machine->save_return_addr_p and regs_ever_live.
2374         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
2375         machine->last_save_gpr.
2376
2377 2004-06-16  Richard Henderson  <rth@redhat.com>
2378
2379         * c-parse.in (if_stmt_locus): Remove.
2380         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
2381         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
2382         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
2383         empty_locus.  Add stmt_count, saw_else.
2384         (c_begin_if_stmt): Push if_stack here.
2385         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
2386         (c_finish_then, c_finish_else): Record empty_locus.
2387         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
2388         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
2389         if or else body.
2390         * c-tree.h: Update prototypes.
2391
2392 2004-06-16  Steven Bosscher  <stevenb@suse.de>
2393
2394         * tree.h (PHI_CHAIN): New.
2395         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
2396         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
2397         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
2398         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
2399         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
2400         when traversing a list of PHI_NODEs.
2401
2402 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
2403
2404         PR target/13292
2405         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
2406         on -msoft-float.
2407         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
2408         68040 and soft-float.
2409         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
2410         in the TARGET_68040_ONLY case.
2411
2412 2004-06-16 Peter Barada  <peter@the-baradas.com>
2413
2414         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
2415         (movsi_cf): Make named, don't match TARGET_CFV4.
2416         (pushexthisi_const): Use mov3q if possible.
2417         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
2418         to special case mvz.w for ColdFire V4.
2419         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
2420         to special case mvz.b for ColdFire V4.
2421         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
2422         divide.
2423         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
2424         * config/m68k/m68k.c(valid_mov3q_const):  New function.
2425         (const_method): SWAP is valid for ColdFire.
2426         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
2427         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
2428
2429 2004-06-16  Richard Henderson  <rth@redhat.com>
2430
2431         * c-common.def (CASE_LABEL): Remove.
2432         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
2433         (match_case_to_enum_1): Likewise.
2434         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
2435         * c-dump.c (c_dump_tree): Likewise.
2436         * c-gimplify.c (c_gimplify_stmt): Likewise.
2437         * c-pretty-print.c (pp_c_statement): Likewise.
2438         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
2439         * tree.h (CASE_LOW): Update commentary.
2440
2441 2004-06-16  Richard Henderson  <rth@redhat.com>
2442
2443         * c-common.def (ASM_STMT): Remove.
2444         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
2445         * c-dump.c (c_dump_tree): Likewise.
2446         * c-gimplify.c (c_gimplify_stmt): Likewise.
2447         * c-pretty-print.c (pp_c_statement): Likewise.
2448         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
2449         * tree.h: Fix commentary.
2450
2451 2004-06-16  Richard Henderson  <rth@redhat.com>
2452
2453         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
2454         * c-common.c (c_add_case_label): Use LABEL_EXPR.
2455         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
2456         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
2457         * c-dump.c (c_dump_tree): Likewise.
2458         * c-gimplify.c (c_gimplify_stmt): Likewise.
2459         * c-pretty-print.c (pp_c_statement): Likewise.
2460         * c-parse.in (stmt): Use GOTO_EXPR.
2461         (label): Use LABEL_EXPR.
2462         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
2463         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
2464
2465 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2466
2467         * cfgcleanup.c (try_simplify_condjump): Update test to make
2468         sure we have a conditional branch around am unconditional branch.
2469
2470 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2471
2472         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2473
2474 2004-06-16  Dale Johannesen  <dalej@apple.com>
2475
2476         * loop.c (loop_givs_reduce): Avoid miscompilation of
2477         loops entered at bottom.
2478
2479 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2480
2481         * cfglayout.c (fixup_reorder_chain): Handle case where the
2482         destination of E_FALL is EXIT_BLOCK_PTR.
2483
2484 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2485
2486         PR target/15653
2487         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
2488         after shifts before asm.
2489
2490 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2491
2492         PR tree-optimization/15993
2493         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
2494         destination is unchanged.
2495
2496 2004-06-16  Andreas Jaeger  <aj@suse.de>
2497
2498         * doc/install.texi (Configuration): Update description for
2499         --enable-version-specific-runtime-libs.
2500
2501 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2502
2503         * doc/install.texi: boehm-gc now uses automake 1.8.5.
2504
2505 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2506
2507         * toplev.h (rest_of_compilation): Adjust prototype.
2508
2509 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2510
2511         * coverage.c: Remove argument to rest_of_compilation.
2512         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
2513         * passes.c (rest_of_compilation): Remove argument.
2514         (pass_rest_of_compilation): New.
2515         (rest_of_handle_final, rest_of_handle_delay_slots,
2516         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
2517         rest_of_handle_machine_reorg, rest_of_handle_regrename
2518         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
2519         rest_of_handle_regmove, rest_of_handle_tracer
2520         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
2521         rest_of_handle_web, rest_of_handle_branch_prob
2522         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
2523         rest_of_handle_addressof, rest_of_handle_jump_bypass
2524         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
2525         Check that the two arguments are actually superfluous.
2526         * tree-optimize.c (register_dump_files): Add properties argument.
2527         Track validity of passes.  Only initialize dump files for
2528         tree-based passes.  Store the full set of provided passes in
2529         the pass.
2530         (init_tree_optimization_passes): Register pass_expand and
2531         pass_rest_of_compilation.
2532         (execute_one_pass): Do not track the presence of required properties
2533         here.  Set in_gimple_form.  Do not update current_properties.
2534         (current_properties): Remove.
2535         (set_save_expr_context): Remove.
2536         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
2537         expand to RTL here, and do not call rest_of_compilation.  Push
2538         GGC context even before gimplification.
2539         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
2540         (pass_expand, pass_rest_of_compilation): Declare.
2541
2542 2004-06-15  Jeff Law  <law@redhat.com>
2543
2544         * fold-const.c (swap_tree_comparison): No longer static.
2545         (tree_swap_operands_p): Similarly.  Return true if both operands
2546         are SSA_NAMEs and the first operand has a higher version number than
2547         the second operand.
2548         * tree.h (swap_tree_comparison): Prototype.
2549         (tree_swap_operands_p): Prototype.
2550         * tree-ssa-operands.c (get_expr_operands): For commutative
2551         operators and relational comparisons, canonicalize the
2552         order of the operands.
2553
2554 2004-06-15  Richard Henderson  <rth@redhat.com>
2555
2556         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
2557         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
2558         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
2559         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
2560         (finish_fname_decls, fname_decl): Use statement_lists.
2561         (c_expand_expr_stmt): Don't set last_expr_type.
2562         (c_type_hash): Fix indentation.
2563         (c_safe_from_p): Don't follow TREE_CHAIN.
2564         (c_tree_chain_matters_p): Remove.
2565         * c-common.def (SCOPE_STMT): Remove.
2566         (CLEANUP_STMT): Redefine to contain its own body.
2567         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
2568         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
2569         Add x_cur_stmt_list.
2570         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
2571         (cur_stmt_list): New.
2572         (STATEMENT_LIST_STMT_EXPR): New.
2573         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
2574         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
2575         (CLEANUP_BODY): New.
2576         (CLEANUP_DECL): Move to operand 2.
2577         (c_common_stmt_codes): Remove SCOPE_STMT.
2578         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
2579         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
2580         (c_push_function_context, c_pop_function_context): Don't save it.
2581         (finish_decl): Set TREE_USED on the decl for a cleanup.
2582         Use push_cleanup.
2583         (store_parm_decls): Use statement lists.
2584         (finish_function): Remove compstmt rule workaround.  Use statement
2585         lists.  Call finish_fname_decls after finalizing the body.
2586         (c_begin_compound_stmt): Move to c-typeck.c.
2587         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
2588         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
2589         (c_genericize): Invoke them.
2590         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
2591         (c_build_bind_expr): Export.
2592         (gimplify_block, gimplify_cleanup): Remove.
2593         (gimplify_condition): Use gimplify_stmt.
2594         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
2595         (gimplify_if_stmt): Remove recursion hack.
2596         (c_gimplify_expr): Remove STMT_EXPR handling.
2597         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
2598         (is_last_stmt_of_scope): Remove.
2599         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
2600         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
2601         c_end_compound_stmt.
2602         * c-objc-common.c (build_cdtor): Likewise.
2603         * c-parse.in (primary): Use c_finish_stmt_expr.
2604         (push_scope, pop_scope): Remove.
2605         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
2606         (c99_block_end, compstmt): Use c_end_compound_stmt.
2607         (c99_block_lineno_labeled_stmt): Likewise.
2608         (compstmt_primary_start): Use c_begin_stmt_expr.
2609         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2610         (do_stmt_start): Fill in body directly.
2611         (lineno_stmt): Avoid setting lineno on constants.
2612         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2613         Remove SCOPE_STMT.
2614         * c-semantics.c (begin_stmt_tree): Remove.
2615         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2616         (add_stmt): Use statement lists.
2617         (add_scope_stmt, finish_stmt_tree): Remove.
2618         (push_cleanup): New.
2619         * c-tree.h: Move some decls from c-common.h.
2620         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2621         (do_case, c_finish_case): Likewise.
2622         (c_finish_then): Take body for then as argument.
2623         (c_finish_else): Similarly.
2624         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2625         c_finish_for_stmt_incr, c_finish_for_stmt): New.
2626         (c_begin_stmt_expr, c_finish_stmt_expr): New.
2627         (c_begin_compound_stmt): Do scope management.
2628         (c_end_compound_stmt): New.
2629         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2630         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2631         Look through exception handling constructs.
2632         (gimplify_bind_expr): Accept temporary argument.
2633         (gimplify_target_expr): Special case BIND_EXPR bodies.
2634         (gimplify_expr): Handle fallback == fb_none like a statement.
2635         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2636         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2637         * langhooks.h (tree_chain_matters_p): Remove.
2638         * stub-objc.c (objc_clear_super_receiver): New.
2639         * tree-gimple.h (voidify_wrapper_expr): Update decl.
2640         (append_to_statement_list, append_to_statement_list_force): Move
2641         to tree-iterator.h.
2642         * tree-inline.c (expand_call_inline): Update call.
2643         (clone_body): Use statement lists.
2644         (walk_tree): Don't check tree_chain_matters_p.
2645         (copy_tree_r): Likewise.
2646         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2647         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2648         * tree-iterator.h (append_to_statement_list,
2649         append_to_statement_list_force): Moved from tree-gimple.h.
2650         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2651         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2652         (objc_enter_block): Likewise.
2653         (objc_exit_block): Use c_end_compound_stmt.
2654         (objc_build_try_enter_fragment): Add #error and comment for
2655         rewriting for OBJCPLUS.
2656         (objc_build_extract_fragment, objc_build_try_epilogue,
2657         objc_build_catch_stmt, objc_build_finally_prologue,
2658         objc_build_finally_epilogue): Update for C statement builders.
2659         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2660         Remove.
2661
2662 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2663
2664         * df.c (df_reg_clobber_gen): Removed.
2665         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2666         Make more effective for hard regs.
2667         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2668
2669 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
2670
2671         * c-pragma.h (c_lex_string_translate): Change type to int.
2672         * c-parse.in: Change all assignments of c_lex_string_translate
2673         to true and false to 1 and 0.
2674         * c-lex.c (c_lex_string_translate): Likewise.
2675         (lex_string): Convert string without translation in the -1
2676         case.
2677
2678 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
2679
2680         * convert.h: Add include guards
2681
2682 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2683
2684         * tree-flow-inline.h: Document all functions.
2685
2686 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2687
2688         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2689         * tree-dfa.c (create_stmt_ann): Ditto.
2690         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2691         * tree-inline.c (estimate_num_insns_1): Ditto.
2692         * tree.c (tree_size): Ditto.
2693         (make_node_stat): Ditto.
2694         (tree_node_structure): Ditto.
2695         (ephi_node_elt_check_failed): Remove.
2696         (is_essa_node): Ditto.
2697         * tree.def (EPHI_NODE): Ditto.
2698         (EEXIT_NODE): Ditto.
2699         (EUSE_NODE): Ditto.
2700         (EKILL_NODE): Ditto.
2701         * tree.h (EREF_NODE_CHECK): Remove.
2702         (EPHI_NODE_ELT_CHECK): Ditto.
2703         (struct tree_eref_common): Ditto.
2704         (struct tree_euse_node): Ditto.
2705         (struct ephi_arg_d): Ditto.
2706         (struct tree_ephi_node): Ditto.
2707         (ephi_node_elt_check_failed): Remove prototype.
2708         (is_essa_node): Ditto.
2709         (enum tree_node_structure_enum): Remove TS_E*_NODE.
2710         (union tree_node): Remove E*_NODE uses.
2711
2712 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2713
2714         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2715         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2716         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2717         Likewise.
2718         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2719         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2720         expand_builtin_strcmp, expand_builtin_strncmp,
2721         expand_builtin_frame_address): Likewise.
2722         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2723         insert_one_insn): Likewise.
2724         * calls.c (prepare_call_address, precompute_register_parameters,
2725         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2726         * cfganal.c (flow_active_insn_p): Likewise.
2727         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2728         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2729         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2730         make_extraction, recog_for_combine, gen_lowpart_for_combine,
2731         simplify_comparison, record_dead_and_set_regs_1,
2732         record_dead_and_set_regs, record_promoted_value,
2733         check_promoted_subreg, get_last_value_validate, get_last_value,
2734         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2735         unmentioned_reg_p_1): Likewise.
2736         * conflict.c (mark_reg): Likewise.
2737         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2738         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2739         merge_equiv_classes, flush_hash_table, invalidate,
2740         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2741         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2742         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2743         record_jump_cond, cse_insn, addr_affects_sp_p,
2744         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2745         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2746         cse_cc_succs, cse_condition_code_reg): Likewise.
2747         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2748         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2749         cselib_record_set, cselib_record_sets): Likewise.
2750         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2751         dbxout_block): Likewise.
2752         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2753         * dojump.c (do_jump): Likewise.
2754         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2755         is_based_loc, rtl_for_decl_location): Likewise.
2756         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2757         set_decl_incoming_rtl, mark_user_reg): Likewise.
2758         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2759         copy_to_suggested_reg, allocate_dynamic_stack_space,
2760         probe_stack_range, hard_function_value): Likewise.
2761         * expmed.c (store_bit_field, store_fixed_bit_field,
2762         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2763         extract_split_bit_field, expand_divmod, emit_store_flag_force):
2764         Likewise.
2765         * expr.c (convert_move, convert_modes,
2766         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2767         use_group_regs, emit_move_insn, emit_move_insn_1,
2768         compress_float_constant, push_block, emit_single_push_insn,
2769         emit_push_insn, get_subtarget, expand_assignment, store_expr,
2770         store_constructor, store_field, force_operand, safe_from_p,
2771         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2772         Likewise.
2773         * final.c (profile_function, final_scan_insn, alter_subreg,
2774         get_mem_expr_from_op, output_asm_operand_names, output_operand,
2775         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2776         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2777         find_regno_partial, propagate_one_insn, init_propagate_block_info,
2778         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2779         attempt_auto_inc, find_auto_inc, mark_used_regs,
2780         count_or_remove_death_notes_bb): Likewise.
2781         * function.c (find_temp_slot_from_address, update_temp_slot_address,
2782         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2783         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2784         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2785         purge_single_hard_subreg_set, instantiate_decl,
2786         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2787         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2788         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2789         expand_function_start, diddle_return_value, clobber_return_register,
2790         expand_function_end, keep_stack_depressed, handle_epilogue_set,
2791         update_epilogue_consts): Likewise.
2792         * genemit.c (gen_exp, gen_insn): Likewise.
2793         * genrecog.c (make_insn_sequence): Likewise.
2794         * global.c (global_conflicts, expand_preferences, mark_reg_store,
2795         mark_reg_conflicts, set_preference, reg_becomes_live,
2796         build_insn_chain, mark_reg_change): Likewise.
2797         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2798         Likewise.
2799         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2800         Likewise.
2801         * integrate.c (copy_rtx_and_substitute, try_constants,
2802         subst_constants, mark_stores, allocate_initial_values): Likewise.
2803         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2804         delete_computation, rtx_renumbered_equal_p, true_regnum,
2805         reg_or_subregno): Likewise.
2806         * lcm.c (reg_dies, reg_becomes_live): Likewise.
2807         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2808         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2809         wipe_dead_reg, no_conflict_p): Likewise.
2810         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2811         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2812         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2813         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2814         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2815         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2816         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2817         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2818         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2819         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2820         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2821         try_swap_copy_prop): Likewise.
2822         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2823         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2824         Likewise.
2825         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2826         reload_cse_simplify_operands, reload_combine,
2827         reload_combine_note_store, reload_combine_note_use,
2828         reload_cse_move2add, move2add_note_store): Likewise.
2829         * print-rtl.c (print_rtx): Likewise.
2830         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2831         contains_pseudo, handle_asm_insn): Likewise.
2832         * ra-debug.c (ra_print_rtx_object, dump_constraints,
2833         dump_static_insn_cost): Likewise.
2834         * ra-rewrite.c (slots_overlap_p, emit_colors,
2835         remove_suspicious_death_notes): Likewise.
2836         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2837         register_operand, scratch_operand, nonmemory_operand,
2838         constrain_operands): Likewise.
2839         * reg-stack (check_asm_stack_operands, remove_regno_note,
2840         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2841         subst_asm_stack_regs): Likewise.
2842         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2843         record_address_regs, reg_scan_mark_refs): Likewise.
2844         * regmove.c (discover_flags_reg, replacement_quality,
2845         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2846         fixup_match_1): Likewise.
2847         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2848         kill_set_value, copyprop_hardreg_forward_1): Likewise.
2849         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2850         reload_inner_reg_of_subreg, can_reload_into, push_reload,
2851         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2852         operands_match_p, decompose, find_reloads, find_reloads_toplev,
2853         find_reloads_address, subst_indexed_address, find_reloads_address_1,
2854         find_reloads_subreg_address, find_replacement,
2855         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2856         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2857         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2858         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2859         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2860         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2861         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2862         do_output_reload, emit_reload_insns, gen_reload,
2863         delete_address_reloads_1, inc_for_reload): Likewise.
2864         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2865         update_reg_unused_notes, fill_slots_from_thread): Likewise.
2866         * resource.c (update_live_status, mark_referenced_resources,
2867         mark_set_resources, mark_target_live_regs): Likewise.
2868         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2869         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2870         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2871         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2872         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2873         parms_set, find_first_parameter_load, keep_with_call_p,
2874         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2875         num_sign_bit_copies1): Likewise.
2876         * rtlhooks.c (gen_lowpart_general): Likewise.
2877         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2878         sched_analyze): Likewise.
2879         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2880         Likewise.
2881         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2882         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2883         simplify_binary_operation, simplify_const_relational_operation,
2884         simplify_subreg): Likewise.
2885         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2886         expand_end_stmt_expr, expand_return, expand_decl,
2887         expand_anon_union_decl): Likewise.
2888         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2889         find_splittable_regs, find_splittable_givs, find_common_reg_term,
2890         loop_iterations): Likewise.
2891         * var-tracking.c (variable_union, variable_part_different_p,
2892         variable_different_p, count_uses, add_uses, add_stores,
2893         compute_bb_dataflow, set_variable_part, delete_variable_part,
2894         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2895         Likewise.
2896         * varasm.c (assemble_variable): Likewise.
2897
2898 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
2899
2900         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2901         definition.
2902         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2903         #undef and #if 0'd definition.
2904
2905 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2906
2907         * combine.c (distribute_notes): Comment typo fix.
2908
2909 2004-06-15  Roger Sayle  <roger@eyesopen.com>
2910
2911         * expmed.c (synth_mult): Mask bits of the multiplier to the
2912         machine mode of the multiplication.  Don't consider shifts
2913         by more than (or equal to) the width of the operation's mode.
2914
2915 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2916
2917         * doc/install.texi: Yet another update for autoconf
2918         and automake versions.
2919
2920 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2921
2922         * function.h (struct function): Remove cannot_inline field.
2923         (current_function_cannot_inline): Remove.
2924         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2925         Simplify conditionals to ignore warn_return_type.
2926         * tree-optimize.c (tree_rest_of_compilation): Do not reset
2927         DECL_DEFER_OUTPUT.
2928         * objc/objc-act.c (build_module_descriptor, finish_method_def):
2929         Do not set current_function_cannot_inline.
2930
2931 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2932
2933         * cfglayout.c (fixup_reorder_chain): Handle case where the
2934         destination of E_TAKEN is EXIT_BLOCK_PTR.
2935
2936 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
2937
2938         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2939
2940 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2941
2942         * fold-const.c (operand_equal_p): Update comment.
2943
2944 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2945
2946         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2947         (INCOMING_RETURN_ADDR_RTX): Define.
2948         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2949         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2950         __builtin_return_address(0).
2951         (m32r_return_addr): Added for __builtin_return_address(0).
2952         (m32r_reload_lr): Ditto.
2953
2954         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2955
2956 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2957
2958         * doc/install.texi (Prerequisites): Update libbanshee,
2959         fastjar, libcpp, libjava/libltdl entries to
2960         automake 1.8.5.
2961
2962 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2963             Olivier Hainque  <hainque@act-europe.fr>
2964
2965         * function.c (fixup_var_refs): Also adjust the start of sequence
2966         after fixing up the insns.
2967
2968 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2969
2970         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2971
2972 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
2973
2974         * doc/install.texi (Prerequisites): Update libstdc++ entry to
2975         automake 1.8.5.
2976
2977 2004-06-14  Eric Christopher  <echristo@redhat.com>
2978
2979         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2980         to -mtpf-trace (-mno-tpf-trace).
2981         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2982         documentation.
2983
2984 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2985
2986         * real.c: Fix bit count in head comment.
2987
2988 2004-06-14  Jeff Law  <law@redhat.com>
2989
2990         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2991         PHIs where the destination or an argument is marked with
2992         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2993
2994 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2995
2996         PR middle-end/15945
2997         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2998         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2999
3000 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3001
3002         * opts.sh (var_args): Fix regexp.
3003
3004 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
3005
3006         PR target/15178
3007         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3008
3009 2004-06-14  Paul Brook  <paul@codesourcery.com>
3010
3011         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
3012
3013 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3014
3015         * Makefile.in (FLAGS_H): New.
3016         (flags.h): Replace by FLAGS_H.
3017         * c.opt: Document Var, VarExists, Init and Report attributes.
3018         * common.opt: Fill the values of the attributes.
3019         * diagnostic.c (flag_fatal_errors): Do not define.
3020         * except.c (flag_non_call_exceptions): Do not define.
3021         * flags.h: Include options.h.  Remove declarations conflicting with
3022         the automatically defined ones.
3023         * opts.c: Remove automatically defined variables.
3024         (handle_option): Perform default initialization.
3025         (common_handle_option): Do not handle options covered by the
3026         default initialization.
3027         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
3028         fields.
3029         (CL_REPORT): New.
3030         * opts.sh: Generate variable declarations, handle CL_REPORT.
3031         * toplev.c: Remove automatically defined variables.
3032         (f_options): Removed.
3033         (print_switch_values): Use cl_options instead of f_options.
3034         * toplev.h (version_flag): Declaration removed.
3035
3036 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
3037
3038         * config/sparc/sparc.h: Correct comment about availability of
3039         little endian option.
3040
3041         * config.gcc: Remove sparc64-*-aout*.
3042         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
3043         * config/sparc/sp64-aout.h: Remove.
3044         * config/sparc/aout.h: Remove.
3045
3046 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
3047
3048         * config/s390/s390.c: Include "tree-gimple.h".
3049         (s390_gimplify_va_arg): New function.
3050         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3051         (s390_va_arg): Remove.
3052         * config/s390/s390-protos.h (s390_va_arg): Remove.
3053         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
3054
3055 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
3056
3057         * basic-block.h (could_fall_through): Declare.
3058         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
3059         Fail if the source already has a fallthrough edge to the exit
3060         block pointer.
3061         (could_fall_through): New function.
3062         * cfgbuild.c (make_edges): Check if we already have a fallthrough
3063         edge to the exit block pointer.
3064         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
3065         not called before reload has completed.
3066         Handle special case of first block having a fall-through exit edge.
3067         (cfg_layout_finalize): Don't call it before reload or if we have
3068         rtl epilogues.
3069         (fixup_reorder_chain): A fall through to the exit block does not
3070         require the block to come last.  Add sanity checks.
3071         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
3072         edges to the exit block.
3073         * function.c (cfglayout.h): #include.
3074         (thread_prologue_and_epilogue_insns): If we have neither return nor
3075         epilogue, but a fall through to the exit block from mid-function,
3076         force a non-fall-through exit.
3077         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
3078
3079 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
3080
3081         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
3082         for power5 and rs64a.  Correct condition for default.  Correct power3,
3083         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
3084
3085 2004-06-13  Steven Bosscher <stevenb@suse.de>
3086
3087         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
3088         Revert previous change, don't use CALL_P.
3089
3090 2004-06-13  Jason Merrill  <jason@redhat.com>
3091
3092         * tree.h: Move std_gimplify_va_arg_expr protoype here.
3093         * tree-gimple.h: From here.
3094
3095 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3096
3097         Fix PR tree-optimization/15979
3098         Fix PR tree-optimization/15981
3099         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
3100         try to insert values undefined along some path.
3101
3102 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3103
3104         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
3105         are available everywhere too.
3106
3107 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
3108
3109         * fold-const.c (fold_checksum_tree <case 't'>): Only
3110         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
3111         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
3112         EXPR is an INTEGERAL_TYPE or a scalar float type.
3113
3114 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
3115
3116         * tree-sra.c (tree_sra): Update documentation.
3117
3118 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3119
3120         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
3121         function_types_compatible_p, type_lists_compatible_p): Remove
3122         flags parameter.
3123         * c-tree.h (comptypes): Likewise.
3124         (COMPARE_STRICT): Remove.
3125         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
3126         callers changed.
3127
3128 2004-06-13  Eric Christopher  <echristo@redhat.com>
3129
3130         * c-decl.c (diagnose_mismatched_decls): Improve error message.
3131         Remove unused code.
3132         * c-typeck.c (comptypes): Add location in standard we're checking.
3133
3134 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3135
3136         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
3137         version 3.3.4.
3138
3139 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3140
3141         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
3142         index by machine mode.
3143         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
3144         tables inside the loop over machine modes.
3145         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
3146         expand_divmod): Index shift*_cost by the appropriate machine mode.
3147
3148 2004-06-12  Eric Christopher  <echristo@redhat.com>
3149
3150         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
3151         * config/s390/s390.md: Ditto.
3152         * config/s390/s390.c: Ditto.
3153         (s390_frame_info): Conditionalize frame and setup info on
3154         TARGET_TPF_PROFILING.
3155         (s390_arg_frame_offset): Ditto.
3156
3157 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3158
3159         * fold-const.c (omit_two_operands): New function.
3160         * tree.h (omit_two_operands): Prototype here.
3161         * builtins.c (fold_builtin_unordered_cmp): New function to lower
3162         C99 unordered comparison builtins to the appropriate tree nodes.
3163         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
3164         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
3165         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
3166         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
3167         (simplify_builtin_memcmp, simplify_builtin_strncmp,
3168         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
3169         omit_two_operands function to build the required COMPOUND_EXPRs.
3170
3171 2004-06-12  Steven Bosscher <stevenb@suse.de>,
3172             Andreas Jaeger  <aj@suse.de>
3173
3174         * gcse.c (record_set_info): Use predicates like REG_P.
3175         (mems_conflict_for_gcse_p): Likewise.
3176         (load_killed_in_block_p): Likewise.
3177         (hash_expr_1): Likewise.
3178         (insert_set_in_table): Likewise.
3179         (gcse_constant_p): Likewise.
3180         (hash_scan_set): Likewise.
3181         (hash_scan_insn): Likewise.
3182         (canon_list_insert): Likewise.
3183         (record_last_mem_set_info): Likewise.
3184         (record_last_set_info): Likewise.
3185         (compute_hash_table_work): Likewise.
3186         (mark_set): Likewise.
3187         (mark_clobber): Likewise.
3188         (mark_oprs_set): Likewise.
3189         (compute_transp): Likewise.
3190         (find_avail_set): Likewise.
3191         (cprop_insn): Likewise.
3192         (do_local_cprop): Likewise.
3193         (cprop): Likewise.
3194         (find_implicit_sets): Likewise.
3195         (find_bypass_set): Likewise.
3196         (bypass_conditional_jumps): Likewise.
3197         (insert_insn_end_bb): Likewise.
3198         (pre_insert_copy_insn): Likewise.
3199         (compute_transpout): Likewise.
3200         (next_ls_expr): Likewise.
3201         (invalidate_any_buried_refs): Likewise.
3202         (compute_ld_motion_mems): Likewise.
3203         (reg_set_info): Likewise.
3204         (reg_clear_last_set): Likewise.
3205         (find_moveable_store): Likewise.
3206         (compute_store_table): Likewise.
3207         (find_loads): Likewise.
3208         (store_killed_in_insn): Likewise.
3209         (insert_insn_start_bb): Likewise.
3210         (reg_set_between_after_reload_p): Likewise.
3211         (reg_used_between_after_reload_p): Likewise.
3212         (is_jump_table_basic_block): Likewise.
3213         (gcse_after_reload): Likewise.
3214         (hash_scan_set_after_reload): Likewise.
3215         (compute_hash_table_after_reload): Likewise.
3216
3217 2004-06-12  Steven Bosscher  <stevenb@suse.de>
3218
3219         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
3220         (INSN_P): Don't look at the rtx code class, just explicitly
3221         check for one of the tree RTX_INSN codes.
3222
3223 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3224
3225         * c-typeck.c (default_function_array_conversion): Use
3226         build_pointer_type not TYPE_POINTER_TO.
3227
3228 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3229
3230         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3231         * configure, config.in: Regenerate.
3232         * system.h: Unconditionally define bool as unsigned char,
3233         BOOL_BITFIELD as unsigned int.
3234         * domwalk.h: Use BOOL_BITFIELD.
3235
3236 2004-06-12  Andreas Jaeger  <aj@suse.de>
3237
3238         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
3239         * libgcc-darwin.ver: Likewise.
3240
3241 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
3242
3243         * reload.c (find_reloads): Force reload for pseudo registers on big
3244         endian machines.
3245
3246 2004-06-11  Steven Bosscher <stevenb@suse.de>
3247
3248         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
3249         Don't try to mark anything control dependent on the entry or
3250         exit blocks.
3251
3252 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
3253
3254         Fix Bug 15899
3255         Fix Bug 15460
3256         * tree.h (SSA_NAME_VALUE): New macro.
3257         (struct tree_ssa_name): Add value_handle member.
3258         * tree-ssa-pre.c: Replaced.
3259         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
3260         (struct cst_ann_d): New.
3261         (struct expr_ann_d): New.
3262         (union tree_ann_d): Add cst_ann, expr_ann.
3263         * tree-dfa.c (create_cst_ann): New function.
3264         (create_expr_ann): Ditto.
3265         * tree-flow-inline.h (cst_ann): New function.
3266         (expr_ann): Ditto.
3267         (get_cst_ann): Ditto.
3268         (get_expr_ann): Ditto..
3269
3270 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3271
3272         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
3273         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
3274         _U_Qfcmp library function.
3275         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
3276         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
3277
3278         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
3279         unspec used for loading address from DLT.
3280         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
3281         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
3282         Don't use short code sequence when loading the address of a nonlocal
3283         label.
3284         (nonlocal_goto): New expander.
3285         (indirect_goto): New jump pattern for nonlocal gotos.
3286         (short_jump): Remove extra whitespace.
3287         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
3288         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
3289         pattern.
3290
3291 2004-06-11  Roger Sayle  <roger@eyesopen.com>
3292
3293         * expmed.c (synth_mult): Add an additional MODE argument for the
3294         machine mode of the multiplication.  Update recursive calls.  Use
3295         mode instead of word_mode for determining operation costs.
3296         (choose_mult_variant): Update calls to synth_mult with "mode".
3297
3298 2004-06-11  Richard Henderson  <rth@redhat.com>
3299
3300         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
3301         and makes_aliased_stores.
3302
3303 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3304
3305         * doc/install.text (--enable-shared): Fix typo.
3306
3307 2004-06-11  Richard Henderson  <rth@redhat.com>
3308
3309         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
3310         argument.  Use internal post for call to gimplify_expr.  Tidy
3311         rounded type size computation.
3312         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
3313         get_initialized_tmp_var.
3314
3315 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3316
3317         * doc/install.texi (--enable-shared): Update libobjc's shared library
3318         status.  Remove reference to libf2c.
3319
3320 2004-06-11  Jason Merrill  <jason@redhat.com>
3321
3322         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3323         * config/i386/i386.c (ix86_va_arg): Remove.
3324         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3325         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
3326         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3327         * config/alpha/alpha.c (alpha_va_arg): Remove.
3328         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3329         * config/sparc/sparc.c (sparc_va_arg): Remove.
3330
3331         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
3332         assignment might throw.
3333         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
3334         expressions.
3335
3336 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
3337
3338         PR 15886:
3339         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
3340
3341 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3342
3343         * doc/install.texi (Prerequisites): Update documentation of
3344         required versions of autoconf and automake.  Remove mention of
3345         libf2c.
3346
3347 2004-06-11  Jason Merrill  <jason@redhat.com>
3348
3349         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
3350         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3351
3352 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
3353
3354         * typeclass.h: Add GPL plus exception license.  Add include
3355         guard.
3356
3357 2004-06-10  Jason Merrill  <jason@redhat.com>
3358
3359         * gimplify.c (gimplify_modify_expr): Don't force a temporary
3360         of an aggregate_value_p type.
3361
3362 2004-06-10  Jeff Law  <law@redhat.com>
3363
3364         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
3365         code when we are in gimple form.
3366
3367 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
3368
3369         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
3370         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
3371         (highest_ssa_version): Remove.
3372         * tree-outof-ssa.c (new_temp_expr_table): Replace
3373         highest_ssa_version with num_ssa_names.
3374         (dump_replaceable_exprs): Likewise.
3375         (rewrite_vars_out_of_ssa): Likewise.
3376         * tree-ssa-ccp.c (initialize): Likewise
3377         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3378         * tree-ssa-dce.c (tree_dce_init): Likewise.
3379         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3380         * tree-ssa-live.c (create_ssa_var_map): Likewise.
3381         (dump_var_map): Likewise.
3382         * tree-ssa.c (verify_ssa): Likewise.
3383         (kill_redundant_phi_nodes): Likewise.
3384         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
3385         * tree-ssanames.c: Include tree-flow.h
3386         (ssa_names): New varray.
3387         (init_ssa_names): Initialize ssa_names.
3388         Reserve the first slot of the ssa_names table.
3389         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
3390         Assign version numbers using num_ssa_names.
3391
3392 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3393
3394         * doc/sourcebuild.texi (Front End): Add details of more
3395         installation documentation required.
3396
3397 2004-06-10  Brian Booth  <bbooth@redhat.com>
3398
3399         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
3400         of V_MAY_DEF and V_MUST_DEF.
3401         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
3402         num_vdefs to num_v_may_defs.
3403         (compute_immediate_uses_for_stmt): Rename occurences of vdef
3404         to v_may_def.
3405         (redirect_immediate_uses): Ditto.
3406         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
3407         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
3408         Also add code to sum up the number of v_must_defs.
3409         (vdefs_disappeared_p): Replace with...
3410         (v_may_defs_disappeared_p): This.
3411         (v_must_defs_disappeared_p): New function.
3412         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
3413         Also add code to mark new variables found in V_MUST_DEFs for
3414         renameing.
3415         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
3416         vdef_ops to v_may_def_ops.
3417         (get_vdef_ops): Replace with...
3418         (get_v_may_def_ops): This.
3419         * tree-flow-inline.h (get_vdef_ops): Replace with...
3420         (get_v_may_def_ops): This.
3421         (get_v_must_def_ops): New function.
3422         (get_vdef_result_ptr): Replace with...
3423         (get_v_may_def_result_ptr): This.
3424         (get_vdef_op_ptr): Ditto with...
3425         (get_v_may_def_op_ptr); This.
3426         (get_v_must_def_op_ptr): New function.
3427         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
3428         to v_may_def. Also add code to mark statements with
3429         V_MUST_DEFs as definition sites.
3430         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
3431         add code to register new V_MUST_DEFs made by the statement.
3432         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
3433         (check_replaceable): Rename occurences of vdef to v_may_def. Also
3434         add check for V_MUST_DEFs.
3435         (find_replaceable_in_bb): Ditto.
3436         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
3437         to v_may_def. Also add code to dump V_MUST_DEFs.
3438         * tree-sra.c (mark_all_vdefs): Replace with...
3439         (mark_all_v_may_defs): This.
3440         (mark_all_v_must_defs): New function.
3441         (create_scalar_copies): Replace call to mark_all_vdefs with
3442         calls to mark_all_v_may_defs and mark_all_v_must_defs.
3443         (scalarize_structures): Rename occurences of vdef to v_may_def.
3444         Also add a check for V_MUST_DEFs.
3445         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
3446         * tree-ssa-alias.c (global_var): Update comment.
3447         (compute_may_aliases): Ditto.
3448         (compute_points_to_and_addr_escape): Rename occurences of vdef
3449         to v_may_def. Also add code to mark variables in V_MUST_DEF
3450         operands as being written to.
3451         (group_aliases): Update comment.
3452         (maybe_create_global_var): Ditto.
3453         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
3454         Also add a check for V_MUST_DEFs on GIMPLE registers.
3455         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
3456         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
3457         to v_may_def. Also add code to mark all V_MUST_DEF operands
3458         VARYING.
3459         (initialize): Ditto.
3460         (set_rhs): Rename occurences of vdef to v_may_def. Also add
3461         code to update SSA_NAMEs in V_MUST_DEFs.
3462         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
3463         to v_may_def.
3464         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
3465         occurences of vdef to v_may_def. Also add code to mark statements
3466         with V_MUST_DEFs as necessary.
3467         (propagate_necessity): Rename occurences of vdef to v_may_def.
3468         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
3469         occurences of vdef to v_may_def. Also add code to mark operands
3470         in V_MUST_DEFs for renaming.
3471         (eliminate_redundant_computations): Rename occurences of vdef
3472         to v_may_def.
3473         (record_equivalences_from_stmt): Rename occurences of vdef
3474         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
3475         (optimize_stmt): Remove unnesessary variable vdefs. Update
3476         comment.
3477         (register_definitions_for_stmt): Rename occurences of vdef
3478         to v_may_def. Also add code to register definitions made with
3479         V_MUST_DEFs.
3480         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
3481         (fix_stmt_v_may_defs): This.
3482         (fix_phi_uses): Rename occurences of vdef to v_may_def.
3483         (dse_optimize_stmt): Ditto.
3484         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
3485         to v_may_def. Also add code to mark V_MUST_DEF operands as being
3486         used in virtual operators.
3487         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
3488         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
3489         renaming.
3490         * tree-ssa-operands.c (opf_kill_def): New flag for killing
3491         definitions.
3492         (build_vdefs): Renamed to...
3493         (build_v_may_defs): This.
3494         (build_v_must_defs): New variable.
3495         (voperands_d): Add v_must_def_ops and replace vdef_ops with
3496         v_may_def_ops.
3497         (append_vdef): Replace with...
3498         (append_v_may_def): This.
3499         (append_v_must_def): New function.
3500         (NUM_FREE): Increment for V_MUST_DEF
3501         (optype_freelist): Increment its size for V_MUST_DEF
3502         (allocate_vdef_optype): Replace with...
3503         (allocate_v_may_def_optype): This.
3504         (allocate_v_must_def_optype): New function.
3505         (free_vdefs): Replace with...
3506         (free_v_may_defs): This.
3507         (free_v_must_defs): New function.
3508         (remove_vdefs): Replace with...
3509         (remove_v_may_defs): This.
3510         (remove_v_must_defs): New function.
3511         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
3512         add code to initialize build_v_must_defs.
3513         (finalize_ssa_vdefs): Replace with...
3514         (finalize_ssa_v_may_defs): This.
3515         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
3516         (finalize_ssa_v_must_defs): New function.
3517         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
3518         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
3519         (verify_start_operands): Rename occurences of vdef to v_may_def.
3520         Also add check for build_v_must_defs.
3521         (get_stmt_operands): Rename occurences of vdef to v_may_def.
3522         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
3523         killing definitions.
3524         (get_expr_operands): Update comment and use opf_kill_def for
3525         killing definitions.
3526         (add_stmt_operand): Replace code that appends VDEFs with code
3527         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
3528         otherwise.
3529         (add_call_clobber_ops): Update comments.
3530         * tree-ssa-operands.h (vdef_optype_d): Replace with...
3531         (v_may_def_optype_d): This.
3532         (v_must_def_optype_d): New structure.
3533         (VDEF_OPS): Replace with...
3534         (V_MAY_DEF_OPS): This.
3535         (STMT_VDEF_OPS): Same with...
3536         (STMT_V_MAY_DEF_OPS): This.
3537         (NUM_VDEFS): And...
3538         (NUM_V_MAY_DEFS): This.
3539         (VDEF_RESULT_PTR): As well as...
3540         (V_MAY_DEF_RESULT_PTR): This.
3541         (VDEF_RESULT): Same goes for...
3542         (V_MAY_DEF_RESULT): This.
3543         (VDEF_OP_PTR): And...
3544         (V_MAY_DEF_OP_PTR): This.
3545         (VDEF_OP): And...
3546         (V_MAY_DEF_OP): This.
3547         (V_MUST_DEF_OPS): New macro.
3548         (STMT_V_MUST_DEF_OPS): Ditto.
3549         (NUM_V_MUST_DEFS): Ditto.
3550         (V_MUST_DEF_OP_PTR): Ditto.
3551         (V_MUST_DEF_OP): Ditto.
3552         (remove_vdefs): Replace signature with...
3553         (remove_v_may_defs): This.
3554         (remove_v_must_defs): New function signature.
3555         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
3556         with calls to remove_v_may_defs and remove_v_must_defs.
3557         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
3558         Also add code that marks left occurences of operands in V_MUST_DEFs.
3559         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
3560         to v_may_def. Also add check for V_MUST_DEFs.
3561         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
3562
3563 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
3564
3565         PR target/15653
3566         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
3567         insn.
3568
3569 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3570
3571         PR web/15263
3572         * doc/install.texi: Remove superfluous linebreak.
3573
3574 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3575
3576         * builtins.c (expand_builtin): Fall back to library function call for
3577         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
3578         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
3579         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
3580         IMAGPART_EXPR respectively.
3581
3582 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
3583
3584         * sh.c (dump_table): New argument start.  Changed caller.
3585         (fixup_mova): New function.
3586         (find_barrier): Use it.
3587         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
3588         If the label a mova refers to is above the mova itself, change
3589         the mova into a load.
3590         * sh.md (*casesi_worker): Rename to:
3591         (casesi_worker_1).
3592         (casesi_worker_2): New insn.
3593
3594 2004-06-10  Jason Merrill  <jason@redhat.com>
3595
3596         * target.h (struct gcc_target): Change gimplify_va_arg_expr
3597         hook signature.
3598         * tree-gimple.h: Adjust.
3599         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
3600         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
3601         Use fold_convert.
3602         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
3603         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
3604         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
3605         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
3606         (gimplify_va_arg_expr): Return GS_ERROR in error case.
3607         Gimplify valist rather than calling stabilize_va_list.
3608
3609 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3610
3611         * Makefile.in (df.o): Remove fibheap dependency.
3612         * df.h: Do not include sbitmap.h.
3613         (struct ref): New field "data".
3614         (DF_REF_DATA): New accessor macro.
3615         (struct df): Field "dom" removed.
3616         (df_analyze_subcfg): New function.
3617         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3618         (transfer_function): ... new type.
3619         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3620         (iterative_dataflow): ... new function.
3621         (enum set_representation, struct dataflow): New.
3622         * df.c: Do not include fibheap.h.
3623
3624         (df_reg_def_chain_clean, df_reg_use_chain_clean,
3625         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3626         prune_to_subcfg, df_bb_modify): New functions.
3627         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3628         df_refs_update, df_reg_table_realloc, df_ref_create,
3629         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3630         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3631         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3632
3633         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3634         (df_rd_transfer_function, df_ru_transfer_function,
3635         df_lr_transfer_function): Type of bitmaps changed to void *.
3636         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3637         (hybrid_search): ... new function.
3638         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3639         (iterative_dataflow): ... new function. Avoid use of fibheaps for
3640         a worklist.  Do not process basic blocks unnecessarily.
3641
3642 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3643
3644         * fold-const.c (fold_abs_const): Make extern.
3645         * tree.h (fold_abs_const): Prototype here.
3646         * builtins.c (fold_builtin_fabs): New function to transform
3647         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3648         (fold_builtin_abs): New function to transform abs, labs, llabs
3649         and imaxabs builtins into ABS_EXPR tree nodes.
3650         (expand_builtin): Fall back to a function call for abs, labs,
3651         llabs and imaxabs builtins that survive constant folding.
3652         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3653         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3654
3655 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3656
3657         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3658         leaf function without unwind info at RP 0.
3659
3660 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3661
3662         PR c++/14791
3663         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3664         (fileptr_type_node): Define.
3665         * tree.c (build_common_tree_nodes_2): Initialize
3666         fileptr_type_node to ptr_type_node.
3667         * c-common.c (c_common_nodes_and_builtins): For C++, make
3668         fileptr_type_node a distinct type copy.
3669         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3670         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3671         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3672         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3673         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3674         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3675         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3676         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3677         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3678         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3679         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3680         the above *FILEPTR* types instead of *PTR*.
3681
3682 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
3683
3684         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3685         match.
3686
3687 2004-06-09  Roger Sayle  <roger@eyesopen.com>
3688
3689         * fold-const.c (fold_not_const): New function.
3690         (fold) <ABS_EXPR>: Don't bother testing wins.
3691         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3692         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3693
3694 2004-06-09  Richard Henderson  <rth@redhat.com>
3695
3696         PR middle-end/15228
3697         * function.c (assign_parms): Always set_mem_align with the computed
3698         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
3699
3700 2004-06-09  Richard Henderson  <rth@redhat.com>
3701
3702         PR opt/15108
3703         * tree-tailcall.c (find_tail_calls): Don't check early for
3704         tail_recursion failure.
3705
3706 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
3707
3708         Move SSA_NAME annotations into tree_ssa_name.
3709
3710         * tree-dfa.c (create_ssa_name_ann): Remove.
3711         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3712         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3713         (struct ssa_name_ann_d): Remove.
3714         (union tree_ann_d): Update.
3715         (ssa_name_ann_t): Remove.
3716         * tree-ssa-alias.c: (get_ptr_info): New local function.
3717         Replace references to ssa_name_ann_t with struct ptr_info_def.
3718         * tree-ssa-operands.c (get_expr_operands): Likewise.
3719         * tree.h (SSA_NAME_PTR_INFO): Define.
3720         (struct ptr_info_def): Declare.
3721         (struct tree_ssa_name): Add field 'ptr_info'.
3722
3723 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
3724
3725         * config/i386/winnt.c (i386_pe_output_labelref): Correct
3726         misplaced ')'.
3727
3728 2004-06-09  Steven Bosscher  <stevenb@suse.de>
3729
3730         * config/i386/k6.md: Rewrite using the DFA model.
3731         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3732         cost of load-operation insns for the K6.
3733         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3734         (ia32_multipass_dfa_lookahead): Likewise.
3735
3736 2004-06-09  Richard Henderson  <rth@redhat.com>
3737
3738         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3739         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3740
3741 2004-06-09  Richard Henderson  <rth@redhat.com>
3742
3743         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
3744
3745 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
3746
3747         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
3748         (CPP_ID_DATA_H): New.
3749         (gtype-desc.o): Update dependencies.
3750         (GTFILES): Use CPP_ID_DATA_H.
3751
3752 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
3753
3754         Revert:
3755         PR c++/15815
3756         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3757         * doc/extend.texi: Deprecate #pragma interface and #pragma
3758         implementation.
3759
3760 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
3761
3762         * config/sparc/sparc.h (MOVE_RATIO): New definition.
3763
3764 2004-06-09  Richard Henderson  <rth@redhat.com>
3765
3766         * basic-block.h (struct edge_def): Add goto_locus.
3767         * tree-cfg.c (make_goto_expr_edges): Set it.
3768         (disband_implicit_edges): Use it.
3769         * tree-pretty-print.c (dump_implicit_edges): Print it.
3770
3771 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3772
3773         * h8300.md (ldm_h8300s_4): Fix condition for expander.
3774
3775 2004-06-08  Jason Merrill  <jason@redhat.com>
3776
3777         Gimplify VA_ARG_EXPR into simpler forms.
3778         * target.h: Add gimplify_va_arg_expr hook.
3779         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
3780         * fold-const.c (build_fold_addr_expr)
3781         (build_fold_addr_expr_with_type): Move from gimplify.c.
3782         * tree.h: Declare them.
3783         * gimplify.c (gimplify_and_add): New fn.
3784         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
3785         (gimplify_array_ref_to_plus, gimplify_modify_expr)
3786         (gimplify_expr): Use build_fold_*.
3787         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
3788         don't know how to gimplify it.
3789         * builtins.c (std_gimplify_va_arg_expr): New fn.
3790         (dummy_object): New static fn.
3791         (gimplify_va_arg_expr): New fn.
3792         (stabilize_va_list): Use build_fold_*.
3793         * tree-gimple.h: Declare new fns.
3794         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3795         (ix86_gimplify_va_arg): New fn.
3796         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3797         (ia64_gimplify_va_arg): New fn.
3798         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
3799         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3800         * alias.c (get_varargs_alias_set): Just return 0 for now.
3801
3802         * c-objc-common.c (c_tree_printer): Improve handling of %T.
3803
3804 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
3805
3806         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
3807         of convert.
3808         * tree-inline.c (setup_one_parameter): Likewise.
3809         * tree-sra.c (csc_build_component_ref): Likewise.
3810         * tree-ssa-ccp.c (ccp_fold): Likewise.
3811         * tree-ssa-copy.c (cprop_operand): Likewise.
3812         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3813         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3814
3815 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3816
3817         PR rtl-optimization/15521:
3818         * sched-int.h (in_post_call_group_p): Change type to enum.
3819         * sched-deps.c (sched_analyze_insn):
3820         (sched_analyze): When in_post_call_group_p is post_call_initial,
3821         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
3822         and also reset in_post_call_group_p to post_call.
3823         (sched_analyze): When the previous basic block ended in a CALL_INSN,
3824         initialize in_post_call_group_p as post_call_initial.
3825         (init_deps): initialize in_post_call_group_p to not_post_call.
3826
3827 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
3828
3829         PR ada/6637
3830         * doc/install.texi: List ada, libada as options to --enable-shared
3831
3832 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3833
3834         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
3835         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
3836         config.in entries.
3837         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
3838         if hard links are not available.
3839         * configure: Regenerate.
3840         * config.in: Regenerate.
3841
3842 2004-06-08  Per Bothner  <per@bothner.com>
3843
3844         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
3845
3846 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3847
3848         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
3849         Correct formatting.
3850
3851 2004-06-08  James E Wilson  <wilson@specifixinc.com>
3852
3853         PR target/15790
3854         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
3855
3856 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3857
3858         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
3859         POINTER_TYPE and INTEGER_TYPE.
3860
3861 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
3862
3863         * modulo-sched.c: Compile only when INSN_SCHEDULING is
3864         defined.
3865
3866 2004-06-08  Jeff Law  <law@redhat.com>
3867
3868         * doc/contrib.texi: Add entries for Stefan Olsson and
3869         Ola Ronnerup.
3870
3871 2004-06-08  DJ Delorie  <dj@redhat.com>
3872
3873         * toplev.c (floor_log2_wide): Replace loop with faster bit
3874         operations.
3875         (exact_log2_wide): Define in terms of the above.
3876         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
3877         available.
3878
3879 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3880
3881         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
3882         Make sure that we are in INDIRECT mode when getting the
3883         stub name.
3884
3885 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3886
3887         * h8300.md (extendqisi2_h8300): Add constraints.
3888         (ldm_h8300s_4_normal): Fix typo.
3889
3890 2004-06-08  Richard Henderson  <rth@redhat.com>
3891
3892         * gimple-low.c (struct lower_data): Replace the_return_label and
3893         one_return_stmt with return_statements.
3894         (lower_function_body): Process the entire list of return_statements.
3895         (lower_return_expr): Check source value before unifying return_exprs.
3896         * gimplify.c (gimplify_return_expr): Force the use of a temporary
3897         for !aggregate_value_p.
3898         * tree-gimple.c: Update RETURN_EXPR grammer.
3899
3900 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
3901
3902         PR target/15598
3903         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
3904
3905 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3906
3907         PR rtl-optimization/15717
3908         * config/i386/i386.c (legitimate_constant_p): Do not allow
3909         x - symbol_ref.
3910
3911 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
3912
3913         * gimplify.c (copy_if_shared_r): Revert:
3914         2004-05-21  Richard Henderson  <rth@redhat.com>
3915         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
3916
3917 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3918
3919         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
3920         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
3921         (init_expmed): Initialize these cost arrays as appropriate.
3922         (store_bit_field, extract_bit_field): Correct whitespace.
3923         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
3924         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
3925         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
3926         word_mode or compute_mode as appropriate.
3927
3928 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3929
3930         PR target/15783
3931         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
3932         parameter.  Enumerate the registers inside the PARALLEL.
3933         (function_arg): Adjust call to function_arg_union_value.
3934         (function_value): Likewise.
3935
3936         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
3937
3938 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3939
3940         * real.c (real_copysign): New function to implement libm's copysign.
3941         * real.h (real_copysign): Prototype here.
3942         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
3943         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
3944         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
3945         fold_builtin_isdigit): Add function prototypes.
3946         (fold_builtin_copysign): New function to fold copysign, copysignf
3947         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
3948         constant arguments at compile-time using real_copysign.  Fold
3949         copysign(X,Y) as fabs(X) if Y is always non-negative.
3950         (fold_builtin_1): Correct minor whitespace/style issues.  Call
3951         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
3952
3953 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
3954
3955         * tree.c (iterative_hash_expr): Use real_hash.
3956
3957 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3958
3959         PR c/14765
3960         * c-parse.in (compstmt_primary_start): Set last_expr_type to
3961         NULL_TREE.
3962
3963 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3964
3965         PR c++/15815
3966         * doc/extend.texi: Deprecate #pragma interface and #pragma
3967         implementation.
3968
3969 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
3970
3971         PR middle-end/15666
3972         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
3973         builtin decl as well.
3974
3975 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3976
3977         PR c/14649
3978         * c-typeck.c (require_constant_value, require_constant_elements):
3979         Move declarations to the top of the file.
3980         (build_function_call): If we require a constant value, fold with
3981         fold_initializer.  If the result is a constant, and the function
3982         wasn't called using __builtin_foo, issue a pedantic warning.
3983         (build_unary_op): If we require a constant value, fold tree with
3984         fold_initializer.
3985         (build_binary_op): Use require_constant_value to determine whether
3986         to call fold or fold_initializer.
3987
3988 2004-06-07  Richard Henderson  <rth@redhat.com>
3989
3990         * gimple-low.c (struct lower_data): Add the_return_label and
3991         one_return_stmt.
3992         (lower_function_body): Initialize and use them.
3993         (lower_return_expr): New.
3994         (lower_stmt): Call it.
3995         * gimplify.c (gimplify_return_expr): Force the argument to be either
3996         null or a result_decl.
3997         * tree-gimple.c: Update gimple grammer to match.
3998         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
3999         coalescing of result_decls.
4000
4001 2004-06-07  Richard Henderson  <rth@redhat.com>
4002
4003         PR rtl-opt/15193
4004         * expmed.c (extract_bit_field): Fix vector_extract return.
4005
4006         * config/i386/i386.md (negv4sf2): New pattern.
4007
4008 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
4009
4010         PR c++/15337
4011         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
4012         message.
4013
4014 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
4015
4016         * config.in: Regenerate.
4017
4018 2004-06-06  Steven Bosscher  <stevenb@suse.de>
4019
4020         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
4021         SWITCH_LABELS are always sorted.
4022
4023 2004-06-06  Steven Bosscher  <stevenb@suse.de>
4024
4025         * hooks.c (hook_int_void_1): New generic hook.
4026         * hooks.h (hook_int_void_1): Add prototype.
4027         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
4028         Define to hook_int_void_1.
4029         * config/c4x/c4x.md: Replace dummies for the old pipeline model
4030         with dummies for the new one.
4031
4032 2004-06-06  Roger Sayle  <roger@eyesopen.com>
4033
4034         * tree.h (lvalue_or_else): Delete function prototype.
4035         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
4036
4037 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
4038
4039         PR target/14542
4040         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
4041         a live change of a register after peephole replacement.
4042
4043 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
4044
4045         PR c/13519
4046         * c-typeck.c (composite_type, common_pointer_type): New functions.
4047         (common_type): Split parts into composite_type and
4048         common_pointer_type.  Ensure that arithmetic operations return
4049         unqualified types without attributes.  Don't make composite type
4050         of signed enum and compatible integer be unsigned.
4051         (build_conditional_expr, build_binary_op): Use
4052         common_pointer_type.
4053         * c-decl.c (merge_decls): Use composite_type.
4054         * c-tree.h (composite_type): Declare.
4055
4056 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
4057
4058         PR target/14457
4059         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
4060         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
4061         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
4062         (inhibit_libc): Must define.
4063         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
4064         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
4065         ("xorhi3"): Likewise.
4066
4067 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4068
4069         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
4070         always_inline pass.
4071
4072 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
4073
4074         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
4075         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
4076
4077 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
4078
4079         * regclass.c (init_reg_sets): Check for missing registers in target
4080         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
4081
4082 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
4083
4084         * Makefile.in (MKDEPS_H): New shorthand.
4085         (c-opts.o): Update dependencies.
4086         * c-opts.c: Include mkdeps.h.
4087         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
4088         not cpp_add_dependency_target.
4089
4090 2004-06-05  Steven Bosscher  <stevenb@suse.de>
4091
4092         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
4093         * config/v850/v850.md: Convert to DFA scheduler description.
4094
4095 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4096
4097         PR fortran/15478
4098         * doc/install.texi: Document GMP as prerequisite. Document
4099         --with-gmp and --with-gmp-dir configure options.
4100         * fortran/gfortran.texi: Remove section "Compiling and testing",
4101         remove TOC reference to it.
4102
4103 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
4104
4105         * combine.c(simplify_shift_const): Check shift amount is a
4106         CONST_INT.
4107
4108 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
4109
4110         * toplev.c (init_asm_output): Add explicit 'b' to mode when
4111         opening asm_out_file.
4112         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
4113         reading asm_out_file. Replace fflush after reading asm_out_file
4114         with fseek.
4115         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
4116         default and add to HOST_HOOKS_INITIALIZER.
4117         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
4118         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
4119         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
4120         to set mmi.offset padding.
4121          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
4122         $(srcdir)/config/i386/winnt.c.
4123         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
4124         (i[34567]86-*-uwin*): Likewise.
4125         *i[34567]86-*-interix3*): Likewise.
4126         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
4127         * config/i386/host-mingw32.c: New file.
4128         * config/i386/x-mingw32: Add rule for host-mingw32.o.
4129         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
4130         (extern_head): Likewise.
4131         (struct export_list) Likewise.
4132         (export_head): Likewise.
4133         (i386_pe_record_external_function): Use ggc_alloc.
4134         (i386_pe_record_exported_symbol): Likewise.
4135         Include "gt-winnt.h" at end.
4136         * doc/hostconfig.texi: Document
4137         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
4138
4139 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
4140
4141         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
4142         Rename 68000 and 68k to m68k for consistency in comments.  Remove
4143         trailing whitespace before EOLs and before TABs.
4144         (MAX_CODE_ALIGN): Remove unused macro.
4145         (CALL_USED_REGISTERS): Reformat and add comments.
4146
4147 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
4148
4149         * gcc.c (MFLIB_SPEC): Remove library references, to require users
4150         to enumerate -lmudflap* and dependencies when linking.
4151
4152 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
4153
4154         PR target/15822
4155         * dojump.c (do_jump): Fix uninitialized variable tcode1.
4156
4157 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
4158
4159         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
4160         * genconditions.c (write_header): Back out removal of reload.h.
4161
4162 2004-06-04  Jan Hubicka  <jh@suse.cz>
4163
4164         Re-apply hopefully fixed patch:
4165         * i386.md (UNSPECV_EH_RETURN): Kill.
4166         (eh_return): Use jump_insn.
4167         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4168
4169 2004-06-04  Jeff Law  <law@redhat.com>
4170
4171         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
4172
4173 2004-06-04  Steven Bosscher  <stevenb@suse.de>
4174
4175         * except.c (for_each_eh_region): New function.
4176         * except.h (for_each_eh_region): Add a prototype for it.
4177         * tree-cfg.c (update_eh_labels): New function, callback for
4178         for_each_eh_region.
4179         (label_for_bb): Make global static, unfortunately.
4180         (cleanup_dead_labels): Also update label references for
4181         exception regions.
4182
4183 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
4184
4185         * config/mips/mips.c (struct irix_section_align_entry): Fix
4186         GTY marker.
4187
4188 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
4189
4190         * toplev.c (check_global_declarations): Don't ask for
4191         DECL_ASSEMBLER_NAME unless the function really is declared
4192         static and not defined.
4193
4194 2004-06-03  Matt Austern  <austern@apple.com>
4195
4196         PR c++/15428
4197         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
4198         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
4199         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
4200         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
4201         documentation to reflect the new macro name and to clarify its
4202         meaning.
4203
4204 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4205
4206         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
4207
4208 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
4209
4210         * config/darwin.c (machopic_indirect_data_reference): Copy
4211         the SYMBOL_REF_DECL from the original RTX for the new
4212         non-lazy pointer RTX.
4213
4214 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
4215
4216         * tree.h: Remove include of version.h
4217         * c-cppbuiltin.c: Include version.h
4218         * diagnostic.c: Include version.h
4219         * dwarf2out.c: Include version.h
4220         * toplev.c: Include version.h
4221         * vmsdbgout.c: Include version.h
4222         * Makefile.in: Remove dependency on version.h from TREE_H, and
4223         add dependencies to required .o targets
4224
4225 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
4226
4227         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
4228         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
4229         (TARGET_H): Add insn-modes.h.
4230         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
4231         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
4232         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
4233         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
4234         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
4235         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
4236         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
4237         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
4238         CFGLAYOUT_H.
4239         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
4240         Replace ra.h with RA_H.
4241         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
4242         insn-recog.o): Replace resource.h with RESOURCE_H.
4243         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
4244         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
4245         with SCHED_INT_H.
4246         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
4247         ra-rewrite.o): Replace df.h with DF_H.
4248         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
4249         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
4250         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
4251         (insn-conditions.o): Remove unused reload.h.
4252         * cfglayout.h: Add include guard.  Include basic-block.h.
4253         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
4254         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
4255         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
4256         basic-block.h.
4257         * genconditions.c:  Remove reload.h.
4258         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
4259         hard-reg-set.h, insn-modes.h.
4260         * resource.h: Add include guard.  Include hard-reg-set.h.
4261         * sched-int.h:  Add include guard.  Include insn-attr.h,
4262         basic-block.h, rtl.h.
4263         * target.h: Add include guard.  Include insn-modes.h.
4264         * tree-ssa-live.h: Include partition.h.
4265
4266 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
4267                 Kenneth Zadeck <zadeck@naturalbridge.com>
4268
4269         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
4270         (add_var_to_ssa_edges_worklist): Add value argument.
4271         Update callers.
4272         Use new worklist.
4273         (process_ssa_edge_worklist): New function.
4274         (tree_ssa_ccp): Move worklist processing core to
4275         process_ssa_edge_worklist, and just call that for the two worklists.
4276
4277 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4278
4279         * basic-block.c (tail_recursion_label_list): Don't declare.
4280         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
4281         accordingly.
4282         * cfgbuild.c (find_label_refs): Remove.
4283         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
4284         * cfgcleanup.c (tail_recursion_label_p): Remove.
4285         (merge_blocks_move): Do not check for tail recursion.
4286         (try_optimize_cfg): Likewise.
4287         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
4288         * cfgrtl.c (tail_recursion_label_list): Remove.
4289         * except.c (remove_unreachable_regions): Don't handle
4290         CALL_PLACEHOLDER insns.
4291         (convert_from_eh_region_ranges_1, can_throw_internal,
4292         can_throw_external): Likewise.
4293         * function.c (free_after_compilation): Don't clear
4294         x_tail_recursion_label.
4295         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
4296         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
4297         (reorder_blocks_1): Likewise.
4298         * function.h (struct function): Remove x_tail_recursion_label
4299         member.  Don't define tail_recursion_label.
4300         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
4301         * print-rtl.c (print_rtx): Likewise.
4302         * rtl.def (CALL_PLACEHOLDER): Remove.
4303         * rtl.h (sibcall_use_t): Remove enum.
4304         (optimize_sibling_and_tail_recursive_calls,
4305         replace_call_placeholder): Remove function prototypes.
4306         * stmt.c (tail_recursion_args): Remove.
4307         (optimize_tail_recursion): Remove.
4308         (expand_return): Don't check for possible tail recursion.
4309         * tree.h (optimize_tail_recursion): Remove prototype.
4310
4311 2004-06-02  Jan Hubicka  <jh@suse.cz>
4312
4313         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
4314         return_stmt.
4315
4316 2004-06-02  Jason Merrill  <jason@redhat.com>
4317
4318         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
4319         Do include c-parse.in.
4320
4321 2004-06-02  Eric Christopher  <echristo@redhat.com>
4322
4323         * c-typeck.c (common_type): Don't lose type qualifiers
4324         when creating new variants.
4325
4326 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
4327
4328         PR tree-optimization/14042
4329         PR tree-optimization/14729
4330         PR tree-optimization/14736
4331         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
4332         Check the type which the pointer points to
4333         instead of the pointer types.
4334
4335 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
4336
4337         PR tree-optimization/15738.
4338         * builtins.c (fold_builtin_strchr): Transform
4339         strrchr (s, '\0') to strchr (s, '\0').
4340
4341 2004-06-02  Steven Bosscher  <stevenb@suse.de>
4342
4343         * i386.c (ix86_adjust_cost): Don't increase the cost for
4344         load+operation for PROCESSOR_PENTIUMPRO, it is already
4345         modelled in the DFA description
4346
4347 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
4348
4349         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
4350         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
4351         (ALIAS_H, EMIT_RTL_H): New.
4352         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
4353         (cfgcleanup.o): Add EMIT_RTL_H.
4354         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
4355         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
4356         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
4357         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
4358         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
4359         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
4360         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
4361         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
4362         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
4363         set_mem_size): Move to emit-rtl.h.
4364         * emit-rtl.h: New.
4365         * alias.h: New.
4366
4367 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
4368
4369         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
4370         Call fixup_memory_subreg only if the MEM is equal to 'var'.
4371         Adjust recursive calls to self.
4372         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
4373
4374 2004-06-01  Richard Henderson  <rth@redhat.com>
4375             Andrew Pinski  <pinskia@physics.uc.edu>
4376
4377         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
4378         (primary): Handle offsetof.  Add error productions for faux functions.
4379         Move component_ref objc checking to build_component_ref.
4380         (reswords): Add offsetof.
4381         (rid_to_yy): Add offsetof.
4382         * c-tree.h (build_offsetof): Declare.
4383         * c-common.h (objc_is_public): Declare.
4384         * c-typeck.c (build_component_ref): Check objc_is_public.
4385         (build_offsetof): New.
4386         * stub-objc.c (objc_is_public): New.
4387         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
4388         from is_public.
4389         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
4390         * doc/extend.texi (Offsetof): Move from C++ section to C section
4391         and rewrite for __builtin_offsetof.
4392
4393 2004-06-01  Peter Barada  <peter@the-baradas.com>
4394             Peter Jakubek  <peter@laseranimation.com>
4395
4396         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
4397         a scratch to perform an add to memory.
4398
4399 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4400
4401         PR target/14018
4402         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
4403         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4404         m68k_align_funcs): Remove.
4405         (override_options): Remove code to handle -malign-* options.
4406         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
4407         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
4408         (m68k_align_loops_string, m68k_align_jumps_string,
4409         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4410         m68k_align_funcs): Remove definitions.
4411
4412 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
4413
4414         PR target/15626
4415         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
4416         by the Sun linker in conjunction with the Sun assembler.
4417         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
4418
4419 2004-06-01  Jeff Law  <law@redhat.com>
4420
4421         * stmt.c (expand_decl): Be more selective about calling
4422         mark_reg_pointer.
4423
4424 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
4425
4426         PR objc/7993
4427         * objc-act.c (is_private): Do not emit the 'instance variable %s
4428         is declared private' error.
4429         (is_public): Emit the error after calling is_private.
4430         (lookup_objc_ivar): If the instance variable is private, return 0
4431         - the instance variable is invisible here.
4432
4433 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4434
4435         * doc/invoke.texi (-static-libgcc): Explicitly mention
4436         non-GNU linkers.
4437
4438 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4439
4440         PR target/12968
4441         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
4442
4443 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
4444
4445         PR c/15749
4446         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
4447         misuses of structures with flexible array members if
4448         in_system_header.
4449
4450 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4451
4452         PR target/15693
4453         * config/sparc/sparc.c (compare_operand): New predicate.
4454         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
4455         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
4456         operand is a ZERO_EXTRACT and the second operand is not zero,
4457         force the former to a register.
4458         (cmpdi expander): Likewise.
4459
4460 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
4461
4462         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
4463         looks at.
4464         * alias.c (alias_invariant_size): Make alias_invariant_size
4465         static, fix GTY marker.
4466
4467 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4468
4469         PR tree-optimization/15743.
4470         * builtins.c (fold_builtin_1): Fold index() and rindex().
4471
4472 2004-05-31  Roger Sayle  <roger@eyesopen.com>
4473
4474         PR middle-end/15069
4475         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
4476         into "X < 0" (where C is the signbit) if X's type is a full mode.
4477
4478 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4479
4480         * pa.md: Disable the peephole2 patterns that generate indexed
4481         floating-point stores when indexing is disabled.
4482
4483 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4484
4485         * c-pretty-print.c (pp_c_left_bracket): Make a function.
4486         (pp_c_right_bracket): Likewise.
4487         (pp_c_star): Likewise.
4488         (pp_c_ampersand): Define.
4489         * c-pretty-print.h (pp_c_left_bracket): Declare.
4490         (pp_c_right_bracket): Likewise.
4491         (pp_c_star): Likewise.
4492         (pp_c_ampersand): Likewise.
4493
4494 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4495
4496         * config/sol2.h (__enable_execute_stack): ANSIfy function
4497         definition.
4498
4499 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
4500
4501         * c-incpath.c (add_path): Canonicalize paths to use '/' if
4502         HAVE_DOS_BASED_FILESYSTEM.
4503
4504 2004-05-31  Steven Bosscher  <stevenb@suse.de>
4505
4506         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
4507         Only look at case labels if the immediate dominator is also
4508         the only predecessor.  Don't look for more case labels if the
4509         first seen is a case range.
4510
4511 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4512
4513         * builtins.c: Add a prototype for fold_builtin_strchr().
4514
4515 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
4516
4517         Revert this patch:
4518         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4519
4520         * combine.c (gen_binary): Remove.
4521         (known_cond, simplify_shift_const
4522         find_split_point, combine_simplify_rtx,
4523         simplify_if_then_else, simplify_set,
4524         simplify_logical, expand_field_assignment,
4525         extract_left_shift, force_to_mode,
4526         if_then_else_cond, apply_distributive_law,
4527         simplify_and_const_int, simplify_shift_const,
4528         gen_lowpart_for_combine, simplify_comparison,
4529         reversed_comparison): Replace with
4530         simplify_gen_binary, simplify_gen_relational or
4531         distribute_and_simplify_rtx.
4532         (distribute_and_simplify_rtx): New function.
4533
4534 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4535
4536         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
4537         when generating PIC code.
4538
4539 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4540
4541         * c-decl.c (c_expand_body_1): Remove and fold back into ...
4542         (c_expand_body): here.
4543         (c_expand_decl): Move to ...
4544         * c-common.c (c_expand_decl): Here and remove check for nested
4545         functions.
4546         * c-common.h (c_expand_decl): Add prototype.
4547         * c-tree.h (c_expand_decl): Remove.
4548
4549 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4550
4551         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
4552         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
4553         fold_mathfn_compare, fold_inf_compare, fold,
4554         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
4555         Use constant_boolean_node where appropriate.  Don't bother using
4556         fold_convert on the second argument to omit_one_operand.
4557
4558 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4559
4560         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
4561         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
4562         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
4563         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
4564         Add missing (but documented) tree nodes to the index.
4565
4566 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4567
4568         PR tree-optimization/14819
4569         * builtins.c (fold_builtin_strchr): New.
4570         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
4571         with fold_builtin_strchr().
4572
4573 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4574
4575         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
4576         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
4577         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
4578         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
4579         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
4580         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
4581         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
4582         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
4583         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
4584         formatting.
4585
4586 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4587
4588         * gimplify.c (sort_case_labels): New.  Split out from...
4589         (gimplify_switch_expr): ...here.  Use it.
4590         * tree-eh.c (lower_try_finally_switch): Sort the labels of
4591         the SWITCH_EXPR created here before leaving the function.
4592         * tree.c (sort_case_labels): Add prototype.
4593
4594 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4595
4596         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
4597         of BOOLEAN_TYPE.
4598
4599 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4600
4601         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
4602         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
4603         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
4604         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
4605         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
4606         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
4607         comment typos.  Follow spelling conventions.
4608
4609 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
4610
4611         * gengtype-yacc.y: Add NESTED_PTR token.
4612         (option): Record `nested_ptr' option.
4613         * gengtype-lex.l: Handle `nested_ptr' keyword.
4614         * gengtype.c (walk_type): Process `nested_ptr' option.
4615         * gengtype.h (struct nested_ptr_data): New.
4616         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
4617         * stringpool.c (struct string_pool_data): Make 'entries' point to
4618         ht_identifier instead of tree.
4619         (gt_pch_save_stringpool): Don't adjust pointers.
4620         (gt_pch_restore_stringpool): Call ht_load.
4621
4622 2004-05-29  Jason Merrill  <jason@redhat.com>
4623
4624         * gimplify.c (gimplify_expr): Don't build a statement list
4625         if no gimplification was necessary.
4626
4627 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4628
4629         * pretty-print.c (pp_base_format_text): Support %< instead of %`
4630         and %> as well as %'.
4631         * c-format.c: Use %< and %>.
4632         (gcc_diag_char_table, gcc_cdiag_char_table,
4633         gcc_cxxdiag_char_table): Update.
4634
4635 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4636
4637         * c-typeck.c (common_type): Correct comment.
4638
4639 2004-05-29  Peter Barada  <peter@the-baradas.com>
4640
4641         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
4642         * config/m68k/m68k.c (const_method): Likewise.
4643         * config/m68k/m68k.c (const_int_cost): Likewise.
4644         * config/m68k/m68k.c (const_int_cost): Likewise.
4645         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
4646
4647 2004-05-29  Peter Barada  <peter@the-baradas.com>
4648
4649         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
4650         addressing.
4651         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
4652         movsi,movhi,movqi insn patterns.
4653
4654 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4655
4656         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
4657
4658         PR target/15720
4659         * config/darwin.c (machopic_indirect_call_target): Copy
4660         the SYMBOL_REF_DECL from the original RTX for the new
4661         stub RTX.
4662
4663 2004-05-28  DJ Delorie  <dj@redhat.com>
4664
4665         * stor-layout.c (place_field): Revert erroneous commit.
4666
4667 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
4668
4669         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
4670         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
4671         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
4672         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
4673         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
4674         vec_ste): Remove type checks for integral parameters and literals
4675         from '..._args_eq' macros.
4676
4677 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4678
4679         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
4680
4681 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4682
4683         * testsuite/g++.dg/charset/function.cc: New.
4684
4685         * testsuite/gcc.dg/charset/function.c: New.
4686
4687         * c-decl.c (c_make_fname_decl): Free return value from
4688         fname_as_string.
4689
4690         * cp/decl.c (cp_make_fname_decl): Free return value from
4691         fname_as_string.
4692
4693         * c-common.c (fname_as_string): Translate if necessary.
4694
4695 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
4696
4697         * stringpool.c: Add comments to PCH saving/restoring routines.
4698
4699 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4700
4701         * c-common.c (c_estimate_num_insns_1): Kill.
4702         (c_estimate_num_insns): Kill.
4703         * c-common.h (c_estimate_num_insns): Kill.
4704
4705         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
4706         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
4707         Remove comment about not checking for
4708         _POSIX_PRIORITY_SCHEDULING.
4709         * gthr-posix.c: Likewise.
4710
4711 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
4712             Roger Sayle  <roger@eyesopen.com>
4713
4714         PR rtl-optimization/15649
4715         Add LTGT_EXPR and improve pretty-printing of unordered
4716         comparisons.
4717         * c-common.c (c_common_truthvalue_conversion):
4718         Handle LTGT_EXPR.
4719         * c-typeck.c (build_binary_op): Likewise.
4720         * dojump.c (do_jump): Likewise.
4721         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
4722         * predict.c (tree_predict_by_opcode): Likewise.
4723         * real.c (real_compare): Likewise.
4724         * tree-cfg.c (verify_expr): Likewise.
4725         * tree-inline.c (estimate_num_insns_1): Likewise.
4726         * tree-pretty-print.c (dump_generic_node): Likewise.
4727         Handle ORDERED_EXPR, UNORDERED_EXPR.
4728         (op_symbol): Print unordered comparisons differently
4729         than ordered ones.
4730         * tree.def (LTGT_EXPR): New '<' tree code.
4731         * doc/c-tree.texi (Expressions): Document floating-point
4732         comparison nodes.
4733
4734         Fold comparisons between floating point values.
4735         * fold-const.c (enum comparison_code): New, from
4736         #define'd constants.  Define compcodes for unordered
4737         comparisons and for invalid transformations.
4738         (invert_tree_comparison): Add "honor_nans" parameter.
4739         (fold_truthop): Revamp to work on floating-point types too.
4740         (comparison_to_compcode): Support unordered comparisons.
4741         Use new enum comparison_code.
4742         (compcode_to_comparison): Likewise.
4743         (combine_compcodes): New function.
4744         (invert_truthvalue): Let invert_tree_comparison decide
4745         whether it is valid to fold the comparison.  Fold ORDERED
4746         and UNORDERED even if flag_unsafe_math_optimizations is off,
4747         and the remaining even if flag_unsafe_math_optimizations
4748         is off but we are under -fno-trapping-math.
4749         (fold_relational_const): Integer modes do not honor NaNs.
4750
4751 2004-05-28  Paul Brook  <paul@codesourcery.com>
4752
4753         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
4754
4755 2004-05-28  Paul Brook  <paul@codesourcery.com>
4756
4757         * config/arm/arm.c (thumb_force_lr_save): New function.
4758         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
4759         thumb_output_function_prologue): Use it.
4760         (thumb_expand_prologue): Set lr_save_eliminated.
4761
4762 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4763
4764         * config/mips/mips.md (extendsidi2): Tie the source and destination
4765         of the register alternative.  Split it into nothing.
4766
4767 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4768
4769         * rtl.h (skip_consecutive_labels): Declare.
4770         * emit-rtl.c (skip_consecutive_labels): New function.
4771         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
4772         * jump.c (follow_jumps): Say what null return values mean.
4773
4774 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4775
4776         PR target/13250
4777         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
4778
4779 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4780
4781         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
4782         libgcc-std.ver.
4783         * config/sh/libgcc-std.ver: New file.
4784
4785 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4786
4787         * except.c: Revert change of 2004-05-26.
4788         * config/i386/i386.md: Revert change of 2004-05-27.
4789
4790 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4791
4792         * configure.ac: Remove --enable-tree-browser option.
4793         Define TREEBROWSER when ac_tree_checking is defined.
4794         * configure: Rebuilt.
4795
4796 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
4797
4798         * expr.c (store_constructor): Restore sanity check on
4799         the size of the type before clearing.
4800
4801 2004-05-27  Jan Hubicka  <jh@suse.cz>
4802
4803         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
4804
4805 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4806
4807         * combine.c (gen_binary): Remove.
4808         (known_cond, simplify_shift_const
4809         find_split_point, combine_simplify_rtx,
4810         simplify_if_then_else, simplify_set,
4811         simplify_logical, expand_field_assignment,
4812         extract_left_shift, force_to_mode,
4813         if_then_else_cond, apply_distributive_law,
4814         simplify_and_const_int, simplify_shift_const,
4815         gen_lowpart_for_combine, simplify_comparison,
4816         reversed_comparison): Replace with
4817         simplify_gen_binary, simplify_gen_relational or
4818         distribute_and_simplify_rtx.
4819         (distribute_and_simplify_rtx): New function.
4820         * simplify-rtx.c (simplify_binary_operation):
4821         Use nonzero_bits to simplify ANDs where we are
4822         turning off bits already known to be off in OP0.
4823
4824 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
4825
4826         PR target/14478
4827         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
4828
4829 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
4830
4831         PR middle-end/14084
4832         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
4833         to size of decl.
4834
4835 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
4836
4837         PR/14924
4838         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
4839
4840 2004-05-26  Roger Sayle  <roger@eyesopen.com>
4841
4842         * tree.h: Fix comment typo.
4843
4844 2004-05-27  Steven Bosscher  <stevenb@suse.de>
4845
4846         * gimplify.c (compare_case_labels): New function.
4847         (gimplify_switch_expr): Sort case labels, and make sure the
4848         last label in the label vector is the default case.
4849         * tree-cfg.c (group_case_labels): New function.
4850         (build_tree_cfg): Cleanup redundant labels and group case labels
4851         before creating edges.
4852         (cleanup_dead_labels): Handle GOTO_EXPRs.
4853         (find_case_label_for_value): Use a binary search to find the
4854         case label for the given value.
4855         * tree-gimple.c: Mention that labels are sorted, and that the
4856         last label must be the default.
4857
4858 2004-05-27  Jan Hubicka  <jh@suse.cz>
4859
4860         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
4861
4862 2004-05-27  Jan Hubicka  <jh@suse.cz>
4863
4864         * i386.md (UNSPECV_EH_RETURN): Kill.
4865         (eh_return): Use jump_insn.
4866         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4867
4868 2004-05-26  Jan Hubicka  <jh@suse.cz>
4869
4870         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
4871         not loop optimizing.
4872
4873 2004-05-26  Jan Hubicka  <jh@suse.cz>
4874
4875         * except.c (can_throw_internal):  Notice RESX instructions.
4876
4877 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4878
4879         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
4880         of the two sizes to assemble_integer.
4881
4882 2004-05-25  Paul Brook  <paul@codesourcery.com>
4883
4884         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
4885         pointless #ifdef.
4886
4887 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
4888
4889         * Makefile.in (top_builddir): Define to .
4890
4891 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
4892
4893         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
4894         top-level detects, except when in-tree ld is being cross-built.
4895         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
4896         then AS only if target is host.
4897         * configure: Rebuilt.
4898
4899 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
4900
4901         * global.c (global_alloc): Call make_accurate_live_analysis.
4902         (record_one_conflict): Remove dead code.
4903         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
4904         (bb_info): New structure.
4905         (BB_INFO, BB_INFO_BY_INDEX): New macros.
4906         (allocate_bb_info, free_bb_info, mark_reg_change,
4907         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
4908         modify_bb_reg_pav, calculate_reg_pav,
4909         make_accurate_live_analysis): New functions.
4910
4911 2004-05-25  Devang Patel  <dpatel@apple.com>
4912
4913         * alias.c (init_alias_analysis): Use ggc_calloc instead of
4914         xrealloc.
4915         (end_alias_analysis): Use ggc_free instead fo free.
4916
4917 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
4918
4919         PR target/15546
4920         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
4921         as needed to be outputted.
4922
4923 2004-05-25  Jan Hubicka  <jh@suse.cz>
4924
4925         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
4926
4927 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
4928         Mostafa Hagog  <mustafa@il.ibm.com>
4929
4930         * Makefile.in (modulo-sched.o, ddg.o): New.
4931         * ddg.h, ddg.c, modulo-sched.c: New files.
4932         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
4933         internals to "dupicate_insn".
4934         (duplicate_insn): New function.
4935         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
4936         declarations.
4937         * common.opt (fmodulo-sched): New flag.
4938         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
4939         Remove static and forward declaration.
4940         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
4941         functions.
4942         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
4943         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
4944         declarations.
4945         * flags.h (flag_modulo_sched): New flag.
4946         * opts.c (common_handle_option): Handle modulo-sched flag.
4947         * params.def (max-sms-loop-number, sms-max-ii-factor,
4948         sms-dfa-history, sms-loop-average-count-threshold): New
4949         parameters.
4950         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
4951         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
4952         parameters.
4953         * passes.c ("sms", "sms-vcg"): New dumps.
4954         (rest_of_handle_sched): Call sms_schedule.
4955         * rtl.h (sms_schedule): New declaration.
4956         * timevar.def (TV_SMS): New.
4957         * toplev.c (flag_modulo_sched): Initialize.
4958         (f_options): Handle -fmodulo-sched option.
4959         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
4960         * docs/passes.texi: Document new SMS pass.
4961
4962 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
4963
4964         * Makefile.in (OBJS): Add rtlhooks.o.
4965         (rtlanal.o): Depend on function.h.
4966         (cse.o): Depend on rtlhooks-def.h.
4967         (combine.o): Depend on rtlhooks-def.h.
4968         (rtlhooks.o): New rule.
4969         * combine.c: Include rtlhooks-def.h.
4970         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4971         num_sign_bit_copies, cached_num_sign_bit_copies,
4972         num_sign_bit_copies1): Move most of the code to rtlanal.c.
4973         (reg_nonzero_bits_for_combine,
4974         reg_num_sign_bit_copies_for_combine): New functions holding
4975         the remnants of the above.
4976         (combine_rtl_hooks): New.
4977         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
4978         * cse.c: Include rtlhooks-def.h.
4979         (cse_rtl_hooks): New.
4980         (cse_main): Set rtl_hooks instead of gen_lowpart.
4981         * emit-rtl.c (gen_lowpart): Remove.
4982         (gen_lowpart_general): Move to rtlhooks.c.
4983         * rtl.h (nonzero_bits, num_sign_bit_copies,
4984         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
4985         (gen_lowpart_general): Remove.
4986         (gen_lowpart): Temporarily redefine as a macro.
4987         * rtlanal.c: Include function.h.
4988         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4989         num_sign_bit_copies, cached_num_sign_bit_copies,
4990         num_sign_bit_copies1): New, from combine.c.
4991         * rtlhooks.c: New file.
4992         * rtlhooks-def.h: New file.
4993
4994 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
4995
4996         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
4997         to support 32-bit -mint8 mode.
4998
4999         * doc/invoke.texi (-mint8): Added documentation for the -mint8
5000         option in the AVR architecture.
5001
5002 2004-05-24  Mike Stump  <mrs@apple.com>
5003
5004         * doc/install.texi: Document that dejagnu 1.4.4 is required.
5005
5006 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
5007
5008         * intl.h (open_quote, close_quote): New.
5009         * intl.c (open_quote, close_quote): New.
5010         (gcc_init_libintl): Set them.
5011         * pretty-print.c: Include "intl.h".
5012         (pp_base_format_text): Support 'q' format flag and %` and %'
5013         formats.  Use ' instead of ` in comments.
5014         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
5015         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
5016         foramt_types_orig): Describe these new formats.
5017         (decode_format_attr, check_function_format,
5018         check_format_info_main): Use these new formats.
5019         (status_warning): Use ATTRIBUTE_GCC_DIAG.
5020         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
5021         check these formats to 3.5.
5022
5023 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5024
5025         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
5026         (BACKEND): Reflect this.
5027         (LIBDEPS): Move CPPLIB before LIBIBERTY.
5028         (LIBS): Likewise.
5029
5030 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
5031
5032         PR tree-optimization/14197
5033         * builtins.c: Include "tree-gimple.h"
5034         (readonly_data_expr): Use get_base_address.  Make sure to call
5035         decl_readonly_section only on trees it can handle.
5036         * tree-gimple.c (get_base_address): Accept STRING_CST and
5037         CONSTRUCTOR expressions.
5038         * Makefile.in: Update dependencies.
5039
5040 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
5041
5042         Move libcpp to the toplevel.
5043         * Makefile.in: Remove references to libcpp files,
5044         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
5045         and change hashtable.h to that.
5046         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
5047         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
5048         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
5049         * configure: Regenerate.
5050         * config.in: Regenerate.
5051         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
5052         * cppcharset.c: Removed.
5053         * cpperror.c: Removed.
5054         * cppexp.c: Removed.
5055         * cppfiles.c: Removed.
5056         * cpphash.c: Removed.
5057         * cpphash.h: Removed.
5058         * cppinit.c: Removed.
5059         * cpplex.c: Removed.
5060         * cpplib.c: Removed.
5061         * cpplib.h: Removed.
5062         * cppmacro.c: Removed.
5063         * cpppch.c: Removed.
5064         * cpptrad.c: Removed.
5065         * cppucnid.h: Removed.
5066         * cppucnid.pl: Removed.
5067         * cppucnid.tab: Removed.
5068         * hashtable.c: Removed.
5069         * hashtable.h: Removed.
5070         * line-map.c: Removed.
5071         * line-map.h: Removed.
5072         * mkdeps.c: Removed.
5073         * mkdeps.h: Removed.
5074         * stringpool.h: Include symtab.h instead of hashtable.h.
5075         * tree.h: Include symtab.h instead of hashtable.h.
5076         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
5077
5078 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5079
5080         * gcc.c (struct prefix_list): Add forward declaration.
5081         (do_spec_path): New function, extracted from...
5082         (do_spec_1) <'D'>: ... here.  Drop support for
5083         SPACE_AFTER_L_OPTION.
5084         (do_spec_1) <'I'>: Use do_spec_path.
5085         (process_command): Do not store the 'include' suffix
5086         in include_prefixes.
5087         * system.h: Poison SPACE_AFTER_L_OPTION.
5088
5089 2002-05-23  Roger Sayle  <roger@eyesopen.com>
5090
5091         * fold-const.c (non_lvalue): Explicitly list the tree codes that
5092         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
5093
5094 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
5095
5096         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
5097         Update based on printed manual.  Enable setting of offsets for
5098         FSFPRINT and move it to gcc-common.texi.
5099         * doc/gcc.texi: Update FSF printing details.
5100         * doc/gccint.texi: Remove FSF printing details.
5101
5102 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
5103
5104         * config/rs6000/t-rs6000: Remove the disabling -Werror.
5105
5106 2004-05-22  Roger Sayle  <roger@eyesopen.com>
5107
5108         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5109         expand_builtin_strrchr, expand_builtin_strpbrk,
5110         expand_builtin_mempcpy, expand_builtin_memcmp,
5111         expand_builtin_strcmp, expand_builtin_strncmp,
5112         expand_builtin_strcat, std_expand_builtin_va_start,
5113         std_expand_builtin_va_arg, expand_builtin_va_copy,
5114         expand_builtin_signbit, fold_builtin_cabs,
5115         fold_builtin_logarithm, fold_builtin_mempcpy,
5116         fold_builtin_signbit, fold_builtin_isascii,
5117         fold_builtin_toascii, fold_builtin_isdigit,
5118         fold_builtin_1, build_function_call_expr,
5119         simplify_builtin_strchr, simplify_builtin_strrchr,
5120         simplify_builtin_strpbrk, simplify_builtin_strncpy,
5121         simplify_builtin_memcmp, simplify_builtin_strcmp,
5122         simplify_builtin_strncmp, simplify_builtin_strncat,
5123         simplify_builtin_strspn, simplify_builtin_strcspn,
5124         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
5125         to build with calls to build2, build3 or omit_one_operand.
5126
5127 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5128
5129         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
5130         section when generating EABI code.
5131
5132 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5133
5134         PR 15546
5135         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
5136         Call mark_decl_referenced on the SYMBOL_REF_DECL.
5137
5138 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5139
5140         * c-common.c (c_common_truthvalue_conversion): Handle
5141         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5142         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5143         i.e. set the type to truthvalue_type_node and return.
5144
5145 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
5146
5147         * tree.h (struct tree_decl): Add possibly_inlined bit.
5148         (DECL_POSSIBLY_INLINED): New accessor macro.
5149         * cgraph.h: Remove declaration of cgraph_inline_hash.
5150         * cgraph.c: Remove definition of cgraph_inline_hash.
5151         (hash_node): Revert to hashing DECL_UID.
5152         (eq_node): Take two pointers to cgraph_node structures.
5153         Compare DECL_UIDs.
5154         (cgraph_remove_node): Pass the node directly to htab_find_slot.
5155         (cgraph_varpool_hash_node): Rename hash_varpool_node;
5156         hash on DECL_UID.
5157         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
5158         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
5159         (cgraph_node): Allocate a temporary node on the stack, fill in
5160         its DECL field, and pass that to htab_find_slot.
5161         (cgraph_varpool_node): Likewise.
5162         (cgraph_function_possibly_inlined_p): If global info is ready,
5163         return the DECL_POSSIBLY_INLINED bit.
5164         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
5165         instead of mucking with cgraph_inline_hash.
5166
5167 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5168
5169         * doc/contrib.texi: Add g77 contributors.
5170
5171 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5172
5173         * calls.c (initialize_argument_information): Forbid sibcalls if a
5174         callee-copied argument is stored in the current function's frame.
5175
5176 2004-05-22  Eric Christopher  <echristo@redhat.com>
5177
5178         * fix-header.c (read_scan_file): Update for add_path change.
5179
5180 2004-05-22  Ben Elliston  <bje@au.ibm.com>
5181
5182         * c.opt (Wmissing-include-dirs): New.
5183         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
5184         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
5185         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
5186         * c-incpath.h (add_path): Add fourth (bool) argument.
5187         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
5188         (add_standard_paths): Likewise.
5189         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
5190         is used and the directory was user-supplied via -I.
5191         (add_path): Set p->user_supplied_p.  Remove duplicated code by
5192         using add_cpp_dir_path ().
5193         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
5194         (struct cpp_dir): Add user_supplied_p.
5195         * doc/invoke.texi (Warning Options): Document new option.
5196
5197 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
5198
5199         * fold-const.c (fold_read_from_constant_string): Convert result to
5200         requested type.
5201
5202 2004-05-21  Richard Henderson  <rth@redhat.com>
5203
5204         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
5205         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
5206         Don't mark VA_ARG_EXPRs volatile here.
5207         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
5208
5209 2004-05-21  Richard Henderson  <rth@redhat.com>
5210
5211         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
5212         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
5213
5214 2004-05-21  Roger Sayle  <roger@eyesopen.com>
5215
5216         * fold-const.c (fold, fold_relational_hi_lo,
5217         nondestructive_fold_binary_to_constant,
5218         fold_read_from_constant_string): Use fold_convert instead of convert.
5219         * builtins.c (simplify_builtin, simplify_builtin_strstr,
5220         simplify_builtin_strchr, simplify_builtin_strrchr,
5221         simplify_builtin_strpbrk): Use fold_convert instead of convert.
5222
5223 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
5224
5225         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
5226         is NULL.
5227
5228 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
5229
5230         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
5231         override sparc.h definition.
5232
5233 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5234
5235         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
5236         get_unwidened, get_narrower): Replace build with build2.
5237         * fold-const.c (negate_expr, associate_trees, size_binop,
5238         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
5239         pedantic_omit_one_operand, distribute_bit_expr,
5240         make_bit_field_ref, optimize_bit_field_compare,
5241         decode_field_reference, range_binop, make_range,
5242         build_range_check, fold_range_test, fold_truthop,
5243         optimize_minmax_comparison, extract_muldiv_1,
5244         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
5245         fold_inf_compare, fold_single_bit_test, fold,
5246         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
5247         Likewise replace build with either build2 or build3.
5248
5249 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
5250
5251         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
5252         * calls.c (prepare_call_address): Don't test
5253         NO_RECURSIVE_FUNCTION_CSE.
5254         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
5255         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5256         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5257         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5258         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5259         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5260         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5261         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5262         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5263         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5264         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5265         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
5266         Likewise.
5267         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5268         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
5269         * doc/tm.texi (Costs): Remove documentation for
5270         NO_RECURSIVE_FUNCTION_CSE.
5271
5272 2004-05-20  Paul Brook  <paul@codesourcery.com>
5273
5274         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
5275         * unwind-dw2.c (extract_cie_info): Ditto.
5276         (_Unwind_FrameState): Change retaddr_column to word type.
5277
5278 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5279
5280         PR middle-end/3074
5281         * fold-const.c (strip_compound_expr): Delete function.
5282         (count_cond): Delete function.
5283         (fold_binary_op_with_conditional_arg): Only perform transformations
5284         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
5285         when a is constant.  This greatly simplifies this routine.
5286
5287         * tree.c (saved_expr_p): Delete function.
5288         * tree.h (saved_expr_p): Delete function prototype.
5289
5290 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5291
5292         * common.opt (ftree-loop-optimize): Remove.
5293
5294 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
5295
5296         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
5297         (NM_FOR_TARGET): Use := and $(shell).
5298         (mainversion): Remove unused variable.
5299
5300 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5301
5302         * reorg.c (delete_from_delay_slot): If we have a barrier after the
5303         sequence containing the insn to be deleted, always reemit it.
5304
5305 2004-05-20  Richard Henderson  <rth@redhat.com>
5306
5307         PR 15454
5308         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
5309         * function.c (expand_function_start): Expand static_chain_decl by hand.
5310         * gimplify.c (create_tmp_var_name): Export.
5311         * tree-gimple.h (create_tmp_var_name): Declare.
5312
5313 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5314
5315         * rs6000.c (print_operand) <case 'z'>: Call
5316         mark_decl_referenced before assemble_name.
5317
5318 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
5319
5320         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5321         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5322         (cgraph_varpool_node): Hash on the pointer to the decl, not
5323         the DECL_UID.  Fixes 64-bit bootstrap failure.
5324
5325 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
5326
5327         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
5328         we don't earlyclobber operands used in the second insn.
5329
5330 2004-05-20  Steven Bosscher  <stevenb@suse.de>
5331
5332         * tree-mudflap.c: Formatting fixes.
5333
5334 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
5335
5336         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
5337         * gengtype.c (open_base_files): Include reload.h in ifiles.
5338         * reload.h (reg_equiv_memory_loc_varray): Declare.
5339         * reload1.c (reg_equiv_memory_loc_varray): New variable.
5340         (init_reload): Initialize it.
5341         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
5342         reg_equiv_memory_loc_varray to size 0.
5343         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
5344         growing reg_equiv_memory_loc_varray to the desired size.
5345         * passes.c (rest_of_handle_old_regalloc): Likewise.
5346         * reload.c: Amend comment on calling init_reload.
5347
5348 2004-05-20  Nick Clifton  <nickc@redhat.com>
5349
5350         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
5351         with 'TRAMP' in the body of the macro definition.
5352
5353 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
5354
5355         PR target/15383
5356         * config/ia64/ia64.c (ia64_expand_compare): Don't check
5357         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
5358         cmptf_libfunc isn't set.
5359         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
5360         conventions.
5361         (ia64_sysv4_init_libfuncs): New.
5362
5363         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
5364         ia64_sysv4_init_libfuncs.
5365
5366 2004-05-20  Falk Hueffner  <falk@debian.org>
5367
5368         PR other/15526
5369         * libgcc2.c (__mulvsi3): Fix overflow test.
5370
5371 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
5372
5373         PR c/14171
5374         * reg-stack.c (nan): Rename to ...
5375         (not_a_num): Here.
5376         (reg_to_stack): Rename nan to not_a_num.
5377         (subst_stack_regs_pat): Likewise.
5378         (convert_regs_entry): Likewise.
5379         (convert_regs_1): Likewise.
5380
5381         * tree-cfg.c (find_case_label_for_value): Replace call to
5382         simple_cst_equal with tree_int_cst_equal.
5383
5384 2004-05-19  Jeff Law <law@redhat.com>
5385
5386         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
5387         If the operand is for a use, then strip away the SSA_NAME, do not
5388         strip away the SSA_NAME for a set.  Never call release_ssa_name.
5389         (mark_def_sites): Appropriately pass additional argument to
5390         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
5391         then set the VDEF_RESULT to the VDEF_OP.
5392         (set_def_block): Strip away any SSA_NAME to get to the real
5393         underlying variable.
5394
5395         * tree-ssa-phiopt.c (value_replacement): Handle the case where
5396         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
5397         BB directly.
5398
5399 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5400
5401         PR c++/15463
5402         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
5403         result of inverse.
5404
5405         PR rtl-optimization/15274
5406         * loop-iv.c (determine_max_iter, shorten_into_mode,
5407         iv_number_of_iterations): Handle constants correctly.
5408         * rtl.h (get_mode_bounds): Declaration changed.
5409         * stor-layout.c (get_mode_bounds): Return a constant suitable for
5410         the target mode.
5411
5412         PR rtl-optimization/14692
5413         * loop-unswitch.c (may_unswitch_on): Try folding the result.
5414         (unswitch_single_loop): Work correctly when may_unswitch_on
5415         returns a folded constant.
5416
5417         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
5418         * simplify-rtx.c (simplify_const_relational_operation): Optimize
5419         comparisons with mode bounds.
5420
5421         * function.c (struct temp_slot): Add new field prev.
5422         (free_after_compilation, init_temp_slots): Free new fields.
5423         (cut_slot_from_list, insert_slot_to_list,
5424         temp_slots_at_level, max_slot_level, move_slot_to_level,
5425         make_slot_available): New functions.
5426         (assign_stack_temp_for_type, combine_temp_slots,
5427         find_temp_slot_from_address, preserve_temp_slots,
5428         preserve_rtl_expr_result, free_temp_slots,
5429         free_temps_for_rtl_expr, pop_temp_slots): Work with
5430         the new structure of lists.
5431         (mark_all_temps_used): Removed.
5432         * function.h (struct function): Field x_temp_slots
5433         replaced by x_used_temp_slots and x_avail_temp_slots.
5434         (temp_slots): Replaced by ...
5435         (used_temp_slots, avail_temp_slots): New.
5436         * tree.h (mark_all_temps_used): Declaration removed.
5437
5438         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
5439         simplify_using_assignment): Take the expression out of
5440         the expr_list wrapper.
5441
5442         * loop-iv.c (iv_number_of_iterations): Improve clasification of
5443         infinite loops.
5444
5445 2004-05-19  Roger Sayle  <roger@eyesopen.com>
5446
5447         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
5448         costs should be based on code size when optimizing for size.
5449
5450 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
5451
5452         * fold-const.c: Remove non-printable character 160.
5453
5454 2004-05-19  Nick Clifton  <nickc@redhat.com>
5455
5456         * doc/invoke.texi (ARM Options): Fix typo.
5457         Remove descrption of -mshort-load-bytes and
5458         -mno-short-load-bytes.
5459
5460         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
5461         missing parenthesis.
5462         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
5463         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
5464
5465 2004-05-19  Steven Bosscher  <stevenb@suse.de>
5466
5467         * expr.c (store_constructor): Build loop start and end by hand
5468         instead of via loop functions from stmt.c.
5469         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
5470         Remove the code to expand them.
5471
5472         * stmt.c (loop_stack): Remove this and everything related.
5473         (struct nesting, enum nesting_desc): Update.
5474         (expand_fixup): Likewise.
5475         (expand_loop_start, expand_start_loop_continue_elsewhere,
5476         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
5477         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
5478         expand_exit_loop_if_false, expand_exit_loop_top_cond,
5479         expand_exit_something): Remove.
5480         * tree.h: Remove prototypes.
5481
5482 2004-05-18  Mike Stump  <mrs@apple.com>
5483             Devang Patel  <dpatel@apple.com>
5484
5485         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
5486         if this label is for eh.
5487         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
5488         * config/darwin.c (darwin_emit_unwind_label): Likewise.
5489         * dwarf2out.c (output_call_frame_info): Likewise.
5490         * output.h (default_emit_unwind_label): Likewise.
5491         * target.h (unwind_label): Likewise.
5492         * varasm.c (default_emit_unwind_label): Likewise.
5493
5494         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
5495         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
5496         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
5497         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
5498         DEBUG_RANGES_SECTION): Define.
5499
5500 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
5501
5502         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5503         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5504         (cgraph_varpool_node):
5505         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
5506         (cgraph_function_possibly_inlined_p): Use the decl itself for
5507         the key, not DECL_ASSEMBLER_NAME.
5508         (change_decl_assembler_name): No need to muck with the hash tables.
5509         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
5510         Delete.
5511         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
5512         for the key, not DECL_ASSEMBLER_NAME.
5513         * cgraph.h: Remove prototypes of deleted functions.
5514         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
5515         (mark_decl_referenced): New function.
5516         * tree.h: Prototype mark_decl_referenced.
5517         * final.c (output_addr_const) <case SYMBOL_REF>: Call
5518         mark_decl_referenced before assemble_name.
5519         * c-decl.c (finish_decl): Use mark_decl_referenced.
5520
5521 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
5522             Jeff Law <law@redhat.com>
5523
5524         * tree-ssa-phiopt.c (abs_replacement): New function.
5525         (empty_block_p): New function extracted from...
5526         (candidate_bb_for_phi_optimization): Break out empty block test.
5527         (conditional_replacement): Use empty_block_p.
5528         (value_replacement): Similarly.
5529
5530         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
5531         * tree-ssa-phiopt.c: Include flags.h.
5532         (conditional_replacement): Remove argument names from prototype.
5533         Minor formatting and comment fixes.
5534         (tree_ssa_phiopt): If conditional_replacement returns false, then
5535         call value_replacement.
5536         (value_replacement): New function.
5537
5538 2004-05-18  Jeff Law  <law@redhat.com>
5539
5540         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
5541         from conditional_replacement.
5542         (candidate_bb_for_phi_optimization): Similarly.
5543         (conditional_replacement): Use replace_phi_with_stmt and
5544         candidate_bb_for_phi_optimization.
5545
5546         * tree-ssa-phiopt.c: Fix various formatting issues.
5547
5548 2004-05-18  Steven Bosscher  <stevenb@suse.de>
5549
5550         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
5551         s390_expand_cmpmem): Do not use expand_start_loop and
5552         expand_end_loop, instead build the loop manually.
5553
5554 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
5555
5556         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
5557         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
5558
5559 2004-05-17  Jeff Law  <law@redhat.com>
5560
5561         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
5562         * flags.h (flag_delete_null_pointer_checks): Here.
5563         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
5564         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
5565         (add_phi_arg, remove_phi_arg_num): Similarly.
5566         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
5567         property into PHI nodes.
5568         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
5569         (record_equivalences_from_phis): If all PHI arguments are known to be
5570         nonzero, then the result must be nonzero as well.
5571         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
5572         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
5573         appropriately.  Walk the USE-DEF chains and propagate nonzero property
5574         as appropriate.
5575         * tree.h (PHI_ARG_NONZERO): Define.
5576         (phi_arg_d): Add nonzero flag.
5577
5578 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
5579
5580         * f: Entire directory removed
5581
5582         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
5583         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
5584         (g77_integer_type_node, g77_uinteger_type_node)
5585         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
5586         * c-common.c (c_common_nodes_and_builtins): Do not initialize
5587         the above set of variables.
5588
5589         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
5590         * doc/invoke.texi, doc/standards.texi: Remove cross-references
5591         to g77 manual.
5592
5593 2004-05-17  Steven Bosscher  <stevenb@suse.de>
5594
5595         PR tree-optimization/15438
5596         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
5597         attributed functions as pure or const.
5598
5599 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
5600
5601         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
5602         from source code with errors.
5603
5604 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
5605
5606         Enable tree browser for all front ends.
5607         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
5608         (BACKEND): ...to here.
5609
5610 2004-05-17  Jan Hubicka  <jh@suse.cz>
5611
5612         * i386.c (construct_container): Do not produce BLKmode registers.
5613         (classify_argument): Properly compute alignment of complex types.
5614
5615 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
5616
5617         PR target/15084
5618         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
5619         and renamed to movdi_insv_1_rex64.
5620         (insv): Support SImode for 32bit and DImode for 64bit.
5621
5622 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5623
5624         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
5625         (TARGET_SWITCHES): Remove debugg.
5626         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
5627         TARGET_64BIT.
5628         (subdi3): Replace the define_expand with a define_insn, the latter
5629         renamed from subdi3_internal_3.
5630         (negdi2): Likewise negdi2_internal_2.
5631         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
5632         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
5633         and associated define_splits.
5634         (adddi3_internal): Renamed from adddi3_internal_3.
5635         (ashldi3_internal): Likewise ashldi3_internal4.
5636         (ashrdi3_internal): Likewise ashrdi3_internal4.
5637         (lshrdi3_internal): Likewise lshrdi3_internal4.
5638
5639 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5640
5641         * optabs.c (expand_unop): Try implementing negation using subtraction
5642         from zero.
5643
5644 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5645
5646         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
5647         SAR register.
5648
5649 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
5650
5651         PR target/10982
5652         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
5653         (ne_zeroextractsi_shifted): New pattern.
5654         (ite_ne_zeroextractsi): New pattern.
5655         (ite_ne_zeroextractsi_shifted): New pattern.
5656
5657 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5658
5659         * c-gimplify.c (c_genericize):
5660         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
5661         * c-parse.in <expr_no_commas>: Likewise.
5662         <if_prefix>: Likewise.
5663         <select_or_iter_stmt>: Likewise.
5664         * expr.c (expand_var, expand_expr_real_1): Likewise.
5665         * expr.h (expand_expr): Make it a static inline function.
5666         Move prototype for expand_expr_real up before this.
5667         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
5668         Likewise.
5669         * gimplify.c (gimple_boolify, gimplify_addr_expr,
5670         gimplify_asm_expr, gimplify_expr): Likewise.
5671         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
5672         dump_function_to_file): Likewise.
5673         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
5674         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
5675         * tree-into-ssa.c (dump_tree_ssa): Likewise.
5676         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
5677         Likewise.
5678         * tree-optimize.c (execute_one_pass): Likewise.
5679         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
5680         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
5681
5682         * objc/objc-act.c (objc_build_try_enter_fragment,
5683         objc_build_try_epilogue, objc_build_catch_stmt,
5684         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
5685         with lang_hooks.foo ().
5686
5687 2004-05-15  Roger Sayle  <roger@eyesopen.com>
5688
5689         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
5690         that simplify_builtin doesn't destructively modify its argument.
5691
5692 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5693
5694         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
5695         implementations for ARM and Thumb.
5696         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
5697
5698 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
5699
5700         * prefix.c (update_path): Replace PREFIX with KEY only
5701         when it matches a full directory name in PATH.
5702
5703 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5704
5705         * arm.h (TARGET_APCS_32): Delete.
5706         (TARGET_MMU_TRAPS): Delete.
5707         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
5708         define __APCS_26__.
5709         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
5710         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
5711         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
5712         (prog_mode_type): Delete.
5713         (PROMOTE_MODE): Always promote unsigned for HImode.
5714         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
5715         (MASK_RETURN_ADDR): Simplify.
5716         * arm.c (arm_prgmode): Delete.
5717         (arm_override_options, arm_gen_rotated_half_load): Simplify.
5718         (print_multi_reg, output_return_instruction): Simplify.
5719         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
5720         (arm_return_addr): Simplify.
5721         * arm.md (prog_mode): Delete.
5722         (conds): Simplify.
5723         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
5724         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
5725         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
5726         (loadhi_shiftpredec): Delete.
5727         (peephole for post-increment on HImode load): Delete.
5728         * arm/crtn.asm: (FUNC_END): Simplify.
5729         * arm/lib1funcs.asm: Remove APCS-26 return macros.
5730         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
5731         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
5732         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
5733         MULTILIB_DEFAULTS as required.
5734         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
5735         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
5736         variables as required.
5737         * doc/invoke.texi (ARM Options): Remove obsolete flags.
5738
5739 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
5740
5741         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
5742         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
5743         count to 8 to handle n_reg > 2.
5744
5745 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5746
5747         * doc/extend.texi: Update WG14 URL.
5748
5749 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5750
5751         * basic-block.h (life_analysis, delete_noop_moves):
5752         Update prototypes.
5753         * bt-load.c (branch_target_load_optimize): Don't take the
5754         insns stream as an argument.  Update the life_analysis calls.
5755         * combine.c (combine_instructions): Update delete_noop_moves
5756         calls.
5757         * flow.c (notice_stack_pointer_modification): Don't take the
5758         insns stream as an argument.  Work on the flow graph.
5759         (life_analysis): Likewise.
5760         (delete_noop_moves): Likewise.
5761         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
5762         (rest_of_handle_life): Update life_analysis call.
5763         (rest_of_compilation): Likewise, and also update
5764         branch_target_load_optimize call.
5765         * ra.c (reg_alloc): Update life_analysis call.
5766         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
5767         the insns stream as an argument.
5768         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
5769         call.
5770         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
5771         prototypes.
5772         * value-profile.c (branch_prob): Update life_analysis call.
5773         * web.c (web_main): Work on the CFG, not on the insns stream.
5774
5775         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
5776         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
5777         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5778
5779 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5780
5781         PR c/15444
5782         * c-format.c (avoid_dollar_number): New function.
5783         (check_format_info_main): Call avoid_dollar_number when operand
5784         numbers might occur but has_operand_number == 0.
5785
5786 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
5787
5788         * arm.md (all peephole2 patterns): Use predicates that validate
5789         register classes as appropriate.
5790
5791 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5792
5793         PR opt/14472
5794         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
5795         ignore type conversions that do not inhibit tail calling.
5796         (find_tail_calls): Likewise.
5797
5798 2004-05-14  Jeff Law  <law@redhat.com>
5799
5800         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
5801         bother marking bypassed virtuals for out-of-ssa.  Instead merge
5802         bypassed virtuals into vars_to_rename just before into-ssa pass.
5803
5804         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
5805         so that it picks up more opportunities to eliminate ABS expressions
5806         or turn them into negations.
5807
5808 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5809
5810         * passes.c (rest_of_handle_null_pointer): Remove.
5811         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
5812         (rest_of_compilation): Likewise.
5813         * rtl.h (delete_null_pointer_checks): Remove prototype.
5814         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
5815         Remove declarations.
5816         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
5817         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
5818         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
5819         expr_reaches_here_p, computing_insn, def_reaches_here_p,
5820         can_disregard_other_sets, handle_avail_expr, classic_gcse,
5821         one_classic_gcse_pass, invalidate_nonnull_info,
5822         delete_null_pointer_checks_1, delete_null_pointer_checks,
5823         expr_reached_here_p_work): Remove.
5824         (gcse_main): Do not perform classic GCSE when optimizing for size.
5825         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
5826         are never used.
5827
5828 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
5829
5830         PR optimization/14466
5831         * tree-complex.c (make_temp): Remove.
5832         (gimplify_val): Replace make_temp with make_rename_temp
5833         and add NULL as the second argument.
5834         (expand_complex_div_wide): Likewise.
5835         * tree-dfa.c (make_rename_temp): New function.
5836         * tree-flow.h (make_rename_temp): Declare.
5837         * tree-sra.c (make_temp): Remove.
5838         (lookup_scalar): Replace make_temp with make_rename_temp.
5839         (create_scalar_copies): Likewise.
5840         * tree-ssa-phiopt.c (conditional_replacement): When we
5841         get non gimple create a temporary variable to hold the
5842         casted expression.
5843
5844 2004-05-14  Paul Brook  <paul@codesourcery.com>
5845
5846         * stor-layout.c (update_alignment_for_field): Use
5847         targetm.align_anon_bitfield.
5848         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
5849         (TARGET_INITIALIZER): Use it.
5850         * target.h (struct gcc_target): Add align_anon_bitfield.
5851         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
5852         (TARGET_ALIGN_ANON_BITFIELD): Define.
5853         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
5854
5855 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
5856
5857         * tree.def (documentation): Remove mention of class 'b'.
5858         (BLOCK): Now in class 'x'.
5859         * c-common.c (verify_tree): Remove case 'b'.
5860         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
5861         * calls.c (calls_function_1): Control cannot get past the switch
5862         when exp is a BLOCK.
5863         * print-tree.c (print_node): Move code for class 'b' to the class
5864         'c'/'x' switch, as case BLOCK.
5865         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
5866         (unsafe_for_reeval, substitute_placeholder_in_expr)
5867         (stabilize_reference_1): Remove case 'b'.
5868         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
5869         of something being 'b' to tests for TREE_CODE of something being
5870         BLOCK.
5871         * tree-ssa-operands.c (get_expr_operands): Likewise.
5872
5873 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5874
5875         * tree-gimple.c: Rename from tree-simple.c.
5876         * tree-gimple.h: Rename from tree-simple.h.
5877         * c-gimplify.c: Rename from c-simplify.c
5878         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
5879         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
5880         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
5881         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
5882         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
5883         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
5884         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
5885         Update.
5886
5887 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5888
5889         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
5890
5891 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5892
5893         * tree-ssa.c (delete_tree_ssa): XFREE
5894         bitmaps allocated with BITMAP_XMALLOC.
5895
5896         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
5897         idfs_cache at the end of the function.
5898
5899         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
5900         at the end of the function.
5901
5902         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
5903         el at the end of the function.
5904
5905         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
5906         bitmaps allocated with BITMAP_XMALLOC.
5907
5908         * loop-unswitch.c (unswitch_single_loop): Free bbs at
5909         the end.
5910
5911         * final.c (shorten_branches): Free uid_shuid before
5912         reallocating it.
5913
5914         * bb-reoder.c (connect_traces): Free cold_traces at the end.
5915
5916 2004-05-13  Jeff Law  <law@redhat.com>
5917
5918         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
5919         variables.  Simplify slightly by using USE_OP/DEF_OP instead
5920         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
5921
5922         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
5923         rather than iterating through the blocks testing each bit in
5924         livein to initialize the worklist.
5925         (mark_def_sites): Remove useless checks of KILLS for virtual
5926         operands.
5927
5928         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
5929         new parameters for the statement and variable worklist as well
5930         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
5931         worklist recording interesting variables in the variable worklist
5932         and bitmap.  Handle casts between integral and boolean types.
5933         (substitute_single_use_vars): Accept new parameters for the statement
5934         and variable worklist.  When a substitution is made add a new
5935         entry to the statement worklist.  Handle casts between integral
5936         and boolean types.
5937         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
5938         worklists to children.  Iterate until the statement worklist
5939         is empty.
5940
5941 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5942
5943         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
5944         the end of the block.
5945
5946         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
5947         with BITMAP_XMALLOC.
5948
5949         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
5950         with BITMAP_XMALLOC.
5951
5952         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
5953         Free nonzero_vars at the end of the function.
5954
5955         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
5956         need to generate code instead of a NOP_EXPR.
5957
5958 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
5959
5960         * gcc.c (default_compilers): Fill out initializers for new Fortran
5961         entries.
5962
5963 2004-05-13  Paul Brook  <paul@codesourcery.com>
5964
5965         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
5966
5967 2004-05-13  Paul Brook  <paul@codesourcery.com>
5968
5969         * config/arm/arm.c (arm_default_short_enums): New function.
5970         (TARGET_DEFAULT_SHORT_ENUMS): Define.
5971
5972 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5973
5974         Merge from tree-ssa-20020619-branch.
5975
5976         * Makefile.in (reload1.o-warn): Add.
5977         (tree-alias-ander.o-warn): Add.
5978         (GMPLIBS): Define.
5979         (GMPINC): Define.
5980         (BANSHEELIB): Define.
5981         (BANSHEEINC): Define.
5982         (TREE_DUMP_H): Define.
5983         (TREE_SIMPLE_H): Define.
5984         (TREE_FLOW_H): Define.
5985         (LIBDEPS): Add BANSHEELIB.
5986         (INCLUDES): Add BANSHEEINC and GMPINC.
5987         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
5988         c-mudflap.o and c-pretty-print.o.
5989         (C_OBJS): Remove c-pretty-print.o.
5990         (OBJS-common): Remove sibcall.o.
5991         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
5992         tree-ssa.o, tree-optimize.o, tree-simple.o,
5993         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
5994         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
5995         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
5996         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
5997         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
5998         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
5999         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
6000         tree-tailcall.o, gimple-low.o, tree-iterator.o,
6001         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
6002         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
6003         tree-profile.o.
6004         (OBJC-archive): Add tree-nomudflap.o.
6005         (cc1): Add dependency on @TREEBROWSER@.
6006         (c-decl.o): Add dependency on TREE_DUMP_H.
6007         (c-dump.o): Likewise.
6008         (c-common.o): Add dependency on tree-iterator.h
6009         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
6010         (gtype-desc.o): Add dependency on TREE_FLOW_H.
6011         (tree.o): Add dependency on tree-iterator.h,
6012         BASIC_BLOCK_H and TREE_FLOW_H.
6013         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
6014         (langhooks.o): Add dependency on TREE_SIMPLE_H.
6015         (tree-alias-type.o, tree-alias-ander.o,
6016         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
6017         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
6018         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
6019         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
6020         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
6021         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
6022         tree-nested.o, tree-iterator.o, tree-dfa.o,
6023         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
6024         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
6025         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
6026         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
6027         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
6028         tree-sra.o, tree-complex.o, tree-profile.o,
6029         rtl-profile.o): New rules.
6030         (function.o): Add dependency on basic-block.h
6031         (expr.o): Add dependency on tree-iterator.h.
6032         (sibcall.o): Remove.
6033         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
6034         (cfg.o): Add dependency on TIMEVAR_H.
6035         (cfghooks.o): Add dependency on TREE_FLOW_H.
6036         (reg-stack.o): Add dependency on basic-block.h.
6037         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
6038         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
6039         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
6040         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
6041         tree-alias-type.h, tree-alias-common.h,
6042         tree-alias-type.c, tree-alias-common.c,
6043         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
6044         rtl-profile.c and tree-nested.c.
6045         (gt-tree-alias-common.h, gt-tree-mudflap.h,
6046         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
6047         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
6048         gt-tree-cfg.h, gt-tree-nested.h): New rules.
6049         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
6050         * basic-block.h: Include predict.h
6051         (struct edge_def): Add GTY marker.
6052         Change field 'insns' to be a union of tree and rtx.
6053         (EDGE_TRUE_VALUE): Define.
6054         (EDGE_FALSE_VALUE): Define.
6055         (EDGE_EXECUTABLE): Define.
6056         (struct bb_ann_d): Forward declare.
6057         (struct basic_block_def): Add GTY marker.
6058         Remove fields head_tree and end_tree.
6059         Add fields stmt_list, rbi and tree_annotations.
6060         (struct reorder_block_def): Define.
6061         (basic_block_info): Add GTY marker.
6062         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
6063         variables instead of macros.
6064         (flow_call_edges_add): Remove declaration.
6065         (make_eh_edge): Remove declaration.
6066         (brief_dump_cfg, find_edge, tree_predicted_by_p,
6067         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
6068         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
6069         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
6070         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
6071         (try_redirect_by_replacing_jump): Modfiy return type to
6072         edge instead of bool.
6073         * bb-reorder.c (copy_bb): Call duplicate_block
6074         instead of cfg_layout_duplicate_bb.
6075         (copy_bb_p): Call can_duplicate_block_p instead of
6076         cfg_layout_can_duplicate_bb_p.
6077         * bitmap.c (bitmap_first_set_bit): Abort if word
6078         wasn't found.
6079         (bitmap_last_set_bit): Likewise.
6080         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
6081         (DEF_FUNCTION_TYPE_3): Add.
6082         * builtins.c (c_strlen): Make extern.
6083         (builtin_save_expr): New.
6084         (expand_builtin_nonlocal_goto): New.
6085         (expand_builtin_constant_p): Remove.
6086         (expand_builtin_mathfn): Call builtin_save_expr instead
6087         of save_expr.
6088         (expand_builtin_mathfn_2): Likewise.
6089         (expand_builtin_strcmp): Likewise.
6090         (expand_builtin_strncmp): Likewise.
6091         (expand_builtin_strcat): Likewise.
6092         (fold_builtin_cabs): Likewise.
6093         (expand_builtin_alloca): Don't trigger if -fmudflap is
6094         given.
6095         (build_string_literal): Set TREE_INVARIANT on new node.
6096         (expand_builtin_profile_fun): New.
6097         (round_trampoline_addr): New.
6098         (expand_builtin_init_trampoline): New.
6099         (expand_builtin_adjust_trampoline): New.
6100         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
6101         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
6102         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
6103         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
6104         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
6105         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
6106         Handle.
6107         (fold_builtin_expect): New.
6108         (fold_builtin_isascii): Don't return non-constant results
6109         in GIMPLE form.
6110         (fold_builtin_isdigit): Likewise.
6111         (fold_builtin_1): New.
6112         (fold_builtin): Call it.
6113         (build_function_call_expr): Update call to build a new
6114         CALL_EXPR.
6115         (purge_builtin_constant_p): Remove.
6116         (simplify_builtin, simplify_builtin_memcmp,
6117         simplify_builtin_strcmp, simplify_builtin_strncmp,
6118         simplify_builtin_strpbrk, simplify_builtin_strstr,
6119         simplify_builtin_strchr, simplify_builtin_strrchr,
6120         simplify_builtin_strcat, simplify_builtin_strncat,
6121         simplify_builtin_strspn, simplify_builtin_strcspn,
6122         simplify_builtin_next_arg, simplify_builtin_va_start,
6123         simplify_builtin_sprintf): New.
6124         * builtins.def (BUILT_IN_STACK_ALLOC,
6125         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
6126         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
6127         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
6128         BUILT_IN_PROFILE_FUNC_EXIT): Define.
6129         * c-common.c: Include tree-iterator.h and hashtab.h.
6130         (lang_statement_code_p): Declare.
6131         (lang_gimplify_stmt): Declare.
6132         (fix_string_type): Set TREE_INVARIANT for value.
6133         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
6134         (c_type_hash): New.
6135         (c_common_get_alias_set): Handle multiple type nodes
6136         referring to "the same" type, currently for C90 only.
6137         (c_add_case_label): Use create_artificial_label.
6138         (finish_label_address_expr): Don't set TREE_CONSTANT on
6139         result.
6140         (c_expand_expr): Don't handle STMT_EXPR.
6141         (handle_alias_attribute): Marke aliased variables to be
6142         TREE_STATIC.
6143         (handle_nonnull_attribute): Initialize arg_num.
6144         (check_function_nonnull): Likewise.
6145         (c_walk_subtrees): New.
6146         (c_estimate_num_insns_1): Don't handle
6147         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
6148         (c_decl_uninit_1): Remove.
6149         (c_decl_uninit): Remove.
6150         (c_warn_unused_result): New.
6151         * c-common.def (ASM_STMT): Change number of operands
6152         to 4.
6153         (FILE_STMT): Remove.
6154         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
6155         Remove.
6156         (lang_gimplify_stmt): Add.
6157         (expand_stmt): Remove.
6158         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
6159         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
6160         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
6161         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
6162         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
6163         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6164         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6165         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
6166         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
6167         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
6168         genrtl_compound_stmt, genrtl_asm_stmt,
6169         genrtl_cleanup_stmt, c_decl_uninit): Remove.
6170         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
6171         c_tree_chain_matters_p, c_warn_unused_result,
6172         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
6173         Declare.
6174         * c-convert.c (convert): Make convert work when
6175         converting to compatible types across translation unit.
6176         * c-decl.c: Include langhooks.h, tree-mudflap.h,
6177         tree-simple.h, diagnostic.h and tree-dump.h
6178         (merge_decls): Initialize oldtype to NULL.
6179         (finish_decl): Use DECL_HARD_REGISTER instead of
6180         DECL_C_HARD_REGISTER.
6181         (check_bitfield_type_and_width): Check for null
6182         lang_type_specific when check the precision of an enum.
6183         (grokdeclarator): Immediately layout an ARRAY_TYPE used
6184         in a pointer-to-array declarator.
6185         (finish_struct): Clear allocated struct lang_type.
6186         (finish_enum): Set enum_min and enum_max.  Set
6187         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
6188         not to the enumerators.
6189         (set_decl_nonlocal): New.
6190         (store_parm_decls): Use it via walk_tree.
6191         (c_finalize): New.
6192         (finish_function): When !targetm.have_ctors_dtors,
6193         record static constructors and destructors here...
6194         (c_expand_body_1): ... not here.
6195         (c_expand_decl): Rename from c_expand_decl_stmt.
6196         Handle all C-specific expansion semantics.
6197         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
6198         STMT_LINENO.
6199         * c-format.c (handle_format_arg_attribute): Initialize
6200         format_num.
6201         * c-lang.c: Include tree-inline.h
6202         (LANG_HOOKS_EXPAND_DECL,
6203         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6204         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
6205         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
6206         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
6207         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
6208         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
6209         (c_types_compatible_p): New.
6210         * c-mudflap.c: New file.
6211         * c-objc-common.c: Include tree-mudflap.h
6212         (start_cdtor, finish_cdtor): Collapse
6213         together into
6214         (build_cdtor): ...here.  Update to construct a complete tree
6215         for the function.  No need to call push_scope, pop_scope, or
6216         clear_last_expr, or set current_function_cannot_inline.
6217         (c_missing_noreturn_ok_p): Change prototype to return
6218         bool.
6219         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
6220         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
6221         opts.c.
6222         (c_common_post_options): Don't ever use rtl inlining.
6223         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
6224         * c-pragma.c (handle_pragma_redefine_extname): Define
6225         always.
6226         (init_pragma): Activate #pragma redefine_extname for mudflap.
6227         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
6228         (pp_c_initializer): Accept any type CONSTRUCTOR.
6229         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
6230         COMPLEX_TYPE.
6231         (decl_name_str): New local function.
6232         (pp_c_direct_declarator): Call it.
6233         (pp_c_primary_expression): Call it.
6234         (pp_c_id_expression): Call it.
6235         (pp_c_statement): Call it.
6236         (print_c_tree): Create new pp object.
6237         * c-pretty-print.h (pp_c_tree_decl_identifier,
6238         print_c_tree): Declare.
6239         * c-semantics.c: Include langhooks.h
6240         (lang_expand_stmt, lang_expand_decl_stmt,
6241         find_reachable_label_1, find_reachable_label,
6242         expand_unreachable_if_stmt, expand_unreachable_stmt,
6243         genrtl_do_stmt_1): Remove.
6244         (begin_stmt_tree): Don't check for changed filename.
6245         Call annotate_with_locus.
6246         (finish_stmt_tree): Don't set line for end of function.
6247         (build_stmt): Don't check type nodes for
6248         side effects.
6249         (build_stmt): Set TREE_SIDE_EFFECTS.
6250         Set EXPR_LOCUS instead of STMT_LINENO.
6251         (lang_expand_stmt, lang_expand_decl_stmt,
6252         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6253         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6254         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
6255         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
6256         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
6257         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
6258         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
6259         find_reachable_label_1, expand_unreachable_if_stmt,
6260         expand_unreachable_stmt): Remove.
6261         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
6262         * c-simplify.c: New file.
6263         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
6264         (struct lang_type): Add fields enum_min and enum_max.
6265         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
6266         (c_expand_decl, c_missing_noreturn_ok_p,
6267         c_types_compatible_p): Declare.
6268         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
6269         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
6270         (default_function_array_conversion): Rely on build to
6271         set TREE_CONSTANT.
6272         (parser_build_binary_op, pointer_diff): Likewise.
6273         (build_unary_op, build_binary_op): Likewise.
6274         (build_array_ref):
6275         (build_external_ref): Set TREE_INVARIANT.
6276         (build_c_cast, pop_init_level): Likewise.
6277         (process_init_element): Use ASM_VOLATILE_P.
6278         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
6279         (c_finish_case): Call c_do_switch_warnings.
6280         * c.opt (fdump-): Remove.
6281         * calls.c (try_to_integrate): Remove.
6282         (prepare_call_address): Replace fndecl arg with a
6283         precomputed static chain value.
6284         (emit_call_1): New argument for full call expr.
6285         (flags_from_decl_or_type): Call special_function_p.
6286         (initialize_argument_information): Add argument
6287         may_tailcall.
6288         (purge_reg_equiv_notes): New.
6289         (expand_call): Do not try to expand calls inline.
6290         (fixup_tail_calls): New.
6291         * cfg.c: Include timevar.h and ggc.h.
6292         (bb_pool, edge_pool): Remove.
6293         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
6294         (entry_exit_blocks): Remove.
6295         (rbi_pool): Declare.
6296         (init_flow): Do not create pools.
6297         Allocate entry/exit block.
6298         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
6299         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
6300         (unlink_block): Clear b->prev_bb and b->next_bb.
6301         (compact_blocks): Clear all slots of BASIC_BLOCK array.
6302         (dump_flow_info): Work on trees too.
6303         (dump_cfg_bb_info): New.
6304         (brief_dump_cfg): New.
6305         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
6306         (find_edge): New.
6307         * cfgbuild.c (rtl_make_eh_edge): Rename from
6308         make_eh_edge.  Update all users.
6309         (find_basic_blocks): Don't call VARRAY_FREE on
6310         basic_block_info.
6311         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
6312         and newpos2.
6313         (delete_unreachable_blocks): Return changed status.
6314         (merge_seq_blocks): New.
6315         * cfghooks.c: Include tree-flow.h
6316         (tree_register_cfg_hooks, ir_type): New.
6317         (redirect_edge_and_branch): Change return type to edge.
6318         (predict_edge, predicted_by_p, can_duplicate_block_p,
6319         duplicate_block, block_ends_with_call_p,
6320         block_ends_with_condjump_p, flow_call_edges_add): New.
6321         * cfghooks.h (redirect_edge_and_branch): Change return
6322         type to edge.
6323         (predict_edge, predicted_by_p, can_duplicate_block_p,
6324         duplicate_block, block_ends_with_call_p,
6325         block_ends_with_condjump_p, flow_call_edges_add): Declare.
6326         (redirect_edge_and_branch): Change return type to edge.
6327         (struct cfg_hooks): Add fields block_ends_with_call_p,
6328         block_ends_with_condjump_p, flow_call_edges_add,
6329         predict_edge, predicted_by_p, can_duplicate_block_p and
6330         duplicate_block.
6331         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
6332         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
6333         (fixup_reorder_chain): Use initialize_bb_rbi.
6334         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
6335         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
6336         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
6337         (insn_locators_initialize): Use new info about blocks.
6338         * cfglayout.h (typedef struct reorder_block_def): Moved to
6339         basic_block.h.
6340         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
6341         removed.
6342         * cfgloop.c: Include tree.h and tree-flow.h.
6343         * cfgloop.h (create_loop_notes): Declare.
6344         * cfgloopmanip.c (create_loop_notes): New.
6345         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
6346         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
6347         and duplicate_block fields.
6348         (create_basic_block_structure): Don't look at
6349         RTX_INTEGRATED_P.
6350         (rtl_block_ends_with_call_p): New.
6351         (rtl_block_ends_with_condjump_p): New.
6352         (need_fake_edge_p): Moved from cfganal.c.
6353         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
6354         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
6355         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
6356         (cfg_layout_rtl_cfg_hooks): Ditto.
6357         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
6358         functions to be reachable.
6359         * cgraphunit.c (decide_is_function_needed):
6360         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
6361         inline functions don't need to be output.
6362         (cgraph_assemble_pending_functions): Don't do anything
6363         special for nested functions.
6364         (cgraph_mark_functions_to_output): Likewise.
6365         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
6366         (cgraph_analyze_function): Use estimate_num_insns.
6367         (cgraph_mark_functions_to_output): Likewise.
6368         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
6369         (cgraph_expand_function): Allow functions to not be
6370         emitted.
6371         (cgraph_remove_unreachable_nodes):
6372         (cgraph_recursive_inlining_p): Simplify.
6373         (lookup_recursive_calls,
6374         cgraph_decide_recursive_inlining): New.
6375         (cgraph_decide_inlining_*): Update calls of
6376         cgraph_mark_inline.
6377         * combine.c (get_pos_from_mask): Always set *plen.
6378         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
6379         ftree-based-profiling, ftree-ccp, ftree-ch,
6380         ftree-combine-temps, ftree-copyrename, ftree-dce,
6381         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
6382         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
6383         ftree-lrs): Add.
6384         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
6385         Undefine.
6386         * configure.ac: Add --enable-tree-browser option.
6387         Add --with-libbanshee option.
6388         Add GMPLIBS and GMPINC.
6389         * configure: Regenerate.
6390         * coverage.c (tree_ctr_tables): New.
6391         (coverage_counter_alloc): Use it.
6392         (build_ctr_info_value): Ditto.
6393         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
6394         (tree_coverage_counter_ref): New.
6395         * coverage.h (coverage_counter_ref): Remove declaration.
6396         (rtl_coverage_counter_ref): Declare.
6397         (tree_coverage_counter_ref): Declare.
6398         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
6399         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
6400         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
6401         (struct cse_basic_block_data): Rename enum values to not
6402         conflict with profile.h; update all uses.
6403         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
6404         in comments.
6405         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
6406         * diagnostic.h (debug_output_buffer, dump_generic_node,
6407         print_generic_stmt, print_generic_stmt_indented,
6408         print_generic_expr, print_generic_decl,
6409         debug_generic_expr, debug_generic_stmt, debug_c_tree):
6410         Declare.
6411         * dominance.c: Cache immediate dominators.
6412         * domwalk.c: New file.
6413         * domwalk.h: New file.
6414         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
6415         (gen_subprogram_die): Generate a DIE for a named
6416         return value.
6417         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
6418         (add_location_or_const_value_attribute): Likewise.
6419         (add_bound_info): Likewise.
6420         (gen_decl_die): Likewise.
6421         * emit-rtl.c (maybe_set_first_label_num): New.
6422         (copy_most_rtx): Don't copy the integrated flag.
6423         Copy the new return_val flag.
6424         * et-forest.c (MAX_NODES): Define.
6425         (record_path_before_1): Abort if len is greater than
6426         MAX_NODES.
6427         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
6428         gen_eh_region_catch, gen_eh_region_allowed,
6429         gen_eh_region_must_not_throw, get_eh_region_number,
6430         get_eh_region_may_contain_throw, get_eh_region_tree_label,
6431         set_eh_region_tree_label, expand_resx_expr): New.
6432         (expand_eh_region_start, expand_start_catch): Use them.
6433         (expand_end_catch): Tidy.
6434         (note_eh_region_may_contain_throw): Take region argument.
6435         (note_current_region_may_contain_throw): New.
6436         (get_exception_filter): Export.
6437         (collect_eh_region_array): Export.
6438         (remove_unreachable_regions): Check ERT_TRY based on reachability
6439         of catches, not reachability of continue_label.  Never remove
6440         ERT_MUST_NOT_THROW regions.
6441         (collect_rtl_labels_from_trees): New.
6442         (convert_from_eh_region_ranges): Use it.
6443         (connect_post_landing_pads): Handle dying cleanups.
6444         (struct reachable_info): Add callback data.
6445         (add_reachable_handler): Invoke the callback.
6446         (foreach_reachable_handler): New.
6447         (reachable_handlers): Use it.
6448         (arh_to_landing_pad, arh_to_label): New.
6449         (can_throw_internal_1): Split out from can_throw_internal.
6450         (can_throw_external_1): Similarly.
6451         * except.h: Update.
6452         * explow.c (emit_stack_save): Remove savearea mode check.
6453         (update_nonlocal_goto_save_area): New.
6454         (allocate_dynamic_stack_space): Use it.
6455         (probe_stack_range): Never emit loop notes.
6456         * expmed.c (extract_fixed_bit_field): Always propagate the
6457         target for the shift if it is a REG.
6458         * expr.c: Include tree-iterator.h
6459         (is_zeros_p): Remove.
6460         (categorize_ctor_elements_1, categorize_ctor_elements): New.
6461         (count_type_elements): New.
6462         (mostly_zeros_p): Use them.
6463         (expr_wfl_stack): Remove.
6464         (convert_move): Do nothing if to and from are the same.
6465         (emit_block_move_via_loop): Don't emit LOOP notes.
6466         (emit_move_insn): Don't handle CONSTANT_P_RTX.
6467         (emit_move_insn_1): Don't generate inline warnings.
6468         (expand_vars, expand_var): Split from ...
6469         (expand_expr_1): ... here.
6470         (expand_expr_real, expand_expr_real_1):  Use new macros
6471         EXPR_LOCATION and EXPR_HAS_LOCATION.
6472         * expr.h (simplify_builtin_fputs,
6473         simplify_builtin_strcpy, simplify_builtin_strncpy,
6474         expand_var, fixup_tail_calls,
6475         update_nonlocal_goto_save_area): Declare.
6476         (lookup_static_chain, expand_inline_function,
6477         mark_seen_cases): Remove.
6478         (prepare_call_address): Change type of 2nd argument to
6479         rtx.
6480         * final.c (profile_function): Update static chain test.
6481         (final): Don't look at RTX_INTEGRATED_P.
6482         * flags.h (flag_mudflap, flag_mudflap_threads,
6483         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
6484         flag_tree_dce, flag_tree_combine_temps,
6485         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
6486         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
6487         flag_tree_points_to): Declare.
6488         (enum pta_type): Declare.
6489         * flow.c (lang_missing_noreturn_ok_p): Remove.
6490         (check_function_return_warnings): Remove.
6491         (update_life_info): Update comments.
6492         (free_basic_block_vars): Don't call VARRAY_FREE for
6493         basic_block_info.
6494         (regno_uninitialized): Remove.
6495         * fold-const.c (int_const_binop): Make extern.
6496         (non_lvalue): Rely on build to set TREE_CONSTANT.
6497         (operand_equal_p): Replace only_const argument with
6498         flags.  Allow pure functions if OEP_PURE_SAME.
6499         (fold): Use OEP_ONLY_CONST.
6500         (invert_truthvalue) <NOP_EXPR> Break if argument is of
6501         boolean type.
6502         (fold_relational_hi_lo,
6503         nondestructive_fold_binary_to_constant,
6504         nondestructive_fold_unary_to_constant,
6505         fold_read_from_constant_string): New.
6506         * function.c (struct function): Remove calls_constant_p.
6507         (current_function_calls_constant_p): Remove.
6508         (inline_function_decl): Remove.
6509         (put_var_into_stack): Don't use it.
6510         (fix_lexical_addr): Likewise.
6511         (inline_function_decl): Remove extern declaration.
6512         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
6513         (trampolines_created): Move to varasm.c.
6514         (free_after_compilation): Update for removed fields.
6515         (allocate_struct_function): Likewise.
6516         (delete_handlers, lookup_static_chain): Remove.
6517         (fix_lexical_addr): Don't consider non-local variable refs.
6518         (trampoline_address): Remove.
6519         (round_trampoline_addr): Move to builtins.c.
6520         (adjust_trampoline_addr): Remove.
6521         (expand_function_start): Update for changes to static chain
6522         and nonlocal goto handling.
6523         (initial_trampoline): Move to varasm.c.
6524         (expand_function_end): Don't build trampolines or kill
6525         unreferenced nonlocal goto labels.
6526         (free_after_compilation): Don't set it.
6527         (expand_function_end): Likewise.
6528         (setjmp_vars_warning): Rename from
6529         uninitialized_vars_warning, remove uninitialized vars warning.
6530         (uninitialized_vars_warning): Remove old comment
6531         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
6532         and do not call the langhook.
6533         (expand_function_start, expand_function_end): Don't do
6534         function instrumentation here.
6535         (clear_block_marks): Rename from reorder_blocks_0, export.
6536         (blocks_nreverse): Export.
6537         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
6538         of rtl.
6539         (reset_block_changes, record_block_change, finalize_block_changes,
6540         check_block_change, free_block_changes): New functions.
6541         (assign_parms): Setting of current_function_stdarg
6542         moved ...
6543         (allocate_struct_function): ... here.
6544         * function.h (struct function): Remove x_nonlocal_labels,
6545         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
6546         x_context_display, x_trampoline_list, needs_context.
6547         Add static_chain_decl, nonlocal_goto_save_area.
6548         (struct function): Remove x_clobber_return_insn.
6549         Add tail_call_emit field, last_label_uid,
6550         unexpanded_var_list, dont_emit_block_notes,
6551         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
6552         (clear_block_marks): Declare.
6553         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
6554         (mfwrap_spec, mflib_spec): Declare.
6555         (cpp_unique_options, cc1_options): Ditto.
6556         (default_compilers): Add .F and .f90.
6557         (static_specs): Add mfwrap and mflib.
6558         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
6559         CONSTANT_RTX_P.
6560         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
6561         Update to match insns field in struct edge_def.
6562         * gdbinit.in (pgs, pge): Define.
6563         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
6564         instead of the integrated flag.
6565         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
6566         * gengtype-yacc.y (bitfieldlen): Add empty action.
6567         (struct_fields): Accept unnamed bitfields.
6568         (bitfieldlen): Split from ...
6569         (bitfieldopt): ... here.
6570         * gengtype.c (ifiles): Add tree-alias-type.h and
6571         tree-flow.h.
6572         * genrecog.c (validate_pattern): Do not handle
6573         CONSTANT_P_RTX.
6574         * gimple-low.c: New file.
6575         * gimplify.c: New file.
6576         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
6577         (restore_line_notes): Do not set RTX_INTEGRATED_P.
6578         * ifcvt.c (dead_or_predicable): Initialize local variable
6579         'earliest'.
6580         * input.h (expr_wfl_stack): Remove.
6581         * integrate.c (INTEGRATE_THRESHOLD): Remove.
6582         (setup_initial_hard_reg_value_integration): Likewise.
6583         (initialize_for_inline): Likewise.
6584         (note_modified_parmregs): Likewise.
6585         (integrate_parm_decls): Likewise.
6586         (process_reg_param): Likewise.
6587         (save_parm_insns): Likewise.
6588         (copy_insn_list): Likewise.
6589         (copy_insn_notes): Likewise.
6590         (compare_blocks): Likewise.
6591         (find_block): Likewise.
6592         (inlining): Likewise.
6593         (function_cannot_inline_p): Likewise.
6594         (parmdecl_map): Likewise.
6595         (in_nonparam_insns): Likewise.
6596         (save_for_inline): Likewise.
6597         (FIXED_BASE_PLUS): Likewise.
6598         (expand_inline_function): Likewise.
6599         (copy_rtx_and_substitute): Don't look at map->integrating,
6600         map->inline_target, and inlining, since we are never copying
6601         for integrating.
6602         Don't abort on RTX_INTEGRATED_P.
6603         (old_fun): Remove.
6604         (output_inline_function): Remove.
6605         * integrate.h (struct inline_map): Remove fields integrating,
6606         block_map, leaf_reg_map, inline_target, and local_return_label.
6607         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
6608         copy_loop_headers, never_reached_warning): Removed.
6609         (any_uncondjump_p): Reject nonlocal goto.
6610         * langhooks-def.h (lhd_types_compatible_p,
6611         lhd_expand_decl, lhd_gimplify_expr): Declare.
6612         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6613         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6614         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6615         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6616         LANG_HOOKS_GIMPLIFY_EXPR,
6617         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
6618         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6619         LANG_HOOKS_GIMPLIFY_EXPR,
6620         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
6621         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
6622         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
6623         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6624         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
6625         LANG_HOOKS_DECL_UNINIT,
6626         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
6627         * langhooks.c: Include tree-simple.h.
6628         (lhd_expand_decl): New.
6629         (lhd_types_compatible_p): New.
6630         (lhd_decl_uninit): Remove.
6631         (lhd_gimplify_expr): New.
6632         * langhooks.h (struct lang_hooks_for_rtl_expansion):
6633         Remove.
6634         (struct lang_hooks_for_functions): Add field
6635         missing_noreturn_ok_p.
6636         (struct lang_hooks): Add field expand_decl,
6637         types_compatible_p, gimplify_expr and
6638         gimple_before_inlining.
6639         Remove fields decl_uninit and rtl_expand
6640         * opts.c (decode_options): Set flag_tree_ccp,
6641         flag_tree_dce, flag_tree_dom, flag_tree_dse,
6642         flag_tree_pre, flag_tree_ter,
6643         flag_tree_live_range_split, flag_tree_sra,
6644         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
6645         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
6646         OPT_fmudflapth, OPT_fmudflapir,
6647         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
6648         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
6649         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
6650         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
6651         OPT_ftree_points_to_ and OPT_ftree_pre.
6652         * output.h (regno_uninitialized, find_basic_blocks,
6653         cleanup_cfg, delete_unreachable_blocks,
6654         check_function_return_warnings): Remove.
6655         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
6656         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
6657         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
6658         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
6659         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
6660         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
6661         Define.
6662         * passes.c (rest_of_decl_compilation):
6663         (rest_of_handle_sibling_calls): Remove.
6664         (rest_of_handle_inlining): Remove.
6665         (rest_of_handle_gcse): Do not run
6666         purge_builtin_constant_p.
6667         (rest_of_compilation): Update.
6668         Do not call copy_loop_headers.
6669         Do rtl-based profiling only when
6670         !flag_tree_based_profiling.  Register rtl-based profiling
6671         hooks.
6672         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
6673         (predicted_by_p): Rename to ...
6674         (rtl_predicted_by_p): .. this one; make global
6675         (tree_predicted_by_p): New.
6676         (dump_prediction): Add FILE argument.
6677         (predict_edge): Rename to ...
6678         (rtl_predict_edge): .. this one.
6679         (tree_predict_edge): New.
6680         (combine_predictions_for_insn): Update calls of predict_edge.
6681         (predict_loops): Break out from ...
6682         (estimate_probability): ... here; update comments; move updating
6683         of unknown probabilities from ...
6684         (estimate_bb_frequencies): ... here.
6685         (combine_predictions_for_bb): New.
6686         (tree_predict_by_opcode): New.
6687         (tree_estimate_probability): New.
6688         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
6689         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
6690         * predict.h: Add include guard.
6691         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
6692         * pretty-print.c (pp_write_text_to_stream): Make extern.
6693         * pretty-print.h (pp_write_text_to_stream): Declare.
6694         * print-rtl.c (print_rtx): Don't print the integrated flag.
6695         Print the return_val flag.
6696         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
6697         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
6698         Remove support for EXPR_WITH_FILE_LOCATION nodes.
6699         (print_node): Print TREE_INVARIANT and TREE_VISITED.
6700         * profile.c: Include cfghooks.h, tree-flow.h.
6701         (profile_hooks): New.
6702         (profile_dump_file): New.
6703         (instrument_edges): Use hooks instead of RTL-specific code.
6704         (instrument_values): Ditto.
6705         (get_exec_counts): Ditto.
6706         (compute_branch_probabilities): Ditto.
6707         (compute_value_histograms): Ditto.
6708         (branch_prob): Ditto.
6709         (find_spanning_tree): Ditto.
6710         (end_branch_prob): Ditto.
6711         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
6712         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
6713         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
6714         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
6715         (tree_register_profile_hooks): New.
6716         (rtl_register_profile_hooks): New.
6717         * ra-rewrite.c (rewrite_program): Clear variable info.
6718         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
6719         * regs.h: Add include guards.
6720         * reload.c (decompose): Clear val using memset.
6721         * rtl.def (CONSTANT_P_RTX): Remove.
6722         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
6723         (copy_loop_headers): Remove.
6724         (struct rtx_def): Replace the integrated flag with the
6725         return_val flag.
6726         (maybe_set_first_label_num): Declare.
6727         (init_branch_prob): Move declaration to value-prof.h.
6728         (end_branch_prob): Ditto.
6729         (branch_prob): Ditto.
6730         (never_reached_warning): Don't declare it.
6731         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
6732         (hoist_insn_to_edge): Update to match field insns in
6733         struct edge_def.
6734         * sbitmap.c (sbitmap_realloc): New.
6735         * sbitmap.h (sbitmap_realloc): Declare.
6736         * sibcall.c: Remove file.
6737         * simplify-rtx.c (simplify_rtx): Do not handle
6738         CONSTANT_P_RTX.
6739         * stmt.c (parse_output_constraint): Don't warn for read-write
6740         memory operand.
6741         (tail_recursion_args): Use types_compatible_p langhook.
6742         (force_label_rtx): Don't look at inline_function_decl.
6743         (label_rtx): Set LABEL_PRESERVE_P appropriately.
6744         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
6745         (declare_nonlocal_label): Remove.
6746         (expand_goto): Don't handle nonlocal gotos.
6747         (expand_nl_handler_label): Remove.
6748         (expand_nl_goto_receivers): Remove.
6749         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
6750         update_nonlocal_goto_save_area.
6751         (expand_expr_stmt_value): Check TREE_NO_WARNING.
6752         (warn_if_unused_value): Likewise.
6753         (expand_start_loop, expand_loop_continue_here,
6754         expand_end_loop): Don't create loop notes.
6755         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
6756         mark_seen_cases, check_for_full_enumeration_handling): Remove.
6757         (expand_end_case_type): Don't do warn_switch handling.
6758         (pushcase, pushcase_range) Update add_case_node calls.
6759         (add_case_node): Add dont_expand_label argument.
6760         (same_case_target_p): Don't search rtl.
6761         (expand_start_bindings_and_block, expand_end_bindings):
6762         Don't emit block notes when dont_emit_block_notes.
6763         (using_eh_for_cleanups_p): Export.
6764         (expand_return): Allow any typed rhs.
6765         (expand_stack_alloc): New.
6766         (expand_stack_save, expand_stack_restore): New.
6767         (containing_blocks_have_cleanups_or_stack_level): New
6768         function.
6769         (asm_op_is_mem_input): New fn.
6770         (expand_asm_expr): New fn.
6771         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
6772         nodes.
6773         * stor-layout.c (layout_type): Just return if type is
6774         error_mark_node.
6775         (update_alignment_for_field): Export.
6776         (variable_size): We don't care about global_bindings_p if
6777         the frontend doesn't want a list of the expressions.
6778         * system.h: Poison INTEGRATE_THRESHOLD.
6779         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
6780         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
6781         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
6782         TV_TREE_SSA_OTHER, TV_TREE_OPS,
6783         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
6784         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
6785         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
6786         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
6787         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
6788         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
6789         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
6790         TV_CONTROL_DEPENDENCES): Define.
6791         * toplev.c: Include tree-alias-common.h
6792         (current_file_decl, flag_mudflap, flag_mudflap_threads,
6793         flag_mudflap_ignore_reads, flag_tree_based_profiling,
6794         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
6795         flag_tree_dce, flag_tree_ch, flag_tree_sra,
6796         flag_tree_combine_temps, flag_tree_ter,
6797         flag_tree_live_range_split, flag_tree_dom,
6798         flag_tree_copyrename, flag_tree_dse): Declare.
6799         (f_options): Add tree-based-profiling, tree-gvn,
6800         tree-pre, tree-ccp, tree-dce,
6801         tree-dominator-opts, tree-copyrename, tree-dse,
6802         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
6803         (wrapup_global_declarations): Don't output nested inlined functions.
6804         (general_init): Call init_tree_optimization_passes.
6805         (process_options): Sorry for -ftree-based-profiling plus
6806         -ftest-coverage or -fprofile-values.
6807         * toplev.h (init_tree_optimization_passes,
6808         flag_tree_based_profiling): Declare.
6809         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
6810         * tree-alias-ander.c: New file.
6811         * tree-alias-ander.h: New file.
6812         * tree-alias-common.c: New file.
6813         * tree-alias-common.h: New file.
6814         * tree-alias-type.c: New file.
6815         * tree-alias-type.h: New file.
6816         * tree-browser.c: New file.
6817         * tree-browser.def: New file.
6818         * tree-cfg.c: New file.
6819         * tree-complex.c: New file.
6820         * tree-dfa.c: New file.
6821         * tree-dump.c (dump_enable_all): New.
6822         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
6823         (dump_node): Remove const from field suffix and swtch.
6824         (dump_files): Add null entry, .generic, .nested, .vcg,
6825         .xml and a match-all entry.
6826         (extra_dump_files, extra_dump_files_in_use,
6827         extra_dump_files_alloced): Declare
6828         (dump_option_value_info): Add raw, details, stats,
6829         blocks, vops, lineno, uid and all.
6830         (dump_register): New.
6831         (get_dump_file_info): New.
6832         (dump_begin): Call it.
6833         Do nothing for TDI_none.
6834         (dump_begin): Include phase number in dump filename.
6835         (dump_enable_all): New.
6836         (dump_switch_p_1): Split out from dump_switch_p.
6837         (dump_switch_p): Handle extra_dump_files.
6838         Start our scan at TDI_none + 1.
6839         If -fdump-tree-all was given, call dump_enable_all.
6840         * tree-dump.h: Include splay-tree.h.
6841         (dump_function, dump_function_to_file, dump_register):
6842         Declare.
6843         * tree-eh.c: New file.
6844         * tree-flow-inline.h: New file.
6845         * tree-flow.h: New file.
6846         * tree-inline.c: Re-write to handle inlining on GIMPLE.
6847         * tree-inline.h (walk_tree,
6848         walk_tree_without_duplicates): Move to tree.h.
6849         (estimate_num_insns): Declare.
6850         * tree-into-ssa.c: New file.
6851         * tree-iterator.c: New file.
6852         * tree-iterator.h: New file.
6853         * tree-mudflap.c: New file.
6854         * tree-mudflap.h: New file.
6855         * tree-nested.c: New file.
6856         * tree-nomudflap.c: New file.
6857         * tree-nrv.c: New file.
6858         * tree-optimize.c (dump_flags, vars_to_rename,
6859         in_gimple_form, all_passes, pass_gimple,
6860         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
6861         (execute_gimple, execute_rebuild_bind,
6862         gate_all_optimizations, execute_del_cfg,
6863         register_one_dump_file, register_dump_files, dup_pass_1,
6864         init_tree_optimization_passes, execute_todo,
6865         execute_one_pass, execute_pass_list): New.
6866         (clear_decl_rtl): Remove.
6867         (tree_rest_of_compilation): Update to use tree
6868         optimizers.
6869         * tree-outof-ssa.c: New file.
6870         * tree-pass.h: New file.
6871         * tree-phinodes.c: New file.
6872         * tree-pretty-print.c: New file.
6873         * tree-profile.c: New file.
6874         * tree-simple.c: New file.
6875         * tree-simple.h: New file.
6876         * tree-sra.c: New file.
6877         * tree-ssa-alias.c: New file.
6878         * tree-ssa-ccp.c: New file.
6879         * tree-ssa-copy.c: New file.
6880         * tree-ssa-copyrename.c: New file.
6881         * tree-ssa-dce.c: New file.
6882         * tree-ssa-dom.c: New file.
6883         * tree-ssa-dse.c: New file.
6884         * tree-ssa-forwprop.c: New file.
6885         * tree-ssa-live.c: New file.
6886         * tree-ssa-live.h: New file.
6887         * tree-ssa-loop.c: New file.
6888         * tree-ssa-operands.c: New file.
6889         * tree-ssa-operands.h: New file.
6890         * tree-ssa-phiopt.c: New file.
6891         * tree-ssa-pre.c: New file.
6892         * tree-ssa.c: New file.
6893         * tree-ssanames.c: New file.
6894         * tree-tailcall.c: New file.
6895         * tree.c: Include tree-iterator.h, basic-block.h and
6896         tree-flow.h.
6897         (tree_node_kind): Add phi_nodes and ssa names.
6898         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
6899         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
6900         (make_node_stat): Handle PHI_NODE and SSA_NAME.
6901         <'c'> Set TREE_INVARIANT.
6902         (copy_node_stat): Abort if trying to copy a
6903         STATEMENT_LIST.
6904         Clear TREE_VISITED.
6905         Clear annotation field.
6906         (build_constructor): Copy TREE_INVARIANT from vals.
6907         Don't clear TREE_CONSTANT.
6908         (expr_first, expr_last, expr_length): Remove.
6909         (staticp): Pass unknown component references to the language.
6910         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
6911         (skip_simple_arithmetic): Likewise.
6912         (stabilize_reference_1): Likewise.
6913         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
6914         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
6915         STATEMENT_LIST.
6916         (lhd_unsave_expr_now): Remove.
6917         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
6918         (recompute_tree_invarant_for_addr_expr): New.
6919         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
6920         Call recompute_tree_invarant_for_addr_expr.
6921         Set TREE_INVARIANT accordingly.
6922         (build2_stat): Don't handle CALL_EXPR.
6923         (build3_stat): Don't call build2_stat for CALL_EXPRs.
6924         (build_expr_wfl): Remove.
6925         (annotate_with_file_line, annotate_with_locus): New.
6926         (simple_cst_equal): Call simple_cst_list_equal to compare
6927         CONSTRUCTOR_ELTS pointers.
6928         (iterative_hash_expr): Don't hash types associated
6929         with conversions.  Instead hash on the signedness of the
6930         toplevel object and the operand of the conversion.
6931         (dump_tree_statistics): Call ssanames_print_statistics
6932         and phinodes_print_statistics.
6933         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
6934         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
6935         needs_to_live_in_memory): New.
6936         (initializer_zerop): Handle VECTOR_CST.  Don't check
6937         AGGREGATE_TYPE_P for CONSTRUCTOR.
6938         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
6939         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
6940         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
6941         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
6942         (CALL_EXPR): Add another operand.
6943         (EXPR_WITH_FILE_LOCATION): Remove.
6944         (SWITCH_EXPR): Add another operand.
6945         * tree.h: Update various comments.
6946         (union tree_ann_d): Forward declare.
6947         (struct tree_common): Add fields nowarning_flag,
6948         invariant_flag and visited.
6949         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
6950         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
6951         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
6952         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
6953         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
6954         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
6955         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
6956         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
6957         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
6958         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
6959         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
6960         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
6961         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
6962         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
6963         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
6964         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
6965         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
6966         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
6967         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
6968         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
6969         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
6970         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
6971         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
6972         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
6973         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
6974         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
6975         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
6976         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
6977         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
6978         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
6979         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
6980         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
6981         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
6982         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
6983         TDF_UID,): Define.
6984         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
6985         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
6986         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
6987         EXPR_WFL_SET_LINECOL): Remove.
6988         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
6989         make_phi_node, init_phinodes, fini_phinodes,
6990         release_phi_node, phinodes_print_statistics,
6991         init_ssanames, fini_ssanames, make_ssa_name,
6992         release_ssa_name, ssanames_print_statistics,
6993         annotate_with_file_line, build_empty_stmt,
6994         annotate_with_locus, expr_only, categorize_ctor_elements,
6995         count_type_elements, add_var_to_bind_expr, is_essa_node,
6996         expand_stack_alloc, expand_stack_save,
6997         expand_stack_restore, add_case_node, operand_equal_p,
6998         nondestructive_fold_unary_to_constant,
6999         nondestructive_fold_binary_to_constant,
7000         fold_read_from_constant_string, int_const_binop,
7001         strip_float_extensions, simplify_builtin, c_strlen,
7002         recompute_tree_invarant_for_addr_expr,
7003         needs_to_live_in_memory, make_vector,
7004         setjmp_vars_warning, update_alignment_for_field,
7005         expand_asm_expr, asm_op_is_mem_input,
7006         containing_blocks_have_cleanups_or_stack_level,
7007         create_artificial_label, gimplify_function_tree,
7008         get_name, unshare_expr, walk_tree,
7009         walk_tree_without_duplicates, in_gimple_form): Declare.
7010         (struct tree_exp): Add fields locus and block.
7011         (struct tree_ssa_name, struct edge_def, struct
7012         tree_phi_node, struct tree_eref_common, struct
7013         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
7014         union alias_var_def, struct tree_statement_list_node,
7015         struct tree_statement_list, enum operand_equal_flag): Declare.
7016         (enum tree_node_structure_enum): Add TS_SSA_NAME,
7017         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
7018         TS_STATEMENT_LIST.
7019         (union tree_node): Add fields ssa_name, phi, eref, ephi,
7020         euse and stmt_list.
7021         (function_cannot_inline_p, uninitialized_vars_warning,
7022         save_for_inline, output_inline_function, all_cases_count,
7023         check_for_full_enumeration_handling,
7024         declare_nonlocal_label): Remove.
7025         (enum tree_dump_index): Add TDI_none, TDI_tu,
7026         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
7027         * unroll.c (unroll_loop): Don't clear map->inline_target.
7028         * unwind-sjlj.c (uw_install_context): Make a proper static inline
7029         function.
7030         * value-prof.c (value_prof_hooks): New.
7031         (find_values_to_profile): Rename to rtl_find_values_to_profile.
7032         Move rtl-specific bits in from branch_prob.
7033         (value_profile_transformations): Rename to
7034         rtl_value_profile_transformations.
7035         (struct value_prof_hooks): New.
7036         (rtl_value_prof_hooks): New.
7037         (rtl_register_value_prof_hooks): New.
7038         (tree_find_values_to_profile): New stub.
7039         (tree_value_profile_transformations): New stub.
7040         (tree_value_prof_hooks): New stub.
7041         (tree_register_value_prof_hooks): New stub.
7042         (find_values_to_profile): New.
7043         (value_profile_transformations): New.
7044         * value-prof.h: Add multiple inclusion guard.
7045         (struct histogram_value): Change rtx fields to void *.
7046         (rtl_register_value_prof_hooks): New declaration.
7047         (tree_register_value_prof_hooks): New declaration.
7048         (find_values_to_profile): New declaration.
7049         (free_profiled_values): New declaration.
7050         (value_profile_transformations): New declaration.
7051         (struct profile_hooks): New declaration.
7052         (init_branch_prob): Declaration moved from rtl.h.
7053         (branch_prob): Declaration moved from rtl.h.
7054         (end_branch_prob): Declaration mooved from rtl.h.
7055         (tree_register_profile_hooks): New declaration.
7056         (rtl_register_profile_hooks): New declaration.
7057         (tree_profile_hooks): New declaration.
7058         (rtl_profile_hooks): New declaration.
7059         * varasm.c: Include tree-mudflap.h.
7060         (TRAMPOLINE_ALIGNMENT): Remove.
7061         (make_decl_rtl): Call mudflap_enqueue_decl.
7062         (assemble_static_space):
7063         (assemble_trampoline_template): Set and return
7064         TRAMPOLINE_ALIGNMENT.
7065         * varray.c (element): Add GENERIC_PTR_NOGC entry.
7066         Add entry for 'tree *'.
7067         Add entry for struct edge_def *.
7068         (varray_copy): New.
7069         * varray.h (enum varray_data_enum): Add
7070         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
7071         VARRAY_DATA_TREE_PTR.
7072         (union varray_data_tag): Corresponding changes.
7073         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
7074         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
7075         VARRAY_EDGE, VARRAY_TREE_PTR,
7076         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
7077         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
7078         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
7079
7080         * config/*/*: Various updates for changed macros, tree
7081         codes, etc.  Check ChangeLog.tree-ssa.
7082
7083         * doc/cfg.texi: New file.
7084         * doc/tree-ssa.texi: New file.
7085         * doc/c-tree.texi: Document new codes.
7086         * doc/gccint.texi: Include new files.
7087         * doc/install.texi: Document new features.
7088         * doc/invoke.texi: Document new switches.
7089         * doc/passes.texi: Document new passes.
7090         * doc/rtl.texi: Update changed RTL codes.
7091         * doc/sourcebuild.texi: Update build instructions.
7092         * doc/standards.texi: Document Fortran changes.
7093         * doc/tm.texi: Update.
7094
7095 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
7096
7097         Replace several arrays with a struct of arrays.
7098         * combine.c (struct reg_stat): New.
7099         (init_reg_last_arrays): Renamed to...
7100         (init_reg_last): ...this.  Callers adjusted.
7101         (reg_stat): New.
7102         (combine_instructions): Allocate it and use it.
7103         (reg_last_death, reg_last_set, reg_last_set_value,
7104         reg_last_set_label, reg_last_set_table_tick,
7105         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
7106         reg_last_set_mode, reg_last_set_nonzero_bits,
7107         reg_last_set_sign_bit_copies): Replace throughout
7108         with items of reg_stat.
7109
7110 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7111
7112         PR optimization/15100
7113         * combine.c (distribute_notes): Don't create a dangling
7114         REG_LIBCALL/REG_RETVAL note.
7115
7116 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7117
7118         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
7119
7120         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
7121         negv2si2.
7122
7123 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7124
7125         * doc/md.texi (Standard Names): Fix typo in vec_init description.
7126
7127 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
7128
7129         * doc/gty.texi (GTY Options): Clarify example.
7130
7131 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
7132
7133         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
7134         Add const qualifier to altivec vector type if one is needed.
7135
7136 2004-05-11  Paul Brook  <paul@codesourcery.com>
7137
7138         * flags.h (flag_short_enums): Update comment.
7139         * opts.c (decode_options): Set flag_short_enums to 2.
7140         * toplev.c (flag_short_enums): Update comment.
7141         (process_options): Call default_short_enums target hook.
7142
7143 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
7144
7145         PR target/14063
7146         * config/rs6000/altivec.md (altivec_dssall):
7147         Change to unspec_volatile.
7148         (altivec_dss): Likewise.
7149
7150 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
7151
7152         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
7153         vnor.
7154         ("one_cmplv8hi2"): Same.
7155         ("one_cmplv4si2"): Same.
7156
7157 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
7158
7159         PR target/15130
7160         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
7161         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
7162         into account.  Compute the correct number of general registers
7163         for the return value.  Generate a special push/pop sequence when
7164         failing to get a temporary register for non SHmedia epilogue.
7165         (sh_expand_epilogue): Add an argument to show whether it's for
7166         sibcall or not.  Set the 3rd argument of output_stack_adjust to
7167         -1 if needed.
7168         (sh_need_epilogue): Call sh_expand_epilogue with 0.
7169         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
7170         with 1.
7171         (epilogue): Call sh_expand_epilogue with 0.
7172
7173 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
7174
7175         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
7176         goto a cleanup label.  After the cleanup, free the allocated memory.
7177
7178 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
7179
7180         * config/rs6000/altivec.h (vec_sld): Add overloads for
7181         argument/return types of 'vector bool int', 'vector bool short'
7182         and 'vector bool char'.
7183
7184 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
7185
7186         * c-decl.c (store_parm_decls_newstyle): Correct test for a
7187         nested function.
7188
7189 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
7190
7191         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
7192         treating missing ones as "".
7193         * config/mips/mips.md: Remove constraints from match_operands and
7194         match_scratches if they appear in define_expands (except reload*),
7195         define_peephole2s, define_splits or attribute specifications.
7196         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
7197         constraint strings.
7198
7199 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7200
7201         * config/rs6000/rs6000.c (function_arg_boundary): Always align
7202         AltiVec vectors.
7203         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
7204         vectors by refererence.  Align the same for TARGET_64BIT to a 16
7205         byte boundary.  Remove useless code.  Add function comment.
7206         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
7207         call to where it belongs.
7208         (function_arg_partial_nregs): Return true for all TARGET_32BIT
7209         -mabi=no-altivec AltiVec vectors.  Fix debug output.
7210         (rs6000_va_arg): Adjust for AltiVec change.
7211
7212 2004-05-10  Paul Brook  <paul@codesourcery.com>
7213
7214         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7215         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7216         (TARGET_DOUBLEWORD_ALIGN): Use it.
7217         (WCHAR_TYPE): Define.
7218         (WCHAR_SIZE_TYPE): Define.
7219         (SIZE_TYPE): Define.
7220
7221 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7222
7223         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
7224         when size is 8 bytes.
7225         (function_arg_advance): Account for stack space used by AltiVec
7226         args when -mabi=altivec.  Simplify alignment calculations.  For
7227         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
7228         (function_arg): Similarly.
7229         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
7230         not AltiVec ABI.
7231         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
7232         Correct alignment, and align before testing reg count.  Remove
7233         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
7234         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
7235         TARGET_FPRS here..
7236         (rs6000_function_value): .. not here before call.
7237
7238 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7239
7240         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
7241
7242 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
7243
7244         PR 15007
7245         * c-decl.c (current_file_decl): Rename to all_translation_units,
7246         adjust comment.
7247         (pop_scope): If popping file_scope, construct a
7248         TRANSLATION_UNIT_DECL and make it the context of all the
7249         symbols in the scope.
7250         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
7251         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
7252         anything to current_file_decl.
7253         (pushdecl_top_level): Likewise.
7254         (store_parm_decls_newstyle): Adjust check for nested function.
7255         (c_write_global_declarations): Update for renamed variable.
7256
7257 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7258
7259         * config/rs6000/rs6000-protos.h
7260         (rs6000_conditional_register_usage): Protoize.
7261
7262         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
7263
7264         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
7265         function.
7266
7267 2004-05-08  Roger Sayle  <roger@eyesopen.com>
7268
7269         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
7270         where op is a comparison operator and C1 and C2 are integer constants
7271         into a range check.
7272         (fold): Call fold_div_compare.
7273
7274 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7275
7276         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
7277         problems with earlier versions of the GNU compiler.
7278
7279 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
7280
7281         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
7282         Declare.
7283
7284         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
7285         (rs6000_hard_regno_mode_ok): New.
7286         (rs6000_init_hard_regno_mode_ok): New.
7287         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
7288
7289         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
7290         result.
7291
7292 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
7293
7294         * config/rs6000/altivec.h (vector, pixel, bool): Do not
7295         define as macros #ifdef __APPLE_ALTIVEC__.
7296
7297 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
7298
7299         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
7300         Generate appropriate parallels for vector arguments
7301         passed to vararg functions. (function_arg): make the call
7302         to rs6000_mixed_function_arg for vector args as needed.
7303
7304 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7305
7306         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
7307         EABI_FLOAT_VARARGS_P.
7308
7309 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7310
7311         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
7312         * config/mips/mips.c (override_options): Disable branch likely
7313         instructions if TUNE_MIPS5500.
7314
7315 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7316
7317         * config/mips/mips.c (override_options): Allow the hi and lo registers
7318         to store any integral mode, not just MODE_INTs.
7319
7320 2004-05-07  Paul Brook  <paul@codesourcery.com>
7321
7322         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7323         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7324         (TARGET_DOUBLEWORD_ALIGN): Use it.
7325         (WCHAR_TYPE): Define.
7326         (WCHAR_SIZE_TYPE): Define.
7327         (SIZE_TYPE): Define.
7328
7329 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7330
7331         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
7332         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
7333
7334 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
7335
7336         * loop-doloop.c (doloop_valid_p): Make sure that body
7337         gets freed.
7338
7339 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
7340
7341         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
7342         declaration.
7343         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
7344         (sparc_skip_caller_unimp): New global variable.
7345         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
7346         Use it instead of SKIP_CALLERS_UNIMP_P.
7347         * config/sparc/sparc.md (call expander): Add sanity check.
7348         (call_address_struct_value_sp32): Re-sync with expander.
7349         (call_symbolic_struct_value_sp32): Likewise.
7350         (return peepholes): Use 'sparc_skip_caller_unimp' instead
7351         of custom predicate.
7352
7353 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7354
7355         PR c++/14962
7356         * c-pragma.c (handle_pragma_redefine_extname): Only change
7357         the assembler name of FUNCTION_DECLs and VAR_DECLs.
7358
7359 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7360
7361         * optabs.h (enum optab_index): Add new OTI_log1p.
7362         (log1p_optab): Define corresponding macro.
7363         * optabs.c (init_optabs): Initialize log1p_optab.
7364         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
7365         patterns.
7366         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
7367         using log1p_optab.
7368         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
7369         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7370
7371         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
7372
7373         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
7374         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
7375         Prototype here.
7376         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
7377         x87's fyl2xp1 instruction.
7378         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
7379         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
7380         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
7381         log1p  and log1pl built-ins as inline x87 intrinsics.
7382
7383 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
7384
7385         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
7386         * config/arm/freebsd.h: Likewise.
7387         * config/ia64/freebsd.h: Likewise.
7388         * config/sparc/freebsd.h: Likewise.
7389
7390 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
7391
7392         PR optimization/15296
7393         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
7394         getting last consecutive label at a branch.
7395         (relax_delay_slots): Similar, near top of loop.
7396
7397 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7398
7399         PR target/15202
7400         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
7401         register to general register.
7402
7403 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
7404
7405         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
7406         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
7407         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
7408         (STACK_BOUNDARY): Delete.
7409
7410 2004-05-06  Stuart Hastings  <stuart@apple.com>
7411
7412         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
7413         mistakenly clobbered by 1.423.
7414
7415 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7416
7417         * doc/invoke.texi: Document -mvr4130-align.
7418         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
7419         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
7420         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
7421         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
7422         * config/mips/mips.md: Include sched-int.h.
7423         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
7424         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
7425         (override_options): Enable -mvr4130-align at -O3 and above.
7426         (mips_sim_insn): New variable.
7427         (mips_sim): New structure.
7428         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
7429         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
7430         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
7431         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
7432         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
7433         (mips_reorg): Call vr4130_align_insns.
7434         (vr4130_last_insn): New variable.
7435         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
7436         (vr4130_swap_insns_p, vr4130_reorder): New functions.
7437         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
7438         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
7439         (mips_use_dfa_pipeline_interface): Return true for the same.
7440         * config/mips/4130.md: New file.
7441         * config/mips/mips.md: Include it.  Add a peephole2 to convert
7442         "mult;mflo" into "mtlo;macc".
7443         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
7444         target of maccs.
7445         (*msac_using_macc): New pattern.
7446
7447 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7448
7449         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
7450         (ir_vr55_hilo): Split into...
7451         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
7452         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
7453         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
7454         Add various multiplication bypasses.
7455         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
7456         multiplication.
7457
7458 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
7459
7460         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
7461         attribute to "XF".
7462
7463 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
7464
7465         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
7466         (fmod_optab, drem_optab): Define corresponding macros.
7467         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
7468         * genopinit.c (optabs): Implement fmod_optab and drem_optab
7469         using fmod?f3 and drem?f3 patterns.
7470         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
7471         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
7472         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
7473         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
7474         flag_unsafe_math_optimizations is set.
7475
7476         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
7477         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
7478
7479         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
7480         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
7481         Prototype here.
7482         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
7483         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
7484         fprem and fprem1 instructions.
7485         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
7486         Rename insn definition to x86_fnstsw_1.
7487         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
7488         x87 instructions.
7489         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
7490         and fmodl built-ins as inline x87 intrinsics.
7491         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
7492         and dreml built-ins as inline x87 intrinsics.
7493
7494 2004-05-05  Roger Sayle  <roger@eyesopen.com>
7495
7496         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
7497
7498 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
7499
7500         PR driver/9822
7501         * doc/invoke.texi (Spec Files): Remove documentation of %c.
7502
7503 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
7504
7505         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
7506         representation.
7507
7508 2004-05-06  Paul Brook  <paul@codesourcery.com>
7509
7510         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
7511         (arm_coproc_mem_operand): ... To this.
7512         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
7513         (arm_legitimate_index_p): Ditto.
7514         (vfp_mem_operand): Rename ...
7515         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
7516         (vfp_secondary_reload_class): Use it.
7517         (output_move_double): Use doubleword load/store instructions.
7518         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
7519         * config/arm/arm.h (TARGET_LDRD): Define.
7520         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
7521         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
7522         New splitter for invalid doubleword loads.
7523         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
7524         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
7525         * doc/md.texi: Document Uy constraint.
7526
7527 2004-05-05  Jan Hubicka  <jh@suse.cz>
7528
7529         PR opt/14980
7530         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
7531         inline clones.
7532
7533 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7534
7535         PR target/15290
7536         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
7537         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
7538
7539 2004-05-05  Mike Stump  <mrs@apple.com>
7540
7541         * config/darwin-c.c (add_framework): Copy the directory name as it
7542         can be freed later.  Also, ensure we always allocate enough room
7543         for the cached framework information.
7544         (find_subframework_header): Keep track of the directory where the
7545         subframework header was found.
7546         (framework_construct_pathname): Speed up by not trying to re-add a
7547         framework.
7548         * cppfiles.c (search_path_exhausted): Arrange for the missing
7549         header callback to be able to set the directory where the header
7550         was found.
7551         (cpp_get_dir): Add.
7552         * cpplib.h (missing_header_cb): Add a parameter.
7553         (cpp_get_dir): Add.
7554
7555 2004-05-03  Mike Stump  <mrs@apple.com>
7556
7557         * doc/invoke.texi (Directory Options): Document -iquote.
7558         * doc/cpp.texi: Likewise.
7559         * doc/cppopts.texi: Likewise.
7560         * c-opts.c (c_common_missing_argument): Add -iquote processing.
7561         (c_common_handle_option): Likewise.
7562         * c.opt (iquote): Add.
7563         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
7564         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
7565
7566         * c-opts.c (case OPT_I): Deprecate -I- support.
7567         * doc/invoke.texi: Likewise.
7568         * doc/cpp.texi: Likewise.
7569         * doc/cppopts.texi: Likewise.
7570
7571 2004-05-05  Steven Bosscher  <stevenb@suse.de>
7572
7573         * basic-block.h (free_basic_block_vars): Update prototype.
7574         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
7575         argument.
7576         (life_analysis): Update call.
7577         * ifcvt.c (if_convert): Likewise.
7578         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
7579         * passes.c (rest_of_handle_final): Likewise.
7580         (rest_of_compilation): Likewise.
7581         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7582
7583         * emit-rtl.c (next_real_insn): Use INSN_P.
7584         (prev_real_insn): Likewise.
7585
7586 2004-05-05  Eric Christopher  <echristo@redhat.com>
7587
7588         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
7589         representation.
7590
7591 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
7592
7593         * config/rs6000/rs6000.c (build_opaque_vector_type):
7594         New function.
7595         (rs6000_init_builtins): Use it.
7596
7597 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
7598
7599         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
7600         (func_table): Change type from char ** to vms_func_ref.
7601         (write_rtnbeg):  Update to reflect func_table change.  Use
7602         fde->funcdef_number instead of rtnnum in output.
7603         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
7604
7605 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7606             Richard Henderson  <rth@redhat.com>
7607
7608         PR target/14899
7609
7610         * c-common.c (vector_types_convertible_p): New function.
7611         * c-typeck.c (comptypes): Recurse on vector types.
7612         (convert_for_assignment): Use vector_types_convertible_p.
7613         (digest_init): Use vector_types_convertible_p to check
7614         validness of constant vector initializers; otherwise treat
7615         them as scalars.
7616         * tree.c (make_or_reuse_type): New.
7617         (build_common_tree_nodes): Use it.
7618         * cp/call.c (standard_conversion): Likewise.
7619         * cp/typeck.c (comptypes): Recurse on vector types.
7620         (convert_for_assignment): Use vector_types_convertible_p.
7621
7622 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
7623
7624         * config/mips/mips.c (override_options): Default to no
7625         generation of branch-likely operations when tuning for
7626         CPUs where they tend to have a negative performance impact
7627         (e.g., SB-1).
7628
7629 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7630
7631         * expr.c (store_constructor_field): Don't call store_constructor
7632         if bitsize is not a multiple of a byte.
7633
7634 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
7635
7636         * reload1.c (inherit_piecemeal_p): New function.
7637         (emit_reload_insns): When reloading a group of hard registers, use
7638         inherit_piecemeal_p to decide whether the values of individual hard
7639         registers can be inherited.
7640
7641 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7642
7643         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
7644         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
7645         * config/t-linux (LIB2ADDEHDEP): Likewise.
7646
7647 2004-05-04  Paul Brook  <paul@codesourcery.com>
7648
7649         * config/arm/crti.asm: Push an even number of registers.
7650         * config/arm/crtn.asm: And restore them.  Load via sp.
7651
7652 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7653
7654         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
7655         Collect overhead information.
7656         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
7657         parameter and pass it through.
7658         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
7659         MEM_STAT_DECL parameter and pass it through.
7660         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
7661         MEM_STAT_DECL parameter and pass it through.
7662
7663 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7664
7665         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
7666
7667         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
7668
7669         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
7670         rs6000_hard_regno_nregs.
7671
7672 2004-05-03  Eric Christopher  <echristo@redhat.com>
7673
7674         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
7675         prologue insn instead of setting up call.
7676         (s390_emit_epilogue): Ditto.
7677         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
7678         (define_constants): Add numbers for above patterns.
7679
7680 2004-05-03  Eric Christopher  <echristo@redhat.com>
7681
7682         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
7683         * config/s390/s390.c (s390_conditional_register_usage): ...here.
7684         * config/s390/s390-protos.h: Prototype.
7685
7686 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
7687
7688         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
7689         assignment.
7690
7691 2004-05-03  Eric Christopher  <echristo@redhat.com>
7692
7693         * config/mips/mips.md: Fix branch length attribute definition.
7694
7695 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7696
7697         * config.gcc: Remove --enable-altivec support.
7698
7699         * config/rs6000/altivec-defs.h: Remove.
7700
7701 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7702
7703         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
7704         * fixinc/fixincl.x: Regenerate.
7705
7706 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7707
7708         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
7709         definition.
7710         (log?f2, log10?f2, log2?f2): Reimplement expanders with
7711         float_truncate insn.
7712         (*fxtractsf3, *fxtractdf3): Remove insn definition.
7713         (logb?f2): Reimplement expanders with float_truncate insn.
7714
7715 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
7716
7717         PR 14718
7718         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
7719         force_type_die for CONST_DECL.
7720
7721 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7722             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7723
7724         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
7725         tm-dwarf2.h to tm_file.
7726         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
7727         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
7728         (ASM_DEBUG_SPEC): Delete.
7729
7730 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7731
7732         * optabs.h (enum optab_index): Add new OTI_expm1.
7733         (expm1_optab): Define corresponding macro.
7734         * optabs.c (init_optabs): Initialize expm1_optab.
7735         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
7736         patterns.
7737         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
7738         using expm1_optab.
7739         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
7740         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7741
7742         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
7743         to implement expm1, expm1f and expm1l built-ins as inline x87
7744         intrinsics.
7745
7746 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7747
7748         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7749         * config/frv/frv.md (*return_true, *return_false): New patterns.
7750
7751 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7752
7753         * rtl.h (PHI_NODE_P): Remove.
7754
7755 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
7756
7757         PR middle-end/14988
7758         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
7759         when passed -2 as 'align'.
7760         (put_var_into_stack): Use 'bool' as the type for the three local
7761         predicates.  Adjust calls to put_reg_into_stack.
7762         When passed a CONCAT, instruct put_reg_into_stack to use
7763         a consecutive stack slot for the second part.
7764         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
7765         'consecutive_p' parameter.  Turn the three predicates into 'bool'
7766         parameters.  Retrieve the register mode from 'reg'.
7767         When consecutive_p is true, instruct assign_stack_local_1 to use
7768         BITS_PER_UNIT alignment.
7769         (put_addressof_into_stack): Use 'bool' as the type for the two
7770         local predicates. Adjust call to put_reg_into_stack.
7771
7772 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7773
7774         * fold-const.c (fold_convert_const, fold): Add missing
7775         FIX_ROUND_EXPR case.
7776
7777 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7778
7779         * configure.ac (FLEX, BISON): Only use tools from the build tree
7780         if build equals host.
7781         * configure: Rebuilt.
7782
7783         * config/frv/frv-protos.h (frv_expand_epilogue,
7784         frv_expand_fdpic_call): Add bool argument.
7785         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
7786         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
7787         (frv_expand_epilogue): Use new argument to decide whether to emit
7788         return instruction or copy the return address to LR.
7789         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
7790         sibcalls.
7791         (sibcall_operand): New.
7792         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
7793         PLUS nor LABEL_REF.  Add sibcall_operand.
7794         * config/frv/frv.md (call, call_value): Pass false to
7795         frv_expand_fdpic_call.
7796         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
7797         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
7798         sibcall_value_internal, sibcall_value_fdpicdi): New.
7799         (return_unsigned_true, return_unsigned_false): New.
7800         (epilogue): Adjust call to frv_expand_epilogue.
7801         (sibcall_epilogue): New.
7802
7803         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
7804         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
7805         before redefining them.
7806
7807 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7808
7809         * builtins.c (fold_fixed_mathfn): New function.
7810         (fold_builtin_lround, fold_builtin): Use it.
7811
7812 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
7813
7814         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
7815         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
7816
7817 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7818
7819         * config/cris/cris.h: Revert my "fix comment typos" patch.
7820
7821 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
7822
7823         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
7824
7825 2004-05-01  Falk Hueffner  <falk@debian.org>
7826
7827         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
7828         builtin_insll): Disallow 0 as first input operand.
7829
7830 2004-05-01  Falk Hueffner  <falk@debian.org>
7831
7832         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
7833
7834 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
7835
7836         PR middle-end/15054
7837         * expr.c (expand_expr_real): Do not call preserve_temp_slots
7838         on a TARGET_EXPR temp.
7839         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
7840         TARGET_EXPR temp slots.
7841
7842 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
7843
7844         * simplify-rtx.c (simplify_ternary_operation): When
7845         converting an IF_THEN_ELSE to a relational op, return
7846         correct mode.
7847
7848 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7849
7850         * builtins.c (fold_builtin_round): Fix comment typo.
7851         (fold_builtin_lround): New function.
7852         (fold_builtin): Use it.
7853
7854 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
7855
7856         PR target/11608
7857         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
7858         more like the one in config/dbxelf.h.
7859
7860 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
7861
7862         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
7863         and adjust definition accordingly.
7864         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
7865         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
7866         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
7867         VECTOR_TYPE.
7868
7869 2004-04-30  Jason Merrill  <jason@redhat.com>
7870
7871         PR c++/14587
7872         * config/i386/winnt.c (associated_type): Look for attributes on
7873         the TYPE_MAIN_VARIANT of *this.
7874         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
7875         apply the attributes to the variants.
7876
7877 2004-04-30  Paul Brook  <paul@codesourcery.com>
7878
7879         * config.gcc: Simplify arm --with-{cpu,tune} test.
7880         * config/arm/arm-cores.def: Document whitespace restrictions.
7881
7882 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7883
7884         PR other/1963
7885         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
7886
7887 2004-04-30  Brian Ford  <ford@vss.fsi.com>
7888             DJ Delorie  <dj@redhat.com>
7889
7890         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7891         (DWARF2_DEBUGGING_INFO): Define to enable.
7892         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
7893         DWARF2.
7894         * configure.ac (Target-specific assembler checks)
7895         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
7896         relocs.
7897         * configure: Regenerate.
7898         * config.in: Likewise.
7899
7900         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7901         (ASM_OUPUT_DWARF_OFFSET): Define.
7902
7903 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7904
7905         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
7906         (s390_emit_call): New function prototype added.
7907         (s390_tls_get_offset): Function removed.
7908         * config/s390/s390.c (s390_function_ok_for_sibcall,
7909         s390_call_saved_register_used_p): New functions.
7910         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
7911         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
7912         (s390_emit_tls_call_insn): New function.
7913         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
7914         emit_call_insn.
7915         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
7916         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
7917         added.
7918         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
7919         register number used to hold the target address for sibcalls.
7920         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
7921         New expanders.
7922         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
7923         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
7924         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
7925         Expanders removed.
7926         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
7927         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
7928         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
7929         ("epilogue"): Changed the call to s390_emit_epilogue to use the
7930         new parameter.
7931
7932 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7933
7934         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
7935         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
7936         reg-stack.c, varasm.c, config/alpha/ev4.md,
7937         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
7938         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
7939         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
7940         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
7941         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
7942         config/ia64/itanium2.md, config/ip2k/ip2k.c,
7943         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
7944         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
7945         comment typos.
7946
7947 2004-04-30  Paul Brook  <paul@codesourcery.com>
7948
7949         * config.gcc: Default ep9312 to hard-float.
7950         * config/arm/arm-cores.def: Add ARCH field.
7951         * config/arm/arm.c (FL_FOR_ARCH*): Define.
7952         (arm_arch_cirrus): New variable.
7953         (all_cores): Set and use arch.
7954         (all_architectures): Ditto.
7955         (arm_arch_name): New variable.
7956         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
7957         Set and use arm_arch_cirrus.
7958         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
7959         (enum processor_type): Update ARM_CORE define.
7960         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
7961         (CPP_SPEC): Remove %(cpp_cpu_arch).
7962         (CPP_ARCH_DEFAULT_SPEC): Remove.
7963         (CPP_CPU_ARCH_SPEC): Remove.
7964         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
7965         (FPUTYPE_DEFAULT): Don't define here.
7966
7967 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
7968
7969         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
7970         updates too.
7971
7972 2004-04-30  Paul Brook  <paul@codesourcery.com>
7973
7974         * arm.c (arm_needs_doubleword_align): Use mode alignment.
7975
7976 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
7977
7978         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
7979         vec_sububs.
7980         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
7981         duplicates.
7982
7983 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7984
7985         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
7986         atan2?f3 expanders.
7987
7988 2004-04-29  Nick Clifton  <nickc@redhat.com>
7989
7990         Bug 14093
7991         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
7992         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
7993         Delete static from definition.
7994         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
7995
7996 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7997
7998         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
7999         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
8000         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
8001         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
8002
8003 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
8004
8005         * commom.opt (Wfatal-errors): Add it.
8006         * diagnostic.c (flag_fatal_errors): Define it.
8007         (diagnostic_action_after_output): Check for flag_fatal_errors.
8008         * flags.h (flag_fatal_errors): Declare it.
8009         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
8010         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
8011
8012 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
8013
8014         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
8015         blocks which have kill flag set.
8016
8017 2004-04-29  Ben Elliston  <bje@au.ibm.com>
8018
8019         * configure.ac (--with-as): Abort if user-supplied assembler
8020         cannot be executed.
8021         (--with-ld): Likewise for the linker.
8022         * configure: Regenerate.
8023
8024 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8025
8026         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
8027         isn't NULL before using it.
8028
8029 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
8030
8031         PR target/15189
8032         * config/mips/mips.md (load_df_low): Use default length.
8033         (load_df_high, store_df_high): Likewise.
8034
8035 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8036
8037         * config/mips/mips.md, config/mips/sb1.md,
8038         config/rs6000/rs6000.c: Fix comment typos.
8039
8040 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8041
8042         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
8043         Fix comment typos.
8044
8045 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
8046
8047         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
8048         (delete_if_ordinary): Use above macro.
8049         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
8050         Update copyright.
8051         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
8052
8053 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
8054
8055         * c-decl.c (get_parm_info): Use the correct tag keywords when
8056         warning about type declarations in prototypes.
8057
8058 2004-04-29  Paul Brook  <paul@codesourcery.com>
8059
8060         * config.gcc: Pull list of cores from arm-cores.def.
8061
8062 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8063
8064         * combine.c (combine_simplify_rtx): Adjust call to use
8065         simplify_relational_operation.  Do not use SELECT_CC_MODE
8066         when a comparison already has a MODE_CC mode.
8067
8068 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8069
8070         (simplify_set): simplify_relational_operation may now
8071         return another relational expression.
8072         * cse.c (fold_rtx): simplify_relational_operation now
8073         takes of computing the comparison mode.
8074         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
8075         remove dead code.
8076         (do_compare_rtx_and_jump): Likewise.
8077         * integrate.c (subst_constants): simplify_relational_operation
8078         may now return another relational expression.
8079         * simplify-rtx.c (simplify_gen_relational): Move most code to
8080         the new simplify_relational_operation and
8081         simplify_relational_operation_1 functions.
8082         (simplify_relational_operation): Rewritten.
8083         (simplify_relational_operation_1): New function.
8084         (simplify_ternary_operation): simplify_relational_operation
8085         may now return another relational expression.
8086         (simplify_rtx): Remove unnecessary temp variable.
8087
8088 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
8089
8090         * reg-stack.c (swap_to_top): New function.
8091         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
8092         swap_to_top().
8093         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
8094         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
8095         UNSPEC_FSCALE_EXP.
8096
8097         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
8098         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
8099         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
8100         x87's fscale insn.
8101         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
8102         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
8103         patterns.
8104
8105 2004-04-28  Serge Belyshev  <1319@bot.ru>
8106
8107         PR 14944
8108         * coverage.c (read_counts_file): Fix usage of warning () call.
8109         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
8110
8111 2004-04-28  Ben Elliston  <bje@au.ibm.com>
8112
8113         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
8114         options with "-" in the option index.
8115         (SPARC Options): Likewise.
8116         (M32R/D Options): Likewise.
8117
8118 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8119
8120         * convert.c (convert_to_integer): Convert (long)round -> lround,
8121         etc.
8122
8123 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
8124
8125         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
8126         Return false if we do not have fp register.
8127         (addrs_ok_for_quad_peep): Rename to ...
8128         (mems_ok_for_quad_peep): this.
8129         Add check for volatile memory.
8130         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
8131         Rename to ...
8132         (mems_ok_for_quad_peep): this.
8133         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
8134         to peephole2's.
8135         (lfq_power2): New instruction.
8136         (stfq_power2): Likewise.
8137
8138 2004-04-28  Jan Hubicka  <jh@suse.cz>
8139
8140         PR c/15004
8141         * function.c (do_warn_unused_parameter): Break out form ...
8142         (expand_function_end): ... here; warn only when not using cgraphunit.
8143         * function.h (do_warn_unused_parameter): Declare.
8144         * cgraphunit.c: Include function.h.
8145         (cgraph_finalize_function): Do unused parameter warning.
8146         * Makefile.in (cgraphunit.o): Depend on function.h
8147
8148 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8149
8150         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
8151         calling install-info on $(DESTDIR)$(infodir)/dir already being
8152         present.
8153
8154 2004-04-28  Paul Brook  <paul@codesourcery.com>
8155
8156         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
8157
8158 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8159
8160         * gcse.c (find_moveable_store): Do not accept store insns with
8161         REG_EH_REGION note.
8162
8163 2004-04-28  Paul Brook  <paul@codesourcery.com>
8164
8165         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
8166         * function.c (assign_temp): Ditto.
8167         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
8168
8169 2004-04-28  Paul Brook  <paul@codesourcery.com>
8170
8171         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
8172
8173 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
8174
8175         * var-tracking.c (variable_different_p): Add a parameter
8176         compare_current_location, compare current location of variable parts
8177         if it is true.
8178         (dataflow_set_different_1): Pass compare_current_location == false.
8179         (dataflow_set_different_2): Pass compare_current_location == false.
8180         (emit_notes_for_differences_1): Pass compare_current_location == true.
8181
8182 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8183
8184         * config/s390/s390.md ("casesi"): Mark jump table access as
8185         non-trapping and unchanging.
8186
8187 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8188
8189         PR debug/14829
8190         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
8191         callers.
8192         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
8193         number for indexing hard_regno_nregs array.
8194
8195 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
8196
8197         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
8198         * config/darwin-crt2.c: Only have contents on __ppc__.
8199
8200 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
8201
8202         * config/xtensa/xtensa.c (call_insn_operand): Check
8203         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
8204         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
8205         * config/xtensa/xtensa.md (call, call_value): Likewise.
8206
8207 2004-04-27  Wu Yongwei  <adah@sh163.net>
8208
8209         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
8210         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
8211         (__gthread_mutex_init_function): Replace CreateMutex with
8212         initialization of custom mutex using CreateSemaphore.
8213         (__gthread_mutex_lock): Use InterlockedIncrement.
8214         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
8215         (__gthread_mutex_unlock): Use InterlockedDecrement and
8216         ReleaseSemaphore to unlock
8217         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
8218         __gthread_mutex_lock, __gthread_mutex_trylock,
8219         __gthread_mutex_unlock): Adjust to match inline versions in
8220         gthr-win32.h.
8221
8222 2004-04-27  Paul Brook  <paul@codesourcery.com>
8223
8224         * config/arm/arm.c (arm_promote_prototypes): New function.
8225         (TARGET_PROMOTE_PROTOTYPES): Use it.
8226
8227 2004-04-27  Paul Brook  <paul@codesourcery.com>
8228
8229         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
8230
8231 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
8232
8233         * config/alpha.c (alpha_end_function): For OpenVMS gas,
8234         correctly output .pdesc directive before .end.
8235
8236 2004-04-26  James E Wilson  <wilson@specifixinc.com>
8237
8238         Bug 14927
8239         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
8240         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
8241
8242 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
8243
8244         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
8245         * config/pa/pa-hpux10.h: Likewise.
8246         * config/pa/pa-hpux11.h: Likewise.
8247
8248 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
8249
8250         * doc/invoke.texi (Overall Options): Document default for -o
8251         for PCH files.
8252
8253 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8254
8255         * builtins.c (expand_builtin_update_setjmp_buf): New function.
8256         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
8257         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
8258
8259 2004-04-26  Paul Brook  <paul@codesourcery.com>
8260
8261         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
8262
8263 2004-04-26  Paul Brook  <paul@codesourcery.com>
8264
8265         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
8266
8267 2004-04-25  Roger Sayle  <roger@eyesopen.com>
8268
8269         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
8270         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
8271         X % -1 as 0.
8272
8273 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
8274
8275         PR bootstrap/15141
8276         * except.c (connect_post_landing_pads): Delete insns after the
8277         barrier when generating a unwind_resume_libfunc call.
8278
8279 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8280
8281         PR/c++ 15119
8282         * tree.c (substitute_placeholder_in_expr, case 4): New case,
8283         for TARGET_EXPR.
8284
8285 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8286
8287         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8288         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
8289         inhibit_libc is defined.
8290
8291 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
8292
8293         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
8294         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
8295         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
8296         (TARGET_SCHED_VARIABLE_ISSUE): Define.
8297         (mips_adjust_cost): Move later in file, next to other sched hooks.
8298         (mips_macc_chains_last_hilo): New variable.
8299         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
8300         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
8301         * config/mips/mips.md (may_clobber_hilo): New attribute.
8302
8303 2004-04-24  Roger Sayle  <roger@eyesopen.com>
8304             Bruce Korb  <bkorb@gnu.org>
8305
8306         * fixinc/inclhack.def (aix_syswait_2): New fix.
8307         * fixinc/fixincl.x: Regenerate.
8308         * fixinc/tests/base/sys/wait.h: Update for new test.
8309
8310 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
8311
8312         PR target/14960
8313         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
8314         to non_fixed_size, and leave out fixed_size from the sum.
8315         (generate_set_vrsave): Correct clobbers.
8316         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
8317         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
8318         (rs6000_libcall_value): Likewise.
8319         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
8320         (FUNCTION_ARG_REGNO_P): Likewise.
8321
8322 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8323
8324         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
8325         is a CONST_INT.
8326         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
8327         with NARROW_OP1 instead of OP1.
8328
8329 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8330
8331         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
8332         and __s390x__ hosts.
8333
8334 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8335
8336         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
8337         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
8338         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
8339         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
8340         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
8341         * builtins.c (expand_builtin_fork_or_exec): New.
8342         (expand_builtin): Call it.
8343         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
8344         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
8345         * c-common.c (PID_TYPE): New macro.
8346         (c_common_nodes_and_builtins): Initialize pid_type_node.
8347         * calls.c (special_function_p): Do not handle fork and exec.
8348         (expand_call): Do not handle ECF_FORK_OR_EXEC.
8349         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8350         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
8351         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8352         __gcov_execv, __gcov_execvp, __gcov_execve): New.
8353         * tree.h (enum tree_index): Add TI_PID_TYPE.
8354         (pid_type_node): New macro.
8355         (ECF_FORK_OR_EXEC): Removed.
8356
8357 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8358
8359         PR optimization/13985
8360         * cfgloopmanip.c (fix_loop_placements): New prototype.
8361         Call fix_bb_placements on the preheader of loops that have
8362         been reparented.
8363         (remove_path): Adjust call to fix_loop_placements.
8364
8365 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
8366
8367         * config/darwin7.h: New file.
8368         * config.gcc (*-*-darwin*): Add darwin7.h if the
8369         version is greater than 6.
8370         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
8371         (MATH_LIBRARY): Wrap in ifdefs.
8372
8373 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
8374
8375         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
8376         loading iWMMXt registers with a frame pointer.  Use post-increment
8377         without a frame pointer.
8378         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
8379
8380 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
8381
8382         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
8383         mode" rather than "-funit-at-a-time" since -O2 enables it
8384         without requiring -f* options.  Refer to -fprofile-generate and
8385         -fprofile-use correctly.  Move -funit-at-a-time among options
8386         enabled by -O.  Add information about unit-at-a-time caveats.
8387
8388 2004-04-22  Per Bothner  <per@bothner.com>
8389
8390         * line-map.h (struct line_maps):  New field highest_line.
8391         (linemap_position_for_column):  Make non-inline function.
8392         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
8393         * line-map.c (linemap_init):  Clear highest_line field.
8394         (linemap_add):  Set highest_line field.
8395         (linemap_line_start):  Minor optimization - use highest_line field.
8396         Reduce maximum column hint to 10000.  Update highest_line field.
8397         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
8398         * cpphash.h (struct cpp_reader):  Remove line field - instead use
8399         line_table->highest_line.
8400         (saved_line):  Remove unused field.
8401         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
8402         Use  line_table's highest_line field instead of cpp_reader's line.
8403         * cpplib.c (start_directive):  Likewise use highest_line field.
8404         (do_line, do_linemarker):  Likewise just use newest map.
8405         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
8406         * cpperror.c (cpp_error):  Likewise use highest_line field.
8407         * cppfiles.c (open_file_failed:  Likewise.
8408         (cpp_make_system_header):  Likewise use newest map and highest_line.
8409         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
8410         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
8411         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
8412         _cpp_lex_direct):  Likewise use highest_line.
8413         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
8414         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
8415         and use newest map.
8416         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
8417         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
8418         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
8419
8420 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
8421
8422         PR bootstrap/14992
8423         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
8424         * config/linux.h (USE_LD_AS_NEEDED): Define.
8425         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
8426         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
8427         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
8428         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
8429         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
8430         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
8431         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
8432
8433 2004-04-22  Per Bothner  <per@bothner.com>
8434
8435         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
8436         Fixes PR preprocessor/15067.
8437
8438 2004-04-23  Andreas Schwab  <schwab@suse.de>
8439
8440         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
8441         avoid aliasing warning.
8442
8443 2004-04-22  Jan Hubicka  <jh@suse.cz>
8444             Mostafa Hagog <mustafa@il.ibm.com>
8445
8446       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
8447       * cfgloopanal.c (expected_loop_iterations): Change the return value
8448
8449 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
8450
8451         * cselib.h (struct elt_loc_list): Remove canon_loc field.
8452         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
8453         (cselib_invalidate_mem): Remove all canon_loc and canon_x
8454         traces.
8455
8456 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
8457
8458         Revert
8459         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8460
8461                 * var-tracking.c (variable_part_different_p): Variable parts
8462                 differ when the most recent locations differ.
8463
8464 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
8465
8466         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
8467         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
8468         (embedded_pic_offset): Delete.
8469         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
8470         MASK_* constants.
8471         (TARGET_EMBEDDED_PIC): Delete.
8472         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
8473         (ASM_SPEC): Remove -membedded-pic.
8474         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
8475         (ASM_OUTPUT_CASE_LABEL): Likewise.
8476         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
8477         * config/mips/windiss.h (ASM_SPEC): Likewise.
8478         * config/mips/mips.c (struct machine_function): Remove
8479         embedded_pic_fnaddr_rtx.
8480         (TARGET_ENCODE_SECTION_INFO): Remove override.
8481         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
8482         (override_options): Remove -membedded-pic handling.
8483         (print_operand): Remove handling of '%S'.
8484         (mips_select_section: Remove -membedded-pic handling.
8485         (mips_encode_section_info): Delete.
8486         (mips_output_conditional_branch): Remove mention of -membedded-pic.
8487         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
8488         -membedded-pic handling.
8489         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
8490
8491 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
8492
8493         * var-tracking.c (frame_base_decl): Remove useless GTY.
8494
8495 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
8496
8497         * config/rs6000/rs6000.c (rs6000_override_options): Error when
8498         user wants altivec and e500 instructions.
8499
8500 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8501
8502         PR target/14813
8503         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
8504         in .init_array section to ...
8505         * config/ia64/crtbegin.asm: Here.
8506
8507         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
8508         and hidden if HAVE_INITFINI_ARRAY is defined.
8509
8510 2004-04-21  James E Wilson  <wilson@specifixinc.com>
8511
8512         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
8513         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
8514         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
8515         (fp_register_operand, lo_operand): New.
8516         (mips_rtx_costs): Add TUNE_SB1 support.
8517         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
8518         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
8519         (mips_multipass_dfa_lookahead): New.
8520         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
8521         TUNE_SB1): New.
8522         (TARGET_SWITCHES): Add -mfp-exceptions support.
8523         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
8524         (BRANCH_COST): Fix whitespace.
8525         * config/mips/mips.md: Include sb1.md.
8526         * config/mips/sb1.md: New file.
8527         * doc/invoke.texi: Document -mfp-exceptions.
8528
8529         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
8530         comment.
8531         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
8532         (fixincl.o-warn): Delete.
8533
8534 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8535
8536         * config/rs6000/rs6000 (print_operand) ['z']:
8537         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
8538
8539 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
8540
8541         * config.gcc: Support --with-arch=iwmmxt for ARM.
8542
8543 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8544
8545         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
8546         in two more places; remove unneeded force_reg
8547
8548 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8549
8550         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
8551         for TARGET_MACHO.
8552         (print_operand): For TARGET_MACHO check to see if we need a stub
8553         and output one if we need it.
8554
8555         PR debug/15033
8556         * dwarf2out.c (rtl_for_decl_location): Check for NULL
8557         rtl.
8558
8559 2004-04-20  James E Wilson  <wilson@specifixinc.com>
8560
8561         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
8562         (vall_value_gp): Likewise.
8563
8564 2004-04-20  DJ Delorie  <dj@redhat.com>
8565
8566         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
8567         variables stored in word registers, then in memory.
8568
8569 2004-04-20  Eric Christopher  <echristo@redhat.com>
8570
8571         * cp/parser.c (cp_parser_declaration): Move translate
8572         up before tokens are lexed.
8573
8574 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
8575
8576         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
8577         (asin_optab, acos_optab): Define corresponding macros.
8578         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
8579         * genopinit.c (optabs): Implement asin_optab and acos_optab
8580         using asin?f2 and acos?f2 patterns.
8581         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
8582         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
8583         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
8584         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8585
8586         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
8587         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
8588         acos, acosf and acosl built-ins as inline x87 intrinsics.
8589
8590 2004-04-20  Paul Brook  <paul@codesourcery.com>
8591
8592         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
8593
8594 2004-04-20  Paul Brook  <paul@codesourcery.com>
8595
8596         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
8597
8598 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
8599
8600         Revert part of 2004-04-17 change that moved -frename-registers
8601         to -O1.  -frename-registers is buggy.
8602
8603         * toplev.c (flag_rename_registers): Initialize to 0.
8604         * doc/invoke.texi (Optimize options): Move -frename-registers
8605         to "Not triggered by any -O level" section.  Adjust commentary
8606         accordingly.
8607
8608 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
8609
8610         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
8611
8612 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
8613
8614         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
8615         for mflo and mfhi instructions.
8616         (mips_output_move): Remove mflo and mfhi handling.
8617         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
8618         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
8619         Likewise various define_peephole2s.
8620         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
8621         alternatives.
8622         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
8623         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
8624         (mfhilo_di, mfhilo_si): New patterns.
8625
8626 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8627
8628         * function.c (assign_parms): Force
8629         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
8630
8631 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8632
8633         * var-tracking.c (variable_part_different_p): Variable parts differ
8634         when the most recent locations differ.
8635
8636 2004-04-19  James E Wilson  <wilson@specifixinc.com>
8637
8638         * rtl.h (reg_set_last): Delete declaration.
8639         * rtlanal.c (reg_set_last): Delete.
8640
8641 2004-04-19  Roger Sayle  <roger@eyesopen.com>
8642
8643         * fold-const.c (fold_convert): Make function extern/public.
8644         * tree.h (fold_convert): Prototype here.
8645         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8646         expand_builtin_strrchr, expand_builtin_strpbrk,
8647         expand_builtin_mempcpy, expand_builtin_bcopy,
8648         expand_builtin_bzero, expand_builtin_memcmp,
8649         expand_builtin_strcmp, expand_builtin_strncmp,
8650         stabilize_va_list, expand_builtin_sprintf,
8651         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
8652         fold_builtin_exponent, fold_builtin_mempcpy,
8653         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
8654         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
8655         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
8656
8657 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
8658
8659         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
8660         (move_from_CR_gt_bit): New.
8661         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
8662         E500.
8663         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
8664         E500.
8665
8666         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
8667         (tstsfeq_gpr): Same.
8668         (cmpsfgt_gpr): Same.
8669         (tstsfgt_gpr): Same.
8670         (cmpsflt_gpr): Same.
8671         (tstsflt_gpr): Same.
8672         (e500_cceq_ior_compare): New.
8673         (e500_flip_gt_bit): New.
8674
8675         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
8676         (print_operand): Add 'c' and 'D'.
8677         (rs6000_generate_compare): Rewrite to generate correct rtl.
8678         (rs6000_emit_sCOND): Handle E500.
8679         (output_cbranch): Adjust for changes in rs6000_generate_compare.
8680         (output_e500_flip_gt_bit): New.
8681
8682         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
8683         Protoize.
8684
8685 2004-04-19  Eric Christopher  <echristo@redhat.com>
8686
8687         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
8688
8689 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
8690
8691         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
8692         fix information.
8693
8694 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8695
8696         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
8697         download URL.
8698
8699 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
8700
8701         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
8702         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
8703
8704 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
8705
8706         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
8707         (fold_builtin): Update caller to match.
8708
8709         PR bootstrap/15009
8710         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
8711
8712         PR bootstrap/14999
8713         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
8714
8715 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8716
8717         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
8718
8719         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
8720         (expand_mult_highpart_optab): Likewise.
8721         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
8722
8723 2004-04-19  Paul Brook  <paul@codesourcery.com>
8724
8725         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
8726         floatunssisf2, floatunssidf2): New patterns.
8727
8728 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
8729
8730         PR other/14918
8731         * doc/invoke.texi (-fprofile-generate): Document requirement to
8732         use -fprofile-generate when linking.
8733
8734         * doc/extend.texi (Strong Using): Warn users against using this
8735         feature.
8736
8737 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
8738
8739         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
8740         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
8741         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
8742         * config/mips/mips.c (struct mips16_constant): Renamed from struct
8743         constant.  Propogate change throughout file.
8744         (struct machine_function): Remove insns_len.
8745         (mips_string_length, mips16_strings, string_constants): Delete.
8746         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
8747         when generating mips16 code.  Remove special mips16 treatment of
8748         string constants.
8749         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
8750         to have the form LABEL+CONSTANT.
8751         (mips_symbolic_address_p): Fix comment.
8752         (m16_usym8_4, m16_usym5_4): Delete.
8753         (mips_output_function_epilogue): Remove mips16 string handling.
8754         (mips_output_mi_thunk): Call mips16_lay_out_constants.
8755         (mips_select_section, mips_encode_section_info): Remove mips16
8756         string handling.
8757         (struct mips16_constant_pool): New.
8758         (add_constant): Take a mips16_constant_pool structure.  Keep pool
8759         sorted into order of ascending mode size.  Keep track of the highest
8760         possible start address, taking padding and the masking of the base PC
8761         value into account.
8762         (dump_constants_1): New function, split out from dump_constants.
8763         Handle vector constants.  Use gen_consttable_{int,float} rather than
8764         separate functions for each mode.
8765         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
8766         rather than separate functions for each alignment.
8767         (mips_find_symbol): Delete.
8768         (mips16_insn_length): New function, split out from
8769         mips16_lay_out_constants.
8770         (mips16_rewrite_pool_refs): New function.
8771         (mips16_lay_out_constants): Rework. Remove string handling.
8772         Always create an inline constant pool.
8773         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
8774         (UNSPEC_ALIGN): New constants.
8775         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
8776         (UNSPEC_ALIGN_[248]): Delete.
8777         (consttable_int, consttable_float, align): New patterns.
8778         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
8779
8780 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
8781
8782         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
8783         __unn_args_eq.
8784
8785 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
8786
8787         PR target/14715
8788         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
8789         with STARTING_FRAME_OFFSET.
8790
8791 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8792
8793         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
8794         * config/mips/mips.c (macc_msac_operand): New function.
8795         * config/mips/mips.md (*msac): Move after *macc.
8796         (*msac2): New.  Generalize macc-related peepholes so that they apply
8797         to msac too.
8798
8799 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
8800
8801         * opts.c (decode_options): Do not enable flag_rename_registers
8802         and flag_web at -O3.
8803         * toplev.c (flag_rename_registers): Initialize
8804         flag_rename_registers and flag_web to
8805         AUTODETECT_FLAG_VAR_TRACKING.
8806         (default_debug_hooks): New global.
8807         (process_options): Initialize default_debug_hooks.  Warn if
8808         -fvar-tracking specified but not supported by the current
8809         debug format.  Do not run var tracking at -O0 or if not
8810         supported by the current debug format, even if
8811         -fvar-tracking was given.  If -fno-rename-registers
8812         is not specified, always run register renaming if var
8813         tracking is supported by the default debugging information
8814         format for the target, and we are at -O1 or higher; similarly
8815         for -fweb, but only at -O2 or higher.
8816         * doc/invoke.texi (Optimize Options): Document this.
8817
8818 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8819
8820         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
8821         * configure: Regenerate.
8822
8823 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8824
8825         * gcc.c (used_arg): Check whether an option has been removed.
8826
8827 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8828
8829         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
8830         debugging on Solaris 7 and up.
8831
8832 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8833
8834         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
8835         IRIX 5 port.
8836         Remove -save-temps workaround, handled automatically.
8837         Require GNU binutils 2.15 for debugging.
8838         Remove SGI make warnings since GNU make is now required.
8839         (Specific, mips-sgi-irix6): Some markup fixes.
8840         Describe MIPSpro C problems and workarounds.
8841         Mention working O32 ABI support.
8842         Recommend GNU as 2.15 for O32 with debugging.
8843         Remove description of fixed structure pass/return bug.
8844
8845 2004-04-16  DJ Delorie  <dj@redhat.com>
8846
8847         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
8848         TYPE_FIELDS.
8849         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
8850
8851 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8852
8853         * pa.md: Remove unnecessary declarations for asm_out_file.
8854
8855         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
8856         SAR register.  Fix comment.
8857         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
8858         (%cr11).
8859
8860         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
8861
8862 2004-04-16  Nick Clifton  <nickc@redhat.com>
8863
8864         * config/arm/arm.c (arm_override_options): Revert previous patch.
8865         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
8866         be safely built.
8867
8868 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8869
8870         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
8871         bug.
8872         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
8873         TARGET_DEFAULT): Changed. Ditto.
8874         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
8875         TARGET_ENDIAN_DEFAULT): Added. Ditto.
8876         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
8877         (TARGET_ENDIAN_DEFAULT): Added.
8878
8879 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8880
8881         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
8882         ATTR_CONST_NOTHROW_LIST.
8883
8884 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8885
8886         PR/middle-end 14915
8887         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
8888         BITS_BIG_ENDIAN.
8889
8890 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
8891
8892         * ra-debug.c (ra_print_rtx): Add break's to case legs.
8893
8894 2004-04-14  James E Wilson  <wilson@specifixinc.com>
8895
8896         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
8897
8898 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
8899
8900         * libada-mk.in: New file.
8901         * configure.ac: Create libada-mk from libada-mk.in.
8902         * configure: Regenerate.
8903
8904 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
8905
8906         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
8907         (logb_optab, ilogb_optab): Define corresponding macros.
8908         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
8909         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
8910         using logb?f2 and ilogb?i2 patterns.
8911         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
8912         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
8913         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
8914         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8915
8916         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
8917         and UNSPEC_XTRACT_EXP.
8918
8919         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
8920         patterns to implement fxtract x87 instruction.
8921         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
8922         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
8923         intrinsics.
8924         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
8925         x87's fxtract insn.
8926
8927 2004-04-14  Eric Christopher  <echristo@redhat.com>
8928
8929         * config/mips/t-elf: Enable multilibs by default.
8930
8931 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
8932
8933         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
8934         previous fix to check HAVE_return at runtime too.
8935
8936 2004-04-14  Nick Clifton  <nickc@redhat.com>
8937
8938         * config/arm/arm.c (arm_override_options): If the user has not
8939         specified an ABI, then default to AAPCS for the iWMMXt processor.
8940         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
8941         * config/arm/t-xscale-coff: Likewise.
8942
8943 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8944
8945         * builtins.c (fold_builtin_isdigit): New.
8946         (fold_builtin): Handle BUILT_IN_ISDIGIT.
8947         * defaults.h: Add TARGET_DIGIT0 and sort.
8948         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
8949
8950 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8951
8952         * builtins.c (fold_builtin_cabs, fold_builtin): Use
8953         `mathfn_built_in' to determine the new builtin.
8954         * fold-const.c (fold): Likewise.
8955
8956 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
8957
8958         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
8959         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
8960         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
8961         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
8962         (ASM_SPEC): Update accordingly.
8963         * config/mips/mips.c: Update after above renaming.
8964         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
8965         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
8966
8967 2004-04-13  James E Wilson  <wilson@specifixinc.com>
8968
8969         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
8970         increment errorcount and return false instead of true.
8971
8972 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
8973
8974         * optabs.c (expand_twoval_unop): Reorder function arguments.
8975         * builtins.c (expand_builtin_mathfn_3): Update calls to
8976         expand_twoval_unop.
8977
8978         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
8979         and UNSPEC_TAN_TAN. Add missing comment.
8980
8981         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
8982         patterns to implement fptan x87 instruction.
8983         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
8984         and tanl built-ins as inline x87 intrinsics. Define corresponding
8985         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
8986         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
8987         x87's fptan insn.
8988
8989 2004-03-13  Richard Henderson  <rth@redhat.com>
8990
8991         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
8992         for LABEL_REFs.
8993
8994         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
8995         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
8996         * doc/invoke.texi: Update to match.
8997
8998         * varasm.c (unlikely_text_section): Use assemble_align instead of
8999         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
9000         correct alignment argument.
9001
9002 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
9003
9004         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
9005         after setting reg_last_reload_reg for optional output reloads.
9006
9007 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
9008
9009         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
9010         Definition of these two macros are corrected by adding
9011         matchine right paren.
9012
9013 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
9014
9015         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
9016
9017 2004-04-12  Roger Sayle  <roger@eyesopen.com>
9018
9019         * config/i386/i386.c (output_387_reg_move): New function.
9020         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
9021         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
9022         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
9023         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
9024         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
9025
9026 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9027
9028         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
9029         TYPE_DECL.
9030         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
9031         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
9032         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
9033         Use skip_simple_arithmetic to find SAVE_EXPR.
9034         (force_type_save_exprs, force_type_save_exprs_1): New functions.
9035         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
9036         Properly chain multiple pointers.
9037         (copy_tree_r): Copy a TYPE_DECL.
9038         * tree.c (variably_modified_type_p): Add some missing tests and
9039         make some other minor changes.
9040         * tree.h (force_type_save_exprs): New declaration.
9041
9042 2004-04-12  Roger Sayle  <roger@eyesopen.com>
9043
9044         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
9045         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
9046         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
9047         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
9048         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
9049         x%-1 into 0 (or x&0 if x has side-effects).
9050
9051 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9052
9053         * config/rs6000/rs6000.md: Document why a pattern is not
9054         available.
9055
9056         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
9057         of floats on the E500.
9058         (branch_positive_comparison_operator): Do not allow NE even on the
9059         E500.
9060
9061 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9062
9063         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
9064         in_text_unlikely_section to in_unlikely_text_section.
9065
9066 2004-04-11  Roger Sayle  <roger@eyesopen.com>
9067
9068         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
9069         calling convention to allow a NULL_TREE to be returned.  Factor
9070         sanity checks from callers, return NULL_TREE when appropriate.
9071         (fold): Handle COMPOUND_EXPR operands of binary expressions
9072         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
9073         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
9074         calls to fold_binary_op_with_conditional_arg.
9075
9076 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9077
9078         * config/mips/iris5.h (current_section_flags):  Add
9079         in_unlikely_executed_text and default case.
9080
9081 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
9082
9083         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
9084         failure on solaris. Place ifdef HAVE_return around gen_ret call.
9085         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
9086         HAVE_return and place it around the place where it is needed.
9087
9088 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
9089
9090         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
9091         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
9092         and NORMAL_TEXT_SECTION_NAME.
9093         (unlikely_text_section): Check targetm.have_named_sections
9094         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
9095         instead of SECTION_FORMAT_STRING.
9096         * config/mips/iris5.h (current_section_name): Add
9097         in_unlikely_executed_text case and move the abort into the switch.
9098         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
9099         (NORMAL_TEXT_SECTION_NAME): Remove.
9100         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
9101         (SECTION_FORMAT_STRING): Remove.
9102         * defaults.h (SECTION_FORMAT_STRING): Remove.
9103         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
9104         (SECTION_FORMAT_STRING): Remove.
9105
9106 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
9107
9108         * c-typeck.c (common_type): Prefer long long to long when same
9109         precision.
9110
9111 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
9112
9113         PR 14887
9114         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
9115         mode argument.
9116         * config/ia64/ia64.c (ia64_hpux_file_end): Check
9117         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
9118
9119 2004-04-09  Roger Sayle  <roger@eyesopen.com>
9120
9121         * simplify-rtx.c (mode_signbit_p): New function to check whether
9122         an RTX is an immediate constant that represents the most significant
9123         bit of a given machine mode.
9124         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
9125         C is the sign bit.
9126         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
9127         when C2 is the sign bit.
9128         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
9129         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
9130         sign bit.
9131
9132 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9133
9134         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
9135         TYPE_MODE.
9136
9137 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
9138
9139         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
9140         of TREE_READONLY for types.
9141
9142 2004-04-09  Caroline Tice  <ctice@apple.com>
9143
9144         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
9145         (struct basic_block_def):  Add new field, partition.
9146         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
9147         definitions.
9148         (partition_hot_cold_basic_blocks): Add extern function
9149         declaration.
9150         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
9151         include statements.
9152         (N_ROUNDS): Increase the maximum number of rounds by 1.
9153         (branch_threshold): Add array value for new round.
9154         (exec_threshold): Add array value for new round.
9155         (push_to_next_round_p): New function.
9156         (add_unlikely_executed_notes): New function.
9157         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
9158         (mark_bb_for_unlikely_executed_section): New function.
9159         (add_labels_and_missing_jumps): New function.
9160         (add_reg_crossing_jump_notes): New function.
9161         (fix_up_fall_thru_edges): New function.
9162         (find_jump_block): New function.
9163         (fix_crossing_conditional_branches): New function.
9164         (fix_crossing_unconditional_branches): New function.
9165         (fix_edges_for_rarely_executed_code): New function.
9166         (partition_hot_cold_basic_blocks): New function.
9167         (find_traces):  Add an extra round for partitioning hot/cold
9168         basic blocks.
9169         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
9170         and only cold blocks, into the last (extra) round of collecting traces.
9171         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
9172         over crossing edges.
9173         (bb_to_key):  Add code to correctly identify cold blocks when
9174         doing partitioning.
9175         (connect_traces): Modify to connect all the non-cold traces first, then
9176         go back and connect up all the cold traces.
9177         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
9178         * cfg.c (entry_exit_blocks): Add initialization for partition field in
9179         entry and exit blocks.
9180         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
9181         if we are doing hot/cold partitioning.
9182         * cfgcleanup.c (cfglayout.h): Add new include statement.
9183         (try_simplify_condjump): Modify to not attempt on blocks with jumps
9184         that cross section boundaries.
9185         (try_forward_edges): Likewise.
9186         (merge_blocks_move_predecessor_nojumps): Likewise.
9187         (merge_blocks_move_successor_nojumps): Likewise.
9188         (merge_blocks_move): Likewise.
9189         (try_crossjump_to_edge): Modify to not attempt after we have done
9190         the block partitioning.
9191         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
9192         cross section boundaries.
9193         (try_optimize_cfg): Likewise.
9194         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
9195         jumps that cross section boundaries.
9196         * cfglayout.c (flags.h): Add new include statement.
9197         (update_unlikely_executed_notes):  New function.
9198         (fixup_reorder_chain):  Add code so when a new jumping basic block is
9199         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
9200         updated appropriately.
9201         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
9202         introduced by this optimization.
9203         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
9204         extern function declaration.
9205         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
9206         list of notes that can be deleted.
9207         (create_basic_block_structure):  Add initialization for partition field.
9208         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
9209         section boundaries.
9210         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
9211         cross section boundaries.
9212         (commit_one_edge_insertion): Add code so newly created basic block
9213         ends up in correct (hot or cold) section.  Modify to disallow
9214         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
9215         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
9216         crosses section boundaries.
9217         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
9218         cross section boundaries.
9219         (force_nonfallthru_and_redirect): Modify to make sure new basic block
9220         ends up in correct section, with correct notes attached.
9221         * common.opt (freorder-blocks-and-partition):  Add new flag for this
9222         optimization.
9223         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
9224         the end of functions are written into the correct (hot or cold)
9225         section.
9226         (dbx_source_file): Add code so writing debug file information
9227         doesn't incorrectly change sections.
9228         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
9229         in partitioning hot/cold basic blocks into separate sections.
9230         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
9231         section partitioning.
9232         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
9233         conditional branches can span all of memory.
9234         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
9235         unconditional branches can span all of memory.
9236         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
9237         (final_scan_insn):  Add code to check for NOTE instruction indicating
9238         whether basic block belongs in hot or cold section, and to make sure
9239         the current basic block is being written to the appropriate section.
9240         Also added code to ensure that jump table basic blocks end up in the
9241         correct section.
9242         * flags.h (flag_reorder_blocks_and_partition):  New flag.
9243         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
9244         one of the branches has a jump that crosses between sections.
9245         (find_if_case_2): Likewise.
9246         (ifcvt): Modify to not attempt to mark loop exit edges after
9247         hot/cold partitioning has occurred.
9248         * opts.c (decode_options): Code to handle new flag,
9249         flag_reorder_blocks_and_partition; also to turn it off if
9250         flag_exceptions is on.
9251         (common_handle_option): Code to handle new flag,
9252         flag_reorder_blocks_and_partition.
9253         * output.h (unlikely_text_section): New extern function declaration.
9254         (in_unlikely_text_section): New extern function declaration.
9255         * passes.c (rest_of_handle_stack_regs):  Add
9256         flag_reorder_blocks_and_partition as an 'or' condition for calling
9257         reorder_basic_blocks.
9258         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
9259         as an 'or' condition for calling reorder_basic_blocks.
9260         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
9261         * print-rtl.c (print_rtx): Add code for handling new note,
9262         NOTE_INSN_UNLIKELY_EXECUTED_CODE
9263         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
9264         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
9265         cross between section boundaries.
9266         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
9267         indicating the basic block containing it belongs in the cold section.
9268         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
9269         between hot and cold sections.
9270         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
9271         initialize this flag, and to tie it to the command-line option
9272         freorder-blocks-and-partition.
9273         * varasm.c (cfglayout.h):  Add new include statement.
9274         (unlikely_section_label_printed):  New global variable, used for
9275         determining when to output section name labels for cold sections.
9276         (in_section):  Add in_unlikely_executed_text to enum data structure.
9277         (text_section):  Modify code to use SECTION_FORMAT_STRING and
9278         NORMAL_TEXT_SECTION_NAME macros.
9279         (unlikely_text_section):  New function.
9280         (in_unlikely_text_section):  New function.
9281         (function_section):  Add code to make sure beginning of function is
9282         written into correct section (hot or cold).
9283         (assemble_start_function):  Add code to make sure stuff is written to
9284         the correct section.
9285         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
9286         to an if statement that was checking 'in_text_section'.
9287         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
9288         condition to an if statement that was checking 'in_text_section'.
9289         (default_section_type_flags_1):  Add check: if in cold section
9290         flags = SECTION_CODE.
9291         * config/darwin.c (darwin_asm_named_section):  Modify to use
9292         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
9293         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
9294         specifically for the i386.
9295         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
9296         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
9297         text string to something more informative.
9298         (NORMAL_TEXT_SECTION_NAME): Add new definition.
9299         (SECTION_FORMAT_STRING):  Add new definition.
9300         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
9301         '!in_unlikely_text_section' as an 'and' condition to an if statement
9302         that was already checking '!in_text_section'.
9303         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
9304         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
9305         sure these are properly defined for linux on ppc.
9306         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
9307         for this new flag.
9308         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
9309         reg_note.
9310         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
9311         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
9312         these new macros.
9313
9314 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9315
9316         * function.c (gen_mem_addressof): When changing the RTX from a REG
9317         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
9318
9319 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9320
9321         PR target/14888
9322         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
9323         truncxfdf2_noop): Provide dummy "fmov" implementations.
9324
9325 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
9326
9327         * gcc.c (default_compilers): Add missing initializers.
9328
9329         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9330         Return 1 if file was successfully mapped.
9331
9332 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
9333
9334         PR pch/13419
9335         PR pch/14137
9336         Radar #: 3315288
9337         * doc/invoke.texi (Precompiled Headers): Suggest -o
9338         to put an output file in a particular place.  Be more detailed
9339         about which options affect PCH validity and which options
9340         might not work.
9341         * c-pch.c (pch_matching): New.
9342         (MATCH_SIZE): New.
9343         (struct c_pch_validity): New field 'match'.
9344         (pch_init): Handle pch_matching.
9345         (c_common_valid_pch): Check pch_matching.
9346
9347         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
9348
9349 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
9350
9351         * doc/invoke.texi (Precompiled Headers): Warn about known
9352         problems.
9353
9354 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
9355
9356         PR c++/14808
9357         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
9358         to 1 if ASM_OUTPUT_DEF is defined.
9359         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
9360         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
9361         Set to non-zero iff not a one_only decl.
9362
9363 2004-04-08  Paul Brook  <paul@codesourcery.com>
9364
9365         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
9366
9367 2004-04-08  Paul Brook  <paul@codesourcery.com>
9368
9369         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
9370         PROMOTE_FOR_CALL_ONLY.
9371         * config/arm/arm-protos.h (arm_function_value): Declare.
9372         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9373         (TARGET_PROMOTE_PROTOTYPES): Return false.
9374         (arm_function_value): New function.
9375         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
9376         (FUNCTION_VALUE): Call arm_function_value.
9377         * config/cris/cris.h (PROMOTE_MODE): Rename ...
9378         (PROMOTE_FUNCTION_MODE): ... to this.
9379         (PROMOTE_FOR_CALL_ONLY): Remove.
9380         * config/mmix/mmix.h: Likewise.
9381         * config/s390/s390.h: Likewise.
9382         * config/sparc/sparc.h: Likewise.
9383         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
9384         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
9385         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
9386         (PROMOTE_FOR_CALL_ONLY): Remove.
9387
9388 2004-04-08  Joel Sherrill <joel@oarcorp.com>
9389
9390         PR ada/14538
9391         * ada/5rosinte.adb: Remove fake mprotect() body.
9392         * ada/5rosinte.ads: Add SA_SIGINFO.
9393         * ada/5rtpopsp.adb: Rewrite to use new interface.
9394         * ada/init.c: Reorder so the simple single OS conditional __rtems__
9395         is tested before more complex ones which mix UNIX and embedded
9396         systems in the conditional.
9397
9398 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
9399
9400         PR ada/14665
9401         * ada/osint.adb (Find_Program_Name): Rework to properly handle
9402         filenames which end in .exe or have versioning suffixes like VMS.
9403
9404 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
9405
9406         PR target/10129
9407         * config/darwin.c (darwin_encode_section_info): When the decl has
9408         a DECL_INITIAL, it is only defined also when it is not a common.
9409
9410 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9411
9412         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
9413         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
9414
9415 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
9416
9417         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
9418         global register variables.
9419
9420 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
9421
9422         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
9423         rpc_xdr_lvalue_cast_b): New fixes.
9424         * fixinc/fixincl.x: Regenerate.
9425         * fixinc/tests/base/rpc/xdr.h: Add new tests.
9426
9427 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
9428
9429         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
9430         to power4 and power5 entries.
9431
9432 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
9433
9434         * c-common.h (pending_lang_change): Mark for PCH.
9435
9436 2004-04-07  Caroline Tice  <ctice@apple.com>
9437
9438         * gcc.c (main): Move 'break' in main loops (on an error)
9439         to wait until error processing has occurred.
9440
9441 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
9442
9443         * config.gcc: Stop changing enable_threads midstream.
9444         Replace uses of enable_threads_flag with enable_threads.
9445         * configure.ac: Replace uses of enable_threads_flag with
9446         enable_threads.  Improve autoconf quotation in one place.
9447         * configure: Regenerate.
9448
9449 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
9450
9451         * builtins.c: Implement support for sincos function.
9452         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
9453         BUILT_IN_COS{,F,L}.
9454         (expand_builtin_mathfn_3): New function.
9455         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
9456         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
9457         flag_unsafe_math_optimization is set.
9458
9459         * optabs.h (enum optab_index): Add new OTI_sincos.
9460         (sincos_optab): Define corresponding macro.
9461
9462         * optabs.c (init_optabs): Initialize sincos_optab.
9463         (expand_twoval_unop): New function.
9464
9465         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
9466         patterns.
9467
9468         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
9469         and UNSPEC_SINCOS_SIN.
9470
9471         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
9472         sincosxf3): New patterns to implement sincos, sincosf and sincosl
9473         built-ins as inline x87 intrinsics. Define splits for
9474         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
9475         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
9476         sincos patterns.
9477         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
9478         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
9479
9480         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
9481         x87's fsincos insn.
9482
9483 2004-04-06  Devang Patel  <dpatel@apple.com>
9484
9485         PR 14467
9486         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
9487
9488 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9489
9490         * doc/install.texi: Update HP-UX 11 installation procedure.
9491
9492 2004-04-06  Paul Brook  <paul@codesourcery.com>
9493
9494         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
9495
9496 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9497
9498         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
9499         when the TLS address is generated by a function call.
9500         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
9501         (tls_local_dynamic): Likewise.
9502
9503 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
9504
9505         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
9506         and TYPE_VOLATILE.
9507
9508 2004-04-05  Caroline Tice  <ctice@apple.com>
9509
9510         * gcc.c (combine_flag): New global variable, for new driver option.
9511         (struct compiler): Add two new fields, to be used when
9512         combining multiple input files in a single pass (IMA).
9513         (default_compilers):  Add values for the new fields to all
9514         compiler entries. Modify the "@c" compiler entry for doing IMA
9515         properly with "-save-temps" and the "combine" flag.
9516         (option_map):  Add new driver option, "--combine", to tell driver
9517         to pass multiple input files to compiler at one time.
9518         (have_o_argbuf_index): New global variable.
9519         (store_arg): Modify to assign value to have_o_argbuf_index.
9520         (struct infile):  Add three new fields, to help with IMA.
9521         (display_help): Add help for new "combine" option.
9522         (process_command): Remove local variable have_o; add code to check
9523         for new "combine" option; remove assignment to combine_inputs.
9524         (do_spec_1):  Modify to deal with IMA better.
9525         (main): Make variable 'lang_n_infiles' local to entire function
9526         rather than to a single block.  Use flag combine_flag to
9527         determine whether to do IMA or not; Modify loop initializing
9528         infiles to deal properly with linker files.
9529         Add code for doing preprocessing in presence of
9530         IMA with "-save-temps" flag.  Modify "main" loop to handle
9531         multiple input files, in multiple languages, with or without
9532         preprocessing,  gracefully.
9533         * toplev.c (set_src_pwd): Modify to not complain if attempting to
9534         re-set it to same directory it's previously been set to (avoid
9535         irritating, meaningless warning messages when doing IMA with
9536         save-temps).
9537         * doc/invoke.texi: Add "-combine" to list of Overall Options;
9538         remove documentation about IMA that is no longer accurate; Add
9539         documentation explaining what "-combine" does.
9540         * ada/lang-specs.h: Add initialization values for new fields in
9541         "struct compiler".
9542         * cp/lang-specs.h: Likewise.
9543         * f/lang-specs.h: Likewise.
9544         * java/lang-specs.h: Likewise.
9545         * objc/lang-specs.h: Likewise.
9546         * treelang/lang-specs.h: Likewise.
9547
9548 2004-04-05  David Edelsohn
9549
9550         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
9551         symbol handling.
9552
9553 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
9554             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9555
9556         PR optimization/13424 (hppa), bootstrap/14462, c/14828
9557         * pa.md: Use replace_equiv_address to retain the attributes of the
9558         memory operands used in the split and peephole2 patterns for optimizing
9559         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
9560
9561 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9562
9563         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
9564         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9565         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
9566         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
9567         PARM_DECL.
9568         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
9569         for a type.
9570         * print-tree.c (print_node): Properly handle side-effects, readonly,
9571         and constant flags.
9572         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
9573         and TREE_CONSTANT if not a type.
9574         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
9575         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
9576         (NON_TYPE_CHECK): New macro.
9577         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
9578
9579 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
9580
9581         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
9582         to DWARF2_DEBUG unconditionally.
9583         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
9584
9585 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
9586             Nathanael Nerode  <neroden@gcc.gnu.org>
9587
9588         PR target/14548
9589         * config.host: Set the shell variable host_can_use_collect2.
9590         Set it to yes by default, and to no for alpha*-dec-*vms*,
9591         i[34567]86-*-mingw32*, and powerpc-*-beos*.
9592         * configure.ac: Set and substitute the shell variable collect2.
9593         Give an error if use_collect2 is yes and host_can_use_collect2 is
9594         no.
9595         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
9596         uses.  Initialize to @collect2@.
9597         (STAGESTUFF): Remove $(USE_COLLECT2).
9598         * config/alpha/x-vms (USE_COLLECT2): Don't set.
9599         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
9600         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
9601         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
9602         * configure: Regenerate.
9603
9604 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9605
9606         * simplify-rtx.c (simplify_binary_operation): Constant fold
9607         DIV, MOD, UDIV and UMOD using div_and_round_double.
9608
9609 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9610
9611         PR c++/14804
9612         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
9613         RECORD_TYPEs.
9614
9615 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9616
9617         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
9618         documentation.
9619
9620 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9621
9622         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
9623         updating the REG_EQUAL note on an insn's libcall_insn.
9624
9625 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9626
9627         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
9628
9629 2004-04-03  Roger Sayle  <roger@eyesopen.com>
9630
9631         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
9632         with reorder_operands_p.
9633
9634 2004-04-03  Jan Hubicka  <jh@suse.cz>
9635
9636         * md.texi (vec_set, vec_extract, vec_init): Document.
9637
9638 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
9639
9640        * opts.c (decode_options): Do function inlining with very small
9641        max-inline-insns-* parameters when optimizing for size.
9642
9643 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
9644
9645         * config/i386/i386.h (TARGET_NOCONA): New macro.
9646         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
9647         (processor_type): Add PROCESSOR_NOCONA.
9648
9649         * config/i386/i386.md (cpu): Add nocona to the attribute values.
9650
9651         * config/i386/i386.c (nocona_cost): New variable.
9652         (m_NOCONA): New macro.
9653         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9654         x86_branch_hints, x86_use_sahf, x86_single_stringop,
9655         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
9656         x86_integer_DFmode_moves, x86_partial_reg_dependency,
9657         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
9658         x86_decompose_lea, x86_arch_always_fancy_math_387,
9659         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
9660         x86_ext_80387_constants, x86_four_jump_limit):
9661         (override_options): Add nocona_cost to processor_target_table.
9662         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
9663         (incdec_operand): Prevent inc/dec generation for Nocona too.
9664         (ix86_issue_rate): Add PROCESSOR_NOCONA.
9665
9666 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
9667
9668         * rtlanal.c (find_reg_note): Manually
9669         unswitch the loop.
9670
9671 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
9672
9673         * genemit.c (gen_split): Change prototype of generated code.
9674         * genrecog.c (write_action): Adjust prototype for and calls to
9675         gen_split_*.
9676         * gensupport.c (struct queue_elem): Add split field.
9677         (queue_pattern): Return a value.  Clear the split field.
9678         (process_rtx): Maintain an association between an insn and the
9679         split generated from it for a define_insn_and_split.
9680         (process_one_cond_exec): Generate a new split for a
9681         define_insn_and_split.
9682         * config/arm/arm-protos.h (arm_split_constant): Add insn
9683         parameter.
9684         (emit_constant_insn): New function.
9685         (arm_gen_constant): Use it.
9686         * config/arm/arm.md: Adjust calls to arm_split_constant.
9687
9688 2004-04-02  Jan Hubicka  <jh@suse.cz>
9689
9690         * cgraph.c: Add overall comment.
9691         (cgraph_inline_hash): New global variable.
9692         (cgraph_create_node): Break out from ...
9693         (cgraph_node): ... here.
9694         (cgraph_edge): New function.
9695         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
9696         (cgraph_remove_edge): Accept edge, intead of source and destination.
9697         (cgraph_redirect_edge_callee): New.
9698         (cgraph_remove_node): Update all new datastructures.
9699         (cgraph_record_call, cgraph_remove_call): Kill.
9700         (dump_cgraph_node): Break out from ... ; dump new datastructures.
9701         (dump_cgraph): ... here.
9702         (cgraph_function_possibly_inlined_p): Use new hashtable.
9703         (cgraph_clone_edge, cgraph_clone_node): New.
9704         * cgraph.h: Include hashtab.h
9705         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
9706         fields, add inlined_to pointer.
9707         (cgraph_node): Add pointer to next_clone.
9708         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
9709         (cgraph_remove_call, cgraph_record_call): Kill.
9710         (cgraph_inline_hash): Declare.
9711         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
9712         cgraph_redirect_edge_callee): Declare.
9713         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
9714         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
9715         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
9716         * cgraphunit.c: Add overall comment.
9717         (cgraph_optimize_function): Kill.
9718         (cgraph_assemble_pending_functions): Do not assemble inline clones.
9719         (cgraph_finalize_function): Update call of cgraph_remove_node
9720         (record_call_1): Record call sites.
9721         (cgraph_create_edges): Accept node instead of decl argument.
9722         (error_found): New static variable.
9723         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
9724         (cgraph_analyze_function): Update for new datastructures.
9725         (cgraph_finalize_compilation_unit): Plug memory leak.
9726         (cgraph_optimize_function): Kill.
9727         (cgraph_expand_function): Do not use cgraph_optimize_function.
9728         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
9729         cgraph_inlined_callees): Kill.
9730         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
9731         clones.
9732         (estimate_growth): Simplify.
9733         (cgraph_clone_inlined_nodes): New function.
9734         (cgraph_mark_inline_edge): Re-implement.
9735         (cgraph_mark_inline): Likewise.
9736         (cgraph_check_inline_limits): Simplify.
9737         (cgraph_recursive_inlining_p): New.
9738         (update_callee_keys): Break out from ...
9739         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
9740         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
9741         Likewise.
9742         (cgraph_expand_all_functions):  Remove inline clones from the ordered
9743         list.
9744         (cgraph_preserve_function_body_p): New predicate.
9745         (cgraph_optimize): Verify cgraph.
9746         * function.h (struct function): Add fields saved_tree/saved_args.
9747         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
9748         * toplev.c (rest_of_compilation): Do not free cfun.
9749         * tree-inline.c: Include function.h
9750         (struct inline_data): Add saving_p field; replace decl/current_decl by
9751         node/current_node.
9752         (insert_decl_map): New function.
9753         (copy_body_r): Handle saving; update cgraph datastructure.
9754         (copy_body): Handle recursive inlining.
9755         (initialize_inlined_parameters): Likewise.
9756         (expand_call_inline): Propagate node attributes; update cgraph.
9757         (optimize_inline_calls): Verify that datastructure still match.
9758         (save_body): New function.
9759         * tree-inline.h (save_body): New.
9760         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
9761         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
9762         * langhooks.c (lang_hooks): Add update_decl_after_saving.
9763
9764 2004-04-01  Serge Belyshev  <1319@bot.ru>
9765
9766         PR target/14702
9767         * config/i386/i386.md: fix source operand constraints in
9768         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
9769
9770 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9771
9772         * fold-const.c (folda): Preserve types of comparisons.
9773
9774 2004-04-01  Richard Henderson  <rth@redhat.com>
9775
9776         * toplev.c (backend_init): Move init_optimization_passes call ...
9777         (lang_dependent_init): ... here.
9778
9779 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
9780             Jakub Jelinek  <jakub@redhat.com>
9781
9782         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
9783         -lgcc --as-needed -lgcc_s --no-as-needed by default.
9784         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
9785         * configure: Rebuilt.
9786         * config.in: Rebuilt.
9787         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
9788         (stage2-start, stage3-start, stage4-start): Likewise.
9789         (stageprofile-start, stagefeedback-start): Likewise.
9790
9791 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9792
9793         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
9794         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9795         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9796         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9797         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
9798         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
9799         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
9800         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
9801         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
9802         * config/sparc/t-linux: Removed.
9803
9804 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9805
9806         PR c++/14755
9807         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
9808         "bitfld++ == const" to "++bitfld == const + incr" transformations.
9809
9810 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9811
9812         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
9813         * stor-layout.c (layout_decl): Likewise.
9814         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
9815         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
9816         * print-tree.c (print_node): Handle various used of unsigned_flag.
9817         * tree.def (BIT_FIELD_REF): Update comment.
9818         * tree.h (TREE_UNSIGNED): Deleted.
9819         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
9820
9821 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9822
9823         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
9824         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
9825         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
9826         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
9827         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
9828         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
9829         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
9830         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
9831         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
9832         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
9833         REAL_TYPE, not INTEGER_TYPE.
9834         (layout_type, case VECTOR_TYPE): Simplify code.
9835         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
9836         * tree.h: Update comments.
9837         (STRIP_NOPS): Use TYPE_UNSIGNED.
9838         (TYPE_UNSIGNED): New macro.
9839         (TYPE_TRAP_SIGNED): Remove now redundant check.
9840         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
9841
9842 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9843
9844         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
9845
9846 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
9847
9848         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
9849         Add darwin-fpsave.asm, darwin-vecsave.asm,
9850         and darwin-world.asm.
9851         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
9852         as the asm files contain altivec instructions.
9853         * config/rs6000/darwin-fpsave.asm: New file.
9854         * config/rs6000/darwin-vecsave.asm: New file.
9855         * config/rs6000/darwin-world.asm: New file.
9856
9857 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
9858
9859         * gengtype-yacc.y (option, stringseq): Add missing
9860         terminating semicolon.
9861
9862 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
9863
9864         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
9865         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
9866         tls_dtprel_ha_32, tls_dtprel_ha_64,
9867         tls_dtprel_lo_32, tls_dtprel_lo_64,
9868         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
9869         tls_tprel_ha_32, tls_tprel_ha_64,
9870         tls_tprel_lo_32, tls_tprel_lo_64,
9871         tls_got_tprel_32, tls_got_tprel_64,
9872         tls_tls_32, tls_tls_64): Replace register_operand with
9873         gpc_reg_operand.
9874
9875 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
9876
9877         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
9878         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
9879         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
9880         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
9881         *ctrdi_internal6): Replace register_operand with
9882         nonimmediate_operand.
9883
9884 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
9885
9886         * fold-const.c (fold): Reassociate multiply expression
9887         with an adjacent non-multiply expression to use
9888         architecture's multiply-add instruction.
9889
9890 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
9891
9892         * gengtype.c (create_option): New function.
9893         * gengtype.h: Prototype it.
9894         * gengtype-yacc.y (stringseq): New rule.
9895         (option): Use create_option.  Add new bare ID production.  Use
9896         stringseq, not STRING directly.
9897
9898         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
9899         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
9900         * varray.h, config/alpha/alpha.c:
9901         Use new shorter form of GTY markers.
9902
9903         * doc/gty.texi: Rewrite.
9904
9905 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
9906
9907         * config/darwin.c (machopic_function_base_name):
9908         Remove current_name and getting the name of the
9909         current function.
9910
9911 2004-03-30  Nick Clifton  <nickc@redhat.com>
9912
9913         * config/arm/arm.md (thumb_jump): Reduce the backward branch
9914         range, and increase the forward branch range, to allow for
9915         the fact that the PC will be off by 4.
9916
9917 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
9918
9919         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
9920
9921 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9922
9923         * config/rs6000/rs6000.c (output_vec_const_move):
9924         Find all cases of EASY_VECTOR_15_ADD_SELF.
9925         (easy_vector_constant_add_self): Accept
9926         all vector constant loadable by vsplt* and vadd*.
9927         (easy_vector_same): Use easy_vector_splat_const.
9928         (easy_vector_const): Use easy_vector_splat_const.
9929         (easy_vector_splat_const): New function.
9930         (gen_easy_vector_constant_add_self): New function.
9931
9932         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
9933         New prototype.
9934
9935         * config/rs6000/altivec.md (movv4si splitter): Change to
9936         emit move insn with halfed vector constant.
9937         (*movv8hi splitter): Likewise.
9938         (*movv16qi splitter): Likewise.
9939
9940 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9941
9942         PR 11591
9943         * config/rs6000/rs6000.c (rs6000_legitimate_address):
9944         Allow any offset to argument pointer in no-strict case.
9945
9946 2004-03-30  Jan Hubicka  <jh@suse.cz>
9947
9948         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
9949         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
9950         dump file in non-unit-at-a-time mode.
9951
9952 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
9953
9954         * config/cris/cris.h: Correct #ifdef to test for
9955         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
9956         HAVE_AS_MUL_BUG_ABORT_OPTION.
9957
9958 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9959
9960         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
9961         the address inside the old RTL.
9962
9963 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
9964
9965         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
9966         (struct c_binding, struct c_scope): Add chain_next
9967         attributes to GTY markers.
9968         (struct lang_identifier, struct lang_tree_node): Define
9969         here...
9970         * c-tree.h: ... not here.  No longer need to declare struct
9971         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9972         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
9973         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9974
9975         PR 14734, 11944
9976         * c-decl.c (get_parm_info): If error_mark_node is encountered
9977         in the bindings chain, unbind and discard it; don't abort.
9978
9979 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
9980             Dorit Naishlos <dorit@il.ibm.com>
9981
9982         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
9983         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
9984
9985 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
9986
9987         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
9988
9989         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
9990         (m68hc11_attribute_table): New attribute "page0" to mark a global
9991         variable as being allocated from within page0 section.
9992         (m68hc11_encode_label): New function.
9993         (m68hc11_strip_name_encoding): New function.
9994         (m68hc11_page0_symbol_p): New function.
9995         (m68hc11_indirect_p): Accept global variables marked in page0.
9996         (m68hc11_encode_section_info): Lookup "page0" attribute.
9997
9998         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
9999         represents access to page0 variables.
10000
10001         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
10002         ("*logicalsi3_silshl16_zext"): Likewise.
10003         ("*ashldi3_const32"): Likewise.
10004         (peephole2 ashift): Likewise.
10005
10006 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
10007
10008         * c-tree.h (C_DECL_REGISTER): New.
10009         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
10010         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
10011         (build_array_ref, c_mark_addressable): Set and use it.
10012         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
10013         Allow structures with volatile fields to be declared register.
10014         Don't check TREE_ADDRESSABLE before warning about taking address
10015         of register.
10016         * c-decl.c (finish_decl): Don't allow structures with volatile
10017         fields to be placed in named register.
10018         * doc/trouble.texi: Remove reference to structures with volatile
10019         fields in registers.
10020
10021 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
10022
10023         * function.c (thread_prologue_and_epilogue): Move
10024         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
10025         before the epilogue.
10026
10027 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
10028
10029         * expr.c (store_constructor): Use gen_int_mode to correctly
10030         sign-extend CONST_INT value.
10031
10032 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10033
10034         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
10035         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
10036         * doc/extend.texi: Likewise.
10037
10038 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
10039
10040         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
10041           with TYPE_ORIG_SIZE_TYPE.
10042
10043 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
10044
10045         PR 14219
10046         * c-typeck.c (build_binary_op): Do not allow comparisons of
10047         vectors.
10048
10049 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
10050
10051         * config.gcc: Remove sparc-tti-*.
10052         * config/sparc/pbd.h: Delete.
10053
10054         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
10055         * config/sparc/aout.h: Likewise.
10056
10057         * config/sparc/sparc.h: Remove if 0'd code.
10058         * config/sparc/sparc.md (call): Remove if 0'd code.
10059         (call_value): Likewise.
10060         (nonlocal_goto): Likewise.
10061         (unimp_insn): Delete.
10062
10063 2004-03-25  Roger Sayle  <roger@eyesopen.com>
10064
10065         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
10066         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
10067
10068 2004-03-25  Richard Henderson  <rth@redhat.com>
10069
10070         PR 11527
10071         * c-typeck.c (pop_init_level): Emit pending init elements earlier
10072         rather than later.
10073
10074 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10075
10076         * builtins.c (fold_builtin): Fix error in last change.
10077
10078 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
10079
10080         * config/mips/mips.h: Formatting fix.
10081
10082 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10083
10084         * builtins.def: Add ctype builtins.
10085         * doc/extend.texi: Likewise.
10086
10087 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10088
10089         * builtins.c (fold_builtin): Add new builtin optimizations for
10090         sqrt and/or cbrt.
10091         * fold-const.c (fold): Likewise.
10092
10093 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
10094
10095         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
10096         (rs6000_sched_groups): New variable.
10097         (processor_target_table): Add power5.
10098         (rs6000_override_options): Set rs6000_sched_insert_nops,
10099         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
10100         from rs6000_sched_groups.
10101         (output_cbranch): Use rs6000_always_hint.
10102         (rs6000_variable_issue): Use rs6000_sched_groups.
10103         (rs6000_adjust_cost): Add CPU_POWER5.
10104         (is_microcoded_insn): Use rs6000_sched_groups.
10105         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
10106         Return 2 for POWER5 cracked instructions.
10107         (is_cracked_insn): Use rs6000_sched_groups.
10108         (is_branch_slot_insn): Use rs6000_sched_groups.
10109         (rs6000_issue_rate): Add CPU_POWER5.
10110         (rs6000_sched_finish): Use rs6000_sched_groups.
10111         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
10112         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
10113         (DEFAULT_SCHED_COSTLY_DEP): Delete.
10114         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
10115         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
10116         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
10117         * config/rs6000/power5.md: New file.
10118         * doc/invoke.texi: Add power5 option.
10119
10120 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10121
10122         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
10123         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
10124         * doc/invoke.texi: Fix a typo.
10125
10126 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10127
10128         PR optimization/9707.
10129         * stmt.c (emit_case_nodes): Emit equality comparisons instead
10130         of recursing if both children are single-valued cases with no
10131         children.
10132
10133 2004-03-25  Paul Brook  <paul@codesourcery.com>
10134
10135         * config/arm/arm.c (vfp_print_multi): Remove.
10136         (arm_output_fldmx): New function.
10137         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
10138         (arm_expand_prologue): Update to match.
10139         (arm_get_vfp_saved_size): New Function.
10140         (arm_get_frame_offsets): Use it.
10141         (arm_output_epilogue): Use new functions.
10142
10143 2004-03-24  Richard Henderson  <rth@redhat.com>
10144
10145         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
10146         (reg_known_value, reg_known_value_size): Likewise; make static.
10147         (reg_known_equiv_p): Make static.
10148         (clear_reg_alias_info): Update for new indexing.
10149         (get_reg_known_value, set_reg_known_value): New.
10150         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
10151         (canon_rtx): Use them.
10152         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
10153         Don't play queer offsetting games with reg_known_value and
10154         reg_known_equiv_p.
10155         (end_alias_analysis): Free reg_known_value with gc.
10156         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
10157         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
10158         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
10159         functions instead.
10160
10161 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
10162
10163         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
10164         config/i386/mmintrin.h: Update copyright.
10165
10166 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10167
10168         * configure.ac: Add --enable-werror-always (for top level bootstrap
10169         support).
10170         * configure: Regenerate.
10171
10172 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
10173
10174         * objc/objc-act.c (objc_comptypes): Treat comparisons
10175         between 'Class' and '<class> *' as explicitly invalid.
10176
10177 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
10178
10179         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
10180         (-fprofile-values): Add enabled with profile-{generate,use}.
10181         (-fvpt): Same.
10182         (-ftracer): Add enabled with profile-use.
10183         (-funit-at-a-time): Add enabled at -O2,-O3.
10184         (-funroll-loops): Add enabled with profile-use.
10185         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
10186         (max-gcse-passes): Mention default.
10187         (max-cse-path-length): Mention default.
10188
10189 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10190
10191         * Makefile.in (STRICT2_WARN): Reorder.
10192         * configure.ac: Check for -Wold-style-definition, and use it
10193         in strict1_warn if it's available.
10194         * configure: Regnerate.
10195
10196 2004-03-24  Paul Brook  <paul@nowt.org>
10197
10198         * config.gcc <arm>: Add --with-abi=
10199         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
10200         thumb_far_jump_used): Remove prototypes.
10201         (arm_needs_doubleword_align): Add prototype.
10202         (thumb_compute_initial_elimination_offset): Ditto.
10203         * config/arm/arm.c (arm_get_frame_offsets): New function.
10204         (use_return_insn, output_return_instruction, arm_output_epilogue,
10205         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
10206         arm_expand_prologue, thumb_expand_epilogue): Use it.
10207         (arm_abi, target_abi_name, all_arm_abis): New variables.
10208         (arm_override_options): Set them.  Set structure padding for AAPCS.
10209         (arm_return_in_memory): Update ABI check.
10210         (arm_init_cumulative_args): Initialize can_split.
10211         (arm_needs_doubleword_align): New function.
10212         (arm_function_arg): Don't split args after pushing to stack. Handle
10213         doubleword/even reg alignment.
10214         (arm_va_arg): Handle all doubleword aligned args.
10215         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
10216         on ABI, not CPU.
10217         (arm_compute_save_reg0_reg12_mask): Fix comment.
10218         (thumb_get_frame_size, thumb_get_frame_size): Remove.
10219         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
10220         value for alignment.
10221         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
10222         to match.
10223         (thumb_compute_initial_elimination_offset): New function.
10224         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
10225         unneccessary rounding.
10226         * config/arm/arm.h (target_abi_name): Declare.
10227         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
10228         arm_abi_type, ARM_DEFAULT_ABI): Define.
10229         (ARM_FLAG_ATPCS): Remove.
10230         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
10231         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
10232         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
10233         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
10234         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
10235         Contitionalize on ABI, not CPU.
10236         (struct arm_stack_offsets): Define.
10237         (struct machine_function): Add stack_offsets.  Remove frame_size.
10238         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
10239         pushed.
10240         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
10241         doubleword alignment.
10242         (THUMB_INITIAL_ELIMINATION_OFFSET,
10243         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
10244         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
10245         * config/arm/arm.md (align_8): Enable for all targets.
10246         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
10247         (ARM_DEFAULT_ABI): Define.
10248         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
10249         -mstructure-size-boundary.
10250
10251 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10252
10253         * configure.ac: Check for -Wno-variadic-macros; don't use
10254         -pedantic (in stage 1 or a simple 'make all') unless it's available,
10255         and if it's available, use it.  Also, clean up check for
10256         -Wno-long-long.
10257         * configure: Regenerate.
10258
10259 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10260
10261         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
10262         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
10263         (MULTILIB_DEFAULTS): Use it.
10264         (MIPS_CPU_STRING_DEFAULT): Remove.
10265         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
10266         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
10267         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
10268         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
10269         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
10270         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
10271         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
10272         accordingly.
10273
10274 2004-03-24  DJ Delorie  <dj@redhat.com>
10275             Richard Sandiford  <rsandifo@redhat.com>
10276
10277         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
10278         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
10279         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
10280         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
10281         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
10282         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
10283         if TARGET_FIX_VR4122.
10284         * config/mips/mips.md (define_attr length): Account for nops inserted
10285         after macc and dmult when using -mfix-vr4122-bugs.
10286         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
10287         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
10288         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
10289         * config/mips/vr4122-div.S: New file.
10290         * doc/invoke.texi: Document -mfix-vr4122-bugs.
10291
10292 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10293
10294         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
10295         (TARGET_MIPS4130): New macro.
10296         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
10297         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
10298         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
10299         with PROCESSOR_R4130.
10300         * config/mips/mips.md (define_attr cpu): Add r4130.
10301         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
10302
10303 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10304             Richard Sandiford  <rsandifo@redhat.com>
10305
10306         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
10307
10308 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
10309
10310         PR preprocessor/14438
10311         * cpplib.c (do_pragma): Remove line_change call after pragma
10312         handler.
10313
10314 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
10315
10316         * doc/extend.texi (ARM Built-in Functions): Replace with correct
10317         declarations.
10318
10319 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10320
10321         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
10322         if flag_unsafe_math_optimizations.
10323         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
10324         and TARGET_80387 expand using truncdfsf2_noop pattern.
10325         (truncxfsf2): Likewise using truncxfsf2_noop.
10326         (truncxfdf2): Likewise using truncxfdf2_noop.
10327         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
10328
10329 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
10330
10331         * hooks.c (hook_constcharptr_tree_null): New hook.
10332         * hooks.h (hook_constcharptr_tree_null): New prototype.
10333         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
10334         * target.h (mangle_fundamental_type): New target hook.
10335         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
10336         target hook at rs6000_mangle_fundamental_type.
10337         (rs6000_mangle_fundamental_type): New function.
10338         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
10339
10340 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
10341
10342         PR 12267, 12391, 12560, 13129, 14114, 14133
10343         * c-tree.h: Forward declare struct c_binding.  Declare
10344         c_override_bindings_to_false.  Update prototypes.
10345         (struct lang_identifier): Update comments.  Change fields to be
10346         struct c_binding *.
10347         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
10348         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
10349         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
10350         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
10351         * c-common.h: Update prototypes.
10352         * c-decl.c (struct c_scope): Update commentary.  Remove names,
10353         names_last, parms, parms_last, tags, and shadowed fields.  Add
10354         bindings and depth fields.
10355         (scope_freelist): Move to more appropriate location.
10356         (c_print_identifier): Update for changes to struct lang_identifier.
10357         (objc_mark_locals_volatile): Update for new bindings structures.
10358         (global_bindings_p): Honor c_override_global_bindings_to_false.
10359         (pushlevel): Rename to push_scope; take no arguments; use the
10360         scope_freelist; initialize scope->depth and check for overflow.
10361         (poplevel): Rename to pop_scope; totally rewritten for new bindings
10362         structures.
10363         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
10364         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
10365         Improve some commentary.  Adjust handling of forward parm decls.
10366         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
10367         Preserve C_DECL_IN_EXTERNAL_SCOPE.
10368         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
10369         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
10370         decls.  Rewrite for new bindings structures.  Improve commentary.
10371         Eliminate the copy_node call.
10372         (implicit_decl_warning): Use the "diag" idiom (as seen in
10373         locate_old_decl) to reduce code duplication; call locate_old_decl
10374         if appropriate.  Relocate to remove need for forward declaration.
10375         (implicitly_declare): Adjust for new bindings structures.  Kludge
10376         around Objective-C not-really-builtin functions.
10377         (undeclared_variable): Improve diagnostics.  If current_function_decl
10378         is nonnull but current_function_scope is null, use current_scope.
10379         Use bind.
10380         (lookup_tag): Adjust for new bindings structures.  Kludge around
10381         Objective-C's tag declarations that wind up in the external scope.
10382         (lookup_name): Adjust for new bindings structures.  Kludge around
10383         c-common.c's pseudo-typedefs that wind up in the external scope.
10384         (lookup_name_current_level): Rename lookup_name_in_scope; take a
10385         second argument indicating the scope to examine; rewrite for
10386         new bindings structures.
10387         (c_init_decl_processing): Adjust for renamed functions.  Do not
10388         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
10389         First scope pushed is the external scope, not the global scope.
10390         (builtin_function): Use bind, not pushdecl.  Adjust other bits
10391         for new data structures.  Keep track of builtins that should be
10392         made visible automatically.
10393         (start_decl): Adjust diagnostics.  Remove unnecessary call to
10394         expand_decl.
10395         (grokparms): Return 0 if arg_types is error_mark_node.
10396         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
10397         reversed sense.  Rewrite for new bindings structures.  Do not
10398         leave any decls in the scope, to prevent pop_scope from doing
10399         contradictory things with them.
10400         (finish_struct, finish_enum): Remove redundant diagnostics.
10401         (build_enumerator): Don't cascade diagnostics for error_mark_node.
10402         Mark location where -pedantic changes the meaning of the program.
10403         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
10404         parameter decls into the function's scope structure using bind.
10405         Warn here about function definitions in the wrong style.
10406         Adjust diagnostics.
10407         (store_parm_decls): Correct the determination of whether a
10408         function was defined with a prototype.
10409         (c_write_global_declarations): Operate on all file decls and on
10410         the external scope.  Split body of the loop to...
10411         (c_write_global_declarations_1): ... this new function, to avoid
10412         code duplication.
10413         (truly_local_externals, first_builtin_decl, last_builtin_decl)
10414         (make_scope, pop_scope, in_parm_level_p, set_block)
10415         (any_external_decl, record_external_decl, bind_label, getdecls)
10416         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
10417         (c_reset_state): Delete.
10418         (visible_builtins, c_override_global_bindings_to_false)
10419         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
10420         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
10421         (external_scope, binding_freelist, bind, free_binding_and_advance)
10422         (push_file_scope, pop_file_scope): New.
10423         (pushtag, pushdecl_top_level, lookup_label, declare_label)
10424         (define_label, c_make_fname_decl, finish_decl)
10425         (mark_forward_parm_decls, build_compound_literal)
10426         (grokdeclarator, start_function, check_for_loop_decls)
10427         (identifier_global_value, record_builtin_type): Minor adjustments
10428         for new bindings structures.  Improve diagnostics and commentary.
10429         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
10430         pushlevel/poplevel respectively.
10431         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
10432         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
10433         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
10434         correct loop over multiple translation units; call fatal_error if
10435         requested to compile more than one file at once.  (This disables
10436         IMA temporarily - an up-front error being preferable to a crash.)
10437         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
10438         (all actions): Adjust calls to pushlevel/poplevel.
10439         (parsing_iso_function_signature): Delete.
10440         (extdef_1): Fold into extdef.
10441         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
10442         warn here about function definitions in the wrong style.
10443         (after_tyle_declarator, parm_declarator_starttypename)
10444         (parm_declarator_nostarttypename, notype_declarator): Remove
10445         commented-out productions.
10446         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
10447         an empty TREE_LIST node.  Adjust calls to get_parm_info.
10448         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
10449         to suppress -Wold-style-definition after this error.
10450         (c_parse_file): Don't clear the binding stack or call
10451         finish_fname_decls here.  Correct comment.
10452         * c-typeck.c (same_translation_unit_p): Export.
10453         (common_type): Use c_override_global_bindings_to_false, not
10454         pushlevel/poplevel/declare_parm_level.
10455         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
10456         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
10457         and LANG_HOOKS_GETDECLS with do-nothing stubs.
10458         * objc/objc-lang.c: Likewise.
10459         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
10460         get_parm_info.
10461         (OBJC_VOID_AT_END): Delete; replace all uses
10462         with void_list_node.
10463         (generate_forward_declaration_to_string_table): Delete.
10464         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
10465
10466         * coverage.c (create_coverage): Don't pushdecl anything.
10467         * langhooks.c (lhd_clear_binding_stack): Call
10468         lang_hooks.decls.poplevel, not poplevel.
10469         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
10470         circular list rather than going into an infinite loop.
10471
10472 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
10473
10474         * optabs.c (expand_binop): When synthesizing double word rotates
10475         from single word shifts, use a new register target if the provided
10476         target is not a REG already.
10477
10478 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10479
10480         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
10481         * c-common.c (handle_mode_attribute): Add extra arg to
10482         build_pointer_type_for_mode and build_reference_type_for_mode.
10483         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
10484         for INTEGER_CST.
10485         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
10486         Chain pointers via TYPE_NEXT_PTR_TO.
10487         (build_reference_type_for_mode): Similarly.
10488         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
10489         and build_reference_type_for_mode.
10490         (tree_check4_failed): New function.
10491         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
10492         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
10493         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
10494         Add check.
10495
10496 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10497
10498         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
10499         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
10500         when both A and B are nonnegative.
10501         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
10502         nonzero.
10503
10504 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10505
10506         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
10507         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
10508
10509 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10510
10511         PR optimization/14669
10512         * fold-const.c (fold): Only unwiden integer comparisons for equality
10513         and inequality operators, or when the signedness doesn't change.
10514
10515 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
10516
10517         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10518         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
10519         * config/sparc/t-linux: New file.
10520
10521 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
10522
10523         * gcse.c (can_assign_to_reg_p): New function, split out from...
10524         (want_to_gcse_p): ...here.
10525         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
10526         the rhs of a store.
10527
10528 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
10529
10530         * c-typeck.c (same_translation_unit_p): Fix pasto.
10531
10532 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
10533
10534         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
10535         (PARAM_MAX_SCHED_REGION_INSNS): New.
10536         * sched-rgn.c: Include params.h
10537         (MAX_RGN_BLOCKS): Delete.
10538         (MAX_RGN_INSNS): Delete.
10539         (too_large): Return bool.  Convert to PARAM_VALUE.
10540         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
10541         * doc/invoke.texi (param): Document max-sched-region-blocks and
10542         max-sched-region-insns.
10543
10544 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10545
10546         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
10547         for base types.
10548
10549 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10550
10551         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
10552         change.
10553
10554 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
10555
10556         PR c/14069
10557         * c-decl.c (finish_struct): Change type of incorrect flexible array
10558         field into error_mark_node.
10559
10560 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
10561
10562         PR target/14580
10563         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
10564         who are not local for Darwin PIC.
10565
10566 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
10567
10568         * regrename.c (regrename_optimize): Set regs_ever_live for all
10569         registers introduced as replacement.
10570
10571 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10572
10573         PR middle-end/14470
10574         * expr.c (mark_queue): New function.
10575         (emit_insns_enqueued_after_mark): New function replacing
10576         emit_queue.  Clear the body of emitted queued insns.
10577         (emit_queue): Call emit_insns_enqueued_after_mark.
10578         (store_expr): Mark the increment queue on entry.  Emit
10579         only the incrementations queued when expanding the source.
10580
10581 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
10582
10583         * configure.ac: Allow --disable-coverage-flags (for the future benefit
10584         of top level bootstrap, and consistency).  Reindent.
10585         * configure: Regenerate.
10586
10587 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10588
10589         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
10590         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
10591         unnecessary casts.
10592
10593 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
10594
10595         PR target/14291
10596         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
10597         __MINGW32__.
10598
10599 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10600
10601         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
10602         to nonimmediate_operand.
10603         ("*doloop_di"): Likewise.
10604
10605 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
10606
10607         * real.h (struct real_value): Use the same type for all
10608         bitfields.  Rename exp to uexp.
10609         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
10610         Adjust all uses of exp...
10611         * builtins.c: ... here, ...
10612         * emit-rtl.c: ... here, and ...
10613         * real.c: ... and here.
10614
10615 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10616
10617         * pretty-print.c (pp_base_maybe_space): New function.
10618         * pretty-print.h (pp_base_maybe_space): Declare.
10619         (pp_maybe_space): New macro.
10620
10621 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10622
10623         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
10624
10625 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10626
10627         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
10628         of using register multiplication cost.
10629         (expand_mult): Adapt choose_mult_variant call.
10630         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
10631         of MODE; pass appropriate cost bound.  Adjust result when
10632         performing signed multiplication by a negative constant.
10633         Don't use intermediate modes larger than word_mode.
10634
10635 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10636
10637         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
10638         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
10639         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
10640         * explow.c (expr_size): Likewise.
10641         * expr.h (placeholder_list, find_placeholder): Deleted.
10642         * expr.c (store_constructor): Likewise.
10643         (get_inner_reference): Likewise.  Also don't call find_placeholder.
10644         (placeholder_list, find_placeholder): Deleted.
10645         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
10646         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
10647         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
10648         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
10649         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
10650         Likewise.
10651         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
10652         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
10653         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
10654         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
10655         Clean up by using first_rtl_op.
10656         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
10657         (substitute_placeholder_in_expr): New function.
10658         * tree.def (WITH_RECORD_EXPR): Deleted.
10659         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
10660         (substitute_placeholder_in_expr): New.
10661
10662 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
10663
10664         * dojump.c (prefer_and_bit_test): Fix which part of
10665         the and_test is replaced.
10666
10667 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10668
10669         * frontends.texi: Add missing line.
10670
10671 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
10672             Chris Devers  <cdevers@pobox.com>
10673             Joseph S. Myers  <jsm@polyomino.org.uk>
10674
10675         * doc/frontends.texi: Rewrite.
10676         * doc/gcc.texi: Update last modification date.
10677
10678 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
10679
10680         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
10681         message before redirecting the edge.
10682
10683 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10684
10685         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
10686         flag.
10687         * explow.c (force_not_mem): Set REG_POINTER flag according to
10688         MEM_POINTER one.
10689         * rtl.h (MEM_POINTER): New macro.
10690         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
10691         for MEM_POINTER.
10692
10693 2004-03-20  Roger Sayle  <roger@eyesopen.com>
10694
10695         PR target/13889
10696         * cse.c (fold_rtx): Avoid substituting constants into unary
10697         conversion operations.
10698
10699 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10700
10701         * fold-const.c (fold): Replace "expr" with "t".
10702
10703 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
10704
10705         PR c/12373
10706         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
10707         DECL_ORIGINAL_TYPE if there isn't one.
10708
10709 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10710
10711         * fold-const.c (fold): Replace "final_type" with "type".
10712         Remove variable "final_type".
10713
10714 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10715
10716         * fold-const.c (fold): Constify "type".
10717         Replace "TREE_TYPE (t)" with "type".
10718
10719 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10720
10721         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
10722         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
10723         via (*targetm.foo) () with targetm.foo ().
10724
10725 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10726
10727         PR other/14630
10728         * doc/install.texi: Add info directory category and entry.
10729
10730 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10731
10732         * fold-const.c (fold): Replace "t" with "tem" where it is used
10733         as a temporary variable.  Remove "orig_t" and all of its uses.
10734
10735 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10736
10737         * fold-const.c (fold): Remove variable "invert".
10738         Move the handling of relational expressions that can be folded
10739         to a constant ...
10740         (fold_relational_const): ... here.
10741         (tree_expr_nonzero_p): New.
10742
10743 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10744
10745         PR c/14635
10746         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
10747         DEF_GCC_BUILTIN.
10748
10749 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
10750
10751         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
10752         (GTFILES): Add $(srcdir)/dojump.h.
10753         (gt-dojump.h): New dependency.
10754         * dojump.c (and_reg, and_test, shift_test): New static variables.
10755         (prefer_and_bit_test): New function.
10756         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
10757
10758 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10759
10760         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
10761         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
10762         reorg.c, tree.h: Fix comment typos.
10763
10764 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10765
10766         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
10767         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
10768         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
10769         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
10770         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
10771         vmsdbgout.c: Replace calls via (*targetm.foo) () with
10772         targetm.foo ().
10773
10774 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
10775
10776         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
10777         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
10778         always_inline attribute.
10779         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
10780         Treat expansion as completed even if literal argument is
10781         invalid (so that other expansions are not tried in vain).
10782
10783 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10784
10785         * loop-doloop.c (add_test): Replace GEN_INT (0) with
10786         const0_rtx.
10787
10788 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10789
10790         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
10791         ...
10792         (fold_abs_const): ... here.
10793
10794 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10795
10796         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
10797
10798 2004-03-19  Denis Chertykov  <denisc@overta.ru>
10799
10800         PR target/11520
10801         * config/avr/avr.md ("call_insn"): Handle explicit integer
10802         specially.
10803         (call_value_insn): Likewise.
10804
10805 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10806
10807         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
10808
10809 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10810
10811         * fold-const.c (negate_expr): Move the handling of constants
10812         ...
10813         (fold_negate_const): ... here.
10814
10815 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10816
10817         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
10818         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
10819         * tree.c (debug_no_type_hash): Deleted.
10820         (type_hash_canon): Abort if passed a variant.
10821         Check lang_hooks.types.hash_types.
10822         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
10823         (build_array_type): Remove unnecessary allocation of pointer type.
10824         (build_complex_type): Properly qualify resulting type.
10825
10826 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
10827
10828         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
10829
10830 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
10831
10832         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
10833         (expand_mult): ...here.
10834         (extract_high_half): New, split out from expand_mult_highpart.
10835         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
10836         (expand_highpart): Evaluate the cost of a shift/add sequence,
10837         then see if any of the specialized optabs are cheaper.
10838
10839 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
10840
10841         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
10842
10843 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10844
10845         * convert.c (convert_to_real): Add more math builtins.
10846
10847 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10848
10849         * convert.c (convert_to_real): Reformat using switch stmt.
10850
10851 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10852
10853         * c-common.c (pointer_int_sum): Do not complain about using
10854         pointers to pointers-to-members.
10855
10856 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10857
10858         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
10859         have moved to the target hooks structure".
10860
10861 2004-03-18  James E Wilson  <wilson@specifixinc.com>
10862
10863         * config/mips/mips.md (type): Split move into arith and fmove.  Split
10864         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
10865         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
10866         Likewise.
10867         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
10868         Likewise.
10869         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
10870         rm7_fp_quick): Likewise.
10871         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
10872         rm9k_fquick): Likewise.
10873         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
10874         Likewise.
10875         (ir_sr70_icmp): Delete.
10876
10877 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10878
10879         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
10880         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
10881         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
10882         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
10883         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
10884         Protect with proper check.
10885         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
10886         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
10887         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
10888         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
10889         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
10890         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
10891         not TYPE_FIELDS.
10892         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
10893
10894 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
10895
10896         * gcse.c (eliminate_partially_redundant_loads): Reject change if
10897         dest is set between beginning and current insn.
10898
10899 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10900
10901         * c-decl.c (grokdeclarator): Do not complain about redeclaring
10902         visible "static" identifiers "extern" in a local scope.
10903         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
10904         post-increments/decrements.
10905
10906 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
10907
10908         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
10909         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
10910         (xtensa_va_start): Remove assignment to current_function_arg_words.
10911
10912 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
10913
10914         * alias.c (record_set): Detect the case where a register is assigned
10915         a new value that has the same base term as the old one.
10916
10917 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10918
10919         * doloop.c: Removed.
10920         * loop-doloop.c: New file.
10921         * Makefile.in (doloop.o): Remove.
10922         (loop-doloop.o): New.
10923         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
10924         * cfgloopanal.c (get_loop_level): New function.
10925         * loop-iv.c (iv_number_of_iterations): Handle case when loop
10926         is leaved immediatelly.
10927         * loop.c (strength_reduce): Do not call doloop optimization.
10928         * loop.h (LOOP_BCT): Removed.
10929         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
10930         (rest_of_handle_loop2): Call doloop_optimize_loops.
10931         (rest_of_compilation): Test for optimizations moved to
10932         rest_of_handle_loop2.
10933
10934 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
10935
10936         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
10937         for mixed mode.
10938         (rs6000_emit_prologue): Ditto.
10939         (rs6000_emit_epilogue): Ditto.
10940         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
10941         macro for mixed mode.
10942
10943 2004-03-18  Jan Hubicka  <jh@suse.cz>
10944
10945         * predict.c (propagate_freq): Compute correctly frequency of
10946         EXIT_BLOCK.
10947
10948 2004-03-17  Eric Christopher  <echristo@redhat.com>
10949
10950         * builtins.c (apply_args_size): Use reg_raw_mode.
10951         (apply_result_size): Ditto.
10952
10953 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10954
10955         PR target/14620
10956         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
10957
10958 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
10959
10960         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
10961         32-bit builds when defaulting to 32-bit.
10962
10963 2004-03-17  Jan Hubicka  <jh@suse.cz>
10964
10965         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
10966         array.
10967
10968 2004-03-17  James E Wilson  <wilson@specifixinc.com>
10969
10970         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
10971         (hazard_nop): Change type to nop.
10972         (type): Split arith into arith, shift, slt, clz.  Delete darith.
10973         Fix all uses.  Change arith to multi if more than one insn emitted.
10974         * config/mips/5400.md (ir_vr54_arith): Likewise.
10975         * config/mips/5500.md (ir_vr55_arith): Likewise.
10976         * config/mips/7000.md (rm7_int_other): Likewise.
10977         * config/mips/9000.md (rm9k_int): Likewise.
10978         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
10979
10980 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
10981
10982         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
10983         to hold the subtype tree instead of recomputing it several times.
10984
10985 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
10986
10987         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
10988         CC_INVERT.
10989         * config/mn10300/mn10300.md (cc): Remove "invert".
10990
10991 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10992
10993         * builtins.c (integer_valued_real_p): Add builtin rint.
10994         (fold_builtin): Likewise.
10995         * convert.c (convert_to_real): Likewise.
10996
10997         * convert.c (convert_to_real): Fix typos in `long double'
10998         builtins.
10999
11000 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
11001
11002         PR c++/14481
11003         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
11004         generated COMPOUND_EXPRs.
11005
11006 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11007
11008         * config/h8300/t-rtems (h8300-*-rtems*): New.
11009
11010 2004-03-16  Eric Christopher  <echristo@redhat.com>
11011
11012         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
11013
11014 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
11015
11016         * config/i386/i386-protos.h: Add a prototype for
11017         ix86_reverse_condition.
11018         * config/i386/i386.c (ix86_reverse_condition): New.
11019         * config/i386/i386.h (REVERSE_CONDITION): Use
11020         ix86_reverse_condition.
11021         * config/i386/i386.md: Use ix86_reverse_condition instead of
11022         REVERSE_CONDITION.
11023
11024 2004-03-16  J. Brobecker  <brobecker@gnat.com>
11025
11026         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
11027
11028 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11029
11030         PR bootstrap/12974
11031         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
11032
11033 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
11034
11035         * c-common.c (c_common_type_for_mode): Build vector types on
11036         demand.
11037         (handle_mode_attribute): Deprecate using the mode attribute
11038         to create vector types.  Fix indentation.
11039         (vector_type_node_list): Remove.
11040         (handle_vector_size_attribute): Create vector types on demand.
11041         Strip a NON_LVALUE_EXPR from the attribute if there is one.
11042         * c-typeck.c (comptypes): Make vector types compatible if they
11043         have the same underlying mode.
11044         (convert_for_assignment): Use comptypes to convert between
11045         vector types.
11046         * tree.c (build_common_tree_nodes_2): Do not create vector types.
11047         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
11048         vector types.
11049         * tree.h: Remove vector types.
11050         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
11051         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
11052         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
11053         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
11054         * doc/extend.texi (Vector Types): Document how to use the
11055         vector_size attribute to create vectors, rather than mode.
11056
11057         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
11058         * config/i386/emmintrin.h: Likewise.
11059         * config/i386/mmintrin.h: Likewise.
11060         * config/i386/xmmintrin.h: Likewise.
11061         * config/sh/ushmedia.h: Likewise.
11062
11063 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
11064
11065         * config/freebsd-spec.h, config/arc/arc-protos.h,
11066         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
11067         config/arm/linux-gas.h, config/arm/semi.h,
11068         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
11069         config/ia64/freebsd.h, config/mips/7000.md,
11070         config/mips/9000.md, config/ns32k/ns32k-protos.h,
11071         config/sparc/pbd.h: Update copyright.
11072
11073 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11074
11075         PR target/14577
11076         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
11077
11078 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
11079
11080         * combine.c (combine_simplify_rtx): Remove the "last"
11081         parameter and its documentation.  Adjust recursive calls.
11082         (simplify_logical): Always perform the only simplification
11083         controlled by "last", if the simplified expression is
11084         actually different.
11085         (try_combine): Do not pass the "last" parameter to
11086         combine_simplify_rtx.
11087
11088 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
11089
11090         PR target/14599
11091         * config/mips/mips.md (UNSPEC_GP): New constant.
11092         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
11093         an UNSPEC instead of (reg $gp).
11094         (mips16_gp_pseudo_reg): Change accordingly.
11095         (print_operand): Print $gp directly when handling CONST_GP_P.
11096
11097 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11098
11099         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
11100         * longlong.h: Make code 68060 clean when compiling for m68060.
11101
11102 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11103
11104         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
11105         * doc/md.texi: Clarify description of "i" constraint.
11106
11107 2004-03-15  James E Wilson  <wilson@specifixinc.com>
11108
11109         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
11110         Split store into store, fpstore, fpidxstore.  Fix all uses.
11111         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
11112         Likewise.
11113         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
11114         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
11115         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
11116         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
11117         ir_sr70_fstore): Likewise.
11118
11119 2004-03-15  Richard Henderson  <rth@redhat.com>
11120
11121         PR middle-end/14535
11122         * except.c (collect_one_action_chain): Record action for cleanup
11123         outer of exception spec.
11124
11125 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
11126
11127         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11128         Fix the check for abort and only do the mmap if we can.
11129
11130 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
11131
11132         * config/sparc/sparc.h: Rework comments about the code model
11133         in 64-bit environment and the mode 'Pmode'.
11134         * doc/invoke.texi (SPARC options): Rework description of the
11135         different code models supported in 64-bit environment.
11136
11137 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11138
11139         * defaults.h (REVERSIBLE_CC_MODE): Define.
11140         * jump.c (reversed_comparison_code_parts): Don't check if
11141         REVERSIBLE_CC_MODE is defined.
11142
11143 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11144
11145         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
11146         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
11147         hosthooks.h, params.h, ra-colorize.c, web.c,
11148         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
11149         config/avr/avr-protos.h, config/avr/avr.md,
11150         config/fr30/fr30-protos.h, config/fr30/fr30.md,
11151         config/h8300/fixunssfsi.c, config/i386/darwin.h,
11152         config/i386/freebsd.h, config/i386/freebsd64.h,
11153         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
11154         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
11155         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
11156         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
11157         config/pa/pa64-regs.h, config/rs6000/aix41.h,
11158         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
11159         config/sparc/aout.h, config/sparc/freebsd.h,
11160         config/sparc/litecoff.h, config/vax/vax-protos.h,
11161         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
11162         copyright.
11163
11164 2004-03-15  Paul Brook  <paul@codesourcery.com>
11165
11166         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
11167
11168 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11169
11170         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
11171         (pp_c_cv_qualifier): Document.
11172         (pp_c_space_for_pointer_operator): Likewise.
11173         (pp_c_integer_constant): Likewise.
11174         (pp_c_identifier): Likewise.
11175         (pp_c_init_declarator): Don't print function body.
11176
11177 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11178
11179         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
11180         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
11181         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
11182         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
11183         wording and grammar.
11184
11185 2004-03-14  Roger Sayle  <roger@eyesopen.com>
11186
11187         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
11188         with lang_hooks.foo ().
11189         * builtins.c (expand_builtin_va_arg): Likewise.
11190         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
11191         c_common_type_for_mode, c_common_nodes_and_builtins,
11192         handle_mode_attribute, handle_vector_size_attribute): Likewise.
11193         * c-convert.c (convert): Likewise.
11194         * c-format.c (check_format_types): Likewise.
11195         * c-objc-common.c (c_tree_printer): Likewise.
11196         * c-typeck.c (build_unary_op, build_conditional_expr,
11197         build_binary_op): Likewise.
11198         * calls.c (try_to_integrate, expand_call,
11199         emit_library_call_value_1): Likewise.
11200         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
11201         Likewise.
11202         * cgraphunit.c (record_call_1, cgraph_analyze_function,
11203         cgraph_expand_function): Likewise.
11204         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
11205         * coverage.c (build_fn_info_type, build_ctr_info_type,
11206         build_gcov_info, create_coverage): Likewise.
11207         * dbxout.c (dbxout_init): Likewise.
11208         * diagnostic.c (diagnostic_report_current_function): Likewise.
11209         * dojump.c (do_jump): Likewise.
11210         * dwarf2out.c (dwarf2_name): Likewise.
11211         * except.c (init_eh): Likewise.
11212         * explow.c (expr_size, int_expr_size): Likewise.
11213         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
11214         Likewise.
11215         * expr.c (store_expr, store_constructor, safe_from_p,
11216         expand_expr_real, do_store_flag, try_casesi): Likewise.
11217         * function.c (push_function_context_to, pop_function_context_from,
11218         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
11219         put_var_into_stack, allocate_struct_function, current_function_name):
11220         Likewise.
11221         * integrate.c (copy_decl_for_inlining, expand_inline_function):
11222         Likewise.
11223         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
11224         lhd_print_error_function): Likewise.
11225         * opts.c (handle_option, decode_options): Likewise.
11226         * passes.c (open_dump_file): Likewise.
11227         * print-tree.c (print_node): Likewise.
11228         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
11229         expand_decl_cleanup, emit_case_nodes): Likewise.
11230         * stor-layout.c (variable_size): Likewise.
11231         * toplev.c (announce_function, wrapup_global_declarations,
11232         check_global_declarations, compile_file, default_tree_printer,
11233         process_options, lang_dependent_init, finalize): Likewise.
11234         * tree-dump.c (dequeue_and_dump): Likewise.
11235         * tree-inline.c (remap_decl, remap_block, copy_body_r,
11236         initialize_inlined_parameters, declare_return_variable,
11237         inlinable_function_p, expand_call_inline, optimize_inline_calls,
11238         walk_tree, copy_tree_r): Likewise.
11239         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11240         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
11241         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
11242         variably_modified_type_p, dump_tree_statistics): Likewise.
11243         * varasm.c (assemble_variable, compare_constant, copy_constant,
11244         force_const_mem, compute_reloc_for_constant, output_constant,
11245         output_addressed_constants, initializer_constant_valid_p): Likewise.
11246
11247 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
11248
11249         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
11250
11251 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
11252
11253         * doc/install.texi: Reflect autoconf and automake version for
11254         libffi. Update autoconf version to 2.59.
11255
11256 2004-03-13  Roger Sayle  <roger@eyesopen.com>
11257
11258         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
11259         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
11260         make_range, build_range_check, fold_range_test, unextend,
11261         constant_boolean_node, fold_binary_op_with_conditional_arg,
11262         fold_truthop, fold_mathfn_compare, fold_inf_compare,
11263         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
11264         with lang_hooks.foo ().
11265
11266 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
11267
11268         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
11269
11270 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
11271
11272         * doc/install.texi: Note status of -fnew-ra.
11273
11274 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11275
11276         PR middle-end/14470
11277         * expr.c (store_expr): Call emit_queue before generating the move
11278         from the temporary to the original target.  Protect the temporary
11279         from emit_queue.
11280
11281 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
11282
11283         PR target/14533
11284         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
11285         other than UNSPEC_GOTOFF.
11286
11287 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
11288
11289         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
11290         to arm_legitimate_index_p.  Update all callers with SET as default
11291         value.
11292         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
11293         range if OUTER is a sign-extend operation on QImode.  Correctly
11294         reject shift operations on sign-extended QImode addresses.
11295         (bad_signed_byte_operand): Delete.
11296         (arm_extendqisi_mem_op): New function.
11297         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
11298         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
11299         constraints.
11300         (CONSTRAINT_LEN): New.
11301         (EXTRA_CONSTRAINT): Delete.  Replace with...
11302         (EXTRA_CONSTRAINT_STR): ... this.
11303         (PREDICATE_CODES): Remove bad_signed_byte_operand.
11304         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
11305         is now always default.
11306         (define_splits for bad sign-extend loads): Delete.
11307         (arm_extendqisi, arm_extendqisi_v5): Likewise.
11308         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
11309         Rework 'U' constraint to 'Uv'.
11310         * arm-protos.h: Remove bad_signed_byte_operand.  Add
11311         arm_extendqisi_mem_op.
11312         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
11313         Add Uq constraint.
11314
11315 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
11316
11317         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
11318         with targetm version.
11319
11320         PR target/14567
11321         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
11322         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
11323         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
11324         Update all users of RS6000_ARG_SIZE.
11325         (function_arg_advance): Count fregno using mode size.
11326         (function_arg): Handle long double split over regs and memory.
11327         (function_arg_partial_nregs): Likewise.
11328         (rs6000_va_arg): Repackage complex args.
11329
11330 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
11331
11332         PR target/14047
11333         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
11334         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
11335         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
11336
11337 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
11338
11339         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
11340         prototype.
11341         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
11342         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
11343
11344 2004-03-12  Andrew Pinski  <apinski@apple.com>
11345
11346         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11347         Use ret instead of result. Use addr instead of base.
11348
11349 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
11350
11351         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
11352         fixes required by libstdc++ and update installation instructions
11353         for libstdc++.a.
11354
11355 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
11356
11357         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
11358         leading '@' on fastcall symbols before stripping suffix.
11359
11360 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11361
11362         * combine.c (unmentioned_reg_p): New function to check whether an
11363         expression is a "specialization" of another, i.e. that there are
11364         no registers or memory references mentioned in the first that don't
11365         appear in the second.
11366         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
11367         (combine_instructions): Also try combining instructions using the
11368         REG_EQUAL note from a preceding log-linked instruction.
11369
11370 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11371
11372         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
11373
11374 2004-03-12  Matt Austern  <austern@apple.com>
11375
11376         * target.h (struct gcc_target): New target hook, unwind_label.
11377         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
11378         * output.h (default_emit_unwind_label): New function.
11379         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
11380         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
11381         (TARGET_SUPPORTS_HIDDEN): New target macro.
11382         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
11383         that corresponds to this FDE.
11384         (FRAME_BEGIN_LABEL): Allow target to override default label.
11385         (output_call_frame_info): If FDEs are linknonce, then use extra
11386         indirection for FDE encoding, output a label for each FDE, and
11387         output an empty label for each function without an FDE.
11388         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
11389         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
11390         decls with DECL_ONE_ONLY set, if that macro is defined.
11391         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
11392         for a SUPPORTS_ONE_ONLY target.
11393         * config/darwin-protos.h (darwin_unique_section): Declare.
11394         (darwin_asm_named_section): Likewise.
11395         (darwin_section_type_flags): Likewise.
11396         (darwin_non_lazy_pcrel): Likewise.
11397         (darwin_emit_unwind_label): Likewise.
11398         (darwin_make_decl_one_only): Likewise.
11399         * config/darwin.c (machopic_finish): Get rid of tweak that
11400         eliminate stubs for symbols that are defined.
11401         (darwin_encode_section_info): Don't treat weak functions as defined.
11402         (darwin_make_decl_one_only): Define.
11403         (darwin_asm_named_section): Likewise.
11404         (darwin_section_type_flags): Likewise.
11405         (darwin_unique_section): Likewise.
11406         (darwin_emit_unwind_label): Likewise.
11407         (darwin_non_lazy_pcrel): Likewise.
11408         (darwin_asm_output_dwarf_delta): Difference between two labels is
11409         local only if both labels are local.
11410         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
11411         (ASM_MAKE_LABEL_LINKONCE): Likewise.
11412         (TARGET_SUPPORTS_HIDDEN): Likewise.
11413         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
11414         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
11415         (FRAME_BEGIN_LABEL): Likewise.
11416         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
11417         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11418         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
11419         (TARGET_ASM_UNIQUE_SECTION): Define.
11420         (EH_FRAME_SECTION_NAME): Define.
11421         (EH_FRAME_SECTION_ATTR): Likewise.
11422         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
11423         (TARGET_ASM_NAMED_SECTION): Likewise.
11424         (TARGET_SECTION_TYPE_FLAGS): Likewise.
11425         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
11426         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
11427         TARGET_ASM_EMIT_UNWIND_LABEL.
11428
11429 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11430
11431         * builtins.c (expand_builtin_mathfn): Add pow10* to the
11432         existing exp10* case.
11433         (expand_builtin): Likewise.
11434
11435 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11436
11437         * doc/tm.texi (registers) <Values in Registers>: Add
11438         entry for REGMODE_NATURAL_SIZE.
11439
11440 2004-03-12  Richard Henderson  <rth@redhat.com>
11441
11442         PR target/14547
11443         * target.h (struct gcc_target): Move calls substructure before
11444         booleans.  Add split_complex_arg.
11445         * function.c (assign_parms, split_complex_args): Use it.
11446         * calls.c (expand_call): Likewise.
11447         (split_complex_values): Likewise.  Check for splittable types
11448         before allocating memory.
11449         (split_complex_types): Likewise.
11450         * system.h (SPLIT_COMPLEX_ARGS): Poison.
11451         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
11452         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
11453         * config/alpha/alpha.c (alpha_split_complex_arg): New.
11454         (TARGET_SPLIT_COMPLEX_ARG): New.
11455         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
11456         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
11457         (rs6000_override_options): Zap it for non-AIX.
11458         (rs6000_function_value): Use targetm.calls.split_complex_arg.
11459         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
11460         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
11461         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
11462         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
11463         SPLIT_COMPLEX_ARGS entry.
11464
11465 2004-03-11  Richard Henderson  <rth@redhat.com>
11466
11467         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
11468         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
11469         (alpha_emit_xfloating_arith): Update to match.
11470         (alpha_emit_xfloating_compare): Likewise.
11471         (alpha_emit_xfloating_cvt): Likewise.
11472         (alpha_emit_xfloating_libcall): Take already built symbol,
11473         mark call const.
11474         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
11475         op1 in a register.
11476
11477 2004-03-11  Richard Henderson  <rth@redhat.com>
11478
11479         PR target/14539
11480         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
11481
11482         * simplify-rtx.c (simplify_relational_operation): Fix typo.
11483
11484 2004-03-11  Richard Henderson  <rth@redhat.com>
11485
11486         PR middle-end/14477
11487         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
11488
11489 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11490
11491         PR target/14262
11492         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
11493         defined, pass small BLKmode values in registers in the low-order part.
11494
11495 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11496
11497         * combine.c (if_then_else_cond): Check for NULL return value of
11498         simplify_gen_subreg.
11499
11500 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11501
11502         PR target/14496
11503         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
11504         TARGET_SINGLE_FLOAT.
11505
11506 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
11507
11508         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
11509         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
11510         * config/ia64/ia64.c (ia64_init_libfuncs): New.
11511         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
11512
11513 2004-03-11  Roger Sayle  <roger@eyesopen.com>
11514
11515         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
11516         -((int)X>>C) where C is an integer constant one bit less than the
11517         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
11518         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
11519
11520         * simplify-rtx.c (simplify_unary_operation): Also implement the
11521         above transformations at the RTL level.
11522
11523 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
11524
11525         * real.c (encode_ibm_extended): Do round low word.
11526
11527 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
11528
11529         * config/arm/arm.md (is_xscale): Comment this attribute and move
11530         it a bit further up in the file, closer to related attributes.
11531
11532 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
11533
11534         * config/host-solaris.c (sol_gt_pch_use_address): Add
11535         missing terminating marker to comment.
11536
11537 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11538
11539         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
11540         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
11541         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
11542         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
11543         move_operand as source predicate in all cases.
11544         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
11545         Test reg_or_0_operand.  Use move_operand as source predicate.
11546         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
11547         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
11548         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
11549         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
11550         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
11551         Use move_operand as source predicate.  Remove 'K' constraint.
11552         (*movqi_internal): Likewise movqi_internal.
11553         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
11554         reg_or_0_operand.  Use move_operand as source predicate.
11555         (*movsf_softfloat): Likewise movsf_internal2.
11556         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
11557         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
11558         (*movdf_softfloat): Likewise movdf_internal2.
11559         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
11560         for DImode if !TARGET_64BIT.
11561         (mips_legitimize_move): Simplify accordingly.
11562
11563 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11564
11565         PR/14362
11566         * var-tracking.c (struct variable_def): Added field refcount.
11567         (variable_htab_free): Decrease the refcount and delete variable
11568         only if there are no more references.
11569         (unshare_variable): New function.
11570         (vars_copy_1): Increase refcount instead of copying the variable.
11571         (variable_union): Share the variables where possible, unshare
11572         the variables if needed.
11573         (variable_different_p): Return false if var1 and var2 are
11574         the same structure.
11575         (variable_was_changed): Init the refcount of new variable.
11576         (set_frame_base_location): Unshare variable if needed.
11577         (set_variable_part): Init the refcount of new variable.
11578         Unshare the variables if needed.
11579         (delete_variable_part): Unshare the variables if needed.
11580         (emit_notes_for_differences_1): Init the refcount of new variable.
11581         (vt_add_function_parameters): Do not add function parameters to
11582         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
11583         (vt_initialize): Do not add frame_base_decl to IN set of
11584         ENTRY_BLOCK_PTR because it is unused anyway.
11585
11586 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11587
11588         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
11589         (vars_copy): Likewise.
11590         (variable_union): Likewise.
11591         (set_variable_part): Likewise.
11592         (delete_variable_part): Likewise.
11593
11594 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
11595
11596         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
11597         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
11598         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
11599         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
11600         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
11601         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
11602         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
11603         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
11604         config/stormy16/stormy16.c: Fix comment typos and formatting.
11605
11606 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
11607
11608         * configure: Regenerate, since I forgot to while committing Paolo's
11609         changes.
11610
11611 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
11612
11613         PR ada/14131
11614         Move language detection to the top level.
11615         * configure.ac: Remove code to detect languages,
11616         it now lives exclusively in the top level.
11617         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
11618         top level, renamed to ACX_PROG_GNAT.
11619
11620 2004-03-10  Richard Henderson  <rth@redhat.com>
11621
11622         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
11623         extra arguments.
11624         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
11625         and host_xmake_file fragments.
11626         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
11627         (gt_pch_restore): Similarly for gt_pch_use_address.
11628         (default_gt_pch_get_address): New.
11629         (mmap_gt_pch_get_address): Split out of gt_pch_save.
11630         (default_gt_pch_use_address): Split out of gt_pch_restore.
11631         (mmap_gt_pch_use_address): Likewise.
11632         * hooks.c (hook_voidp_size_t_null): Remove.
11633         (hook_bool_voidp_size_t_false): Remove.
11634         * hooks.h: Likewise.
11635         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
11636         default_ or mmap_ definitions.
11637         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
11638         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
11639         and gt_pch_use_address.
11640         * config/host-linux.c, config/host-solaris.c: New files.
11641         * config/x-linux, config/x-solaris: New files.
11642         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
11643         Update for changed definition.
11644         (darwin_rs6000_gt_pch_use_address): Likewise.
11645         * doc/hostconfig.texi: Update docs.
11646
11647 2004-03-10  Richard Henderson  <rth@redhat.com>
11648
11649         PR c/14517
11650         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
11651         except for pedantic c90 mode.
11652
11653 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
11654
11655         * configure.ac: Bump AC_PREREQ to 2.59.
11656         * configure: Regenerate.
11657
11658 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
11659
11660         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
11661         (exp10_optab, exp2_optab): Define corresponding macros.
11662         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
11663         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
11664         using exp10?f2 and exp2?f2 patterns.
11665         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
11666         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
11667         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
11668         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11669
11670         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
11671         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
11672         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
11673
11674 2004-03-10  Anthony Green  <green@redhat.com>
11675
11676         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
11677
11678 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11679
11680         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
11681         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
11682         __LONGDOUBLE128.
11683         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
11684         TARGET_OS_AIX_CPP_BUILTINS.
11685         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
11686         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
11687         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
11688         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
11689         previous change.
11690
11691 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11692
11693         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
11694
11695 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11696
11697         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11698         __LONGDOUBLE128 on AIX.
11699
11700 2004-03-10  Andrew Haley  <aph@redhat.com>
11701
11702         PR optimization/14381
11703         * function.c (expand_function_end): Emit a blockage insn before
11704         the epilogue when -fnon-call-exceptions is used.
11705
11706         * except.c (expand_start_all_catch): Make comment more accurate.
11707
11708 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11709
11710         PR target/14480
11711         * config/rs6000/t-rtems: Add missing file on branch.
11712
11713 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
11714
11715         * dbxout.c (dbxout_symbol_location): Do not output references
11716         to optimized-out constant pool symbols.
11717
11718 2004-03-10  Andreas Schwab  <schwab@suse.de>
11719
11720         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
11721         twon34_r.
11722
11723 2004-03-09  James E Wilson  <wilson@specifixinc.com>
11724
11725         * alias.c (alias_sets_might_conflict_p): New.
11726         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
11727         * common.opt (Wstrict-aliasing=): New.
11728         * flags.h (warn_strict_aliasing): Change type to int.
11729         * opts.c (warn_strict_aliasing): Change type to int.
11730         (common_handle_option): Handle OPT_Wstrict_aliasing_.
11731         * tree.h (alias_sets_might_conflict_p): Declare it.
11732         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
11733
11734 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
11735
11736         PR bootstrap/12371
11737         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
11738         (CALL_USED_REGISTERS): Likewise.
11739         (REG_CLASS_CONTENTS): Likewise.
11740         (REG_ALLOC_ORDER): New.
11741         (REGNO_REG_CLASS): Use regno_reg_class.
11742         * config/m68k/m68k.c: Add regno_reg_class array.
11743
11744 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
11745
11746         * config/ia64/ia64.md (divsi3): Fix algorithm.
11747           (udivsi3): Ditto.
11748           (setf_exp_xf): Remove '*' from name.
11749         * testsuite/gcc.dg/20040309-1.c: New test.
11750
11751 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
11752
11753         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
11754         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
11755         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
11756         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
11757         (sparc_aout_select_rtx_section): Don't check
11758         SUNOS4_SHARED_LIBRARIES.
11759         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
11760
11761 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
11762
11763         PR other/14474
11764         * doc/md.texi (Pattern Ordering, Dependent Patterns)
11765         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
11766         INTERNALS".
11767
11768 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11769
11770         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
11771         (LIBGCC_SPEC): Update to match.
11772
11773 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11774
11775         * c-decl.c (last_function_parms, last_function_parm_tags)
11776         (last_function_parm_others, current_function_parms)
11777         (current_function_parm_tags, current_function_parm_others):
11778         Delete.
11779         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
11780         New macros.
11781         (grokdeclarator): For function definitions, save the arg-info
11782         block from the declarator in DECL_ARGUMENTS.
11783         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
11784         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
11785         contains only PARM_DECLs.  Improve diagnostics.
11786         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
11787         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
11788         (store_parm_decls_newstyle): Take the function to operate on,
11789         and an arg-info block, as arguments; don't get anything from
11790         current_function_* globals.
11791         (store_parm_decls_oldstyle): Likewise.
11792         (store_parm_decls): Pass fndecl and its arg-info block down to
11793         store_parm_decls_newstyle/oldstyle.  Send functions with empty
11794         argument lists through store_parm_decls_newstyle to reduce
11795         overhead.
11796         (pushdecl): Comment on the problems with the call to copy_node.
11797         Clear DECL_ARGUMENTS of the old node after copying it, if it
11798         is an arg-info block instead of a chain of decls.
11799         (start_function): Do not manipulate current_function_parm* or
11800         last_function_parm*.
11801
11802 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11803             Andrew Pinski  <pinskia@physics.uc.edu>
11804
11805         * ifcvt.c (noce_try_sign_mask): New function to transform
11806         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
11807         (noce_process_if_block): Call noce_try_sign_mask.
11808
11809 2004-03-09  Andrew Pinski  <apinski@apple.com>
11810
11811         * c-typeck.c (tagged_types_tu_compatible_p):
11812         Fix typo.
11813
11814 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11815
11816         * simplify-rtx.c (simplify_const_relational_operation): New function
11817         renamed from simplify_relational_operation.
11818         (simplify_relational_operation): Change prototype to accept an
11819         additional mode argument.  Call simplify_const_relational_operation.
11820         (simplify_gen_relational): Update simplify_relational_operation call.
11821         (simplify_ternary_operation): Update simplify_relational_operation
11822         subroutine call to use simplify_const_relational_operation instead.
11823
11824         * rtl.h (simplify_const_relational_operation): Prototype here.
11825         (simplify_relational_operation): Add addtional mode argument.
11826
11827         * combine.c (combine_simplify_rtx): Update calls to
11828         simplify_relational_operation.
11829         (simplify_set): Likewise.
11830         (gen_binary): Likewise.
11831         * cse.c (fold_rtx): Likewise.
11832         * dojump.c (compare_from_rtx): Likewise.
11833         (do_compare_rtx_and_jump): Likewise.
11834         * integrate.c (subst_constants): Likewise.
11835         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
11836
11837 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11838
11839         * config/m32r/m32r.md: Remove all define_peephole's.
11840
11841 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
11842
11843         * config/rs6000/rs6000.md: Remove trailing whitespace.
11844
11845 2004-03-08  Eric Christopher  <echristo@redhat.com>
11846
11847         * Makefile.in (site.exp): Add libiconv variable definition.
11848
11849 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
11850
11851         * configure: Regenerate for config/accross.m4 correction.
11852
11853 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11854
11855         PR target/14480
11856         * config/rs6000/t-rtems: Add missing file on branch.
11857
11858 2004-03-08  Roger Sayle  <roger@eyesopen.com>
11859
11860         PR middle-end/14289
11861         * c-typeck.c (c_mark_addressable): A register variable should
11862         be considered global if its not automatic, i.e. TREE_PUBLIC,
11863         TREE_STATIC or DECL_EXTERNAL.
11864         * function.c (put_var_into_stack): Call abort when placing a
11865         hard register into the stack, if x_parm_reg_stack_loc is NULL.
11866
11867 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
11868
11869         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
11870         ("*extendqisi2_short_displ"): Likewise.
11871
11872 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11873
11874         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
11875         (comp_operator): Likewise.
11876         * config/pdp11/pdp11-protos.h: Remove corresponding
11877         prototypes.
11878
11879 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
11880
11881         * expr.c (highest_pow2_factor_for_type): Rename into
11882         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
11883         TYPE_ALIGN when the target is a COMPONENT_REF.
11884         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
11885
11886 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11887
11888         * config/rs6000/rs6000.c: Formatting fix.
11889         (legitimate_offset_address_p): Correct offset range check.
11890
11891         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
11892         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
11893         and MASK_STRING.
11894
11895 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11896
11897         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
11898         for little endian.
11899         ("ashrdi3_no_power"): Disable for little endian.
11900         (ashrdi3): Same.
11901
11902 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11903
11904         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
11905         builtins.
11906
11907 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
11908
11909         PR target/14471
11910         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
11911         case, checking for -no-mul-bug-abort option.
11912         * configure, config.in: Regenerate.
11913         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
11914         and -mno-mul-bug-workaround.
11915         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
11916         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
11917         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
11918         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
11919         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
11920         sure mulu.d is not last on cache-line.
11921         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
11922         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
11923         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
11924         (TARGET_SWITCHES): New options -mmul-bug-workaround and
11925         -mno-mul-bug-workaround.
11926         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
11927         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
11928         * config/cris/cris.c (cris_operand_extend_operator): Clarify
11929         relation to MULT in head comment.
11930         (cris_op_str): Abort for MULT.
11931         (cris_print_operand) <case '!'>: New case.
11932
11933 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11934
11935         PR debug/11983
11936         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
11937         dw_val_class_vec.  Replace use throughout file.
11938         (dw_float_const): Delete.
11939         (dw_vec_const): New.
11940         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
11941         throughout file.
11942         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
11943         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
11944         (size_of_die): Adjust dw_val_class_vec sizing.
11945         (output_die): Output dw_val_class_vec.
11946         (insert_int, extract_int, insert_float): New functions.
11947         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
11948         Handle CONST_VECTOR.
11949         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
11950
11951 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11952
11953         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
11954         AltiVec abi cannot co-exist.
11955
11956         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
11957
11958 2004-03-07  Jan Hubicka  <jh@suse.cz>
11959
11960         * except.c (emit_to_new_bb_before):  Break fallthru edges.
11961
11962 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
11963
11964         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
11965         ("*lshrsi3"): Also accept an immediate for 68HC12.
11966         ("*ashrsi3_const"): Likewise.
11967         ("*ashrsi3"): Likewise.
11968         ("*ashlsi3_const"): Likewise.
11969         ("*ashlsi3"): Likewise.
11970         ("cmphi_1_hc12"): Compare two hard register by pushing them and
11971         comparing with a pop; don't use a split for that.
11972         ("cmphi split"): Disable compare split for 68HC12.
11973
11974         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
11975         the status operands if they have side effects.
11976
11977 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
11978
11979         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
11980         definition.
11981         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
11982         config/h8300/h8300.h, config/ia64/ia64.h,
11983         config/mcore/mcore.h, config/mmix/mmix.h,
11984         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11985         config/stormy16/stormy16.h, config/v850/v850.h,
11986         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
11987         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
11988         definition.
11989
11990 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11991
11992         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
11993         <XOR_EXPR>: Fold x ^ x as zero.
11994         <AND_EXPR>: Fold x & x as x.
11995
11996 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11997
11998         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
11999         "foo++ == const" into "++foo == const+incr".
12000
12001 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
12002
12003         * config/mips/mips.c (mips_in_small_data_p): Return false if
12004         TARGET_ABICALLS.
12005
12006 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
12007
12008         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
12009         the stack register.
12010         (expand_prologue): Don't make an interrupt or a trap handler a far
12011         symbol.
12012         (m68hc11_initial_elimination_offset): Likewise.
12013
12014 2004-03-06  Richard Henderson  <rth@redhat.com>
12015
12016         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
12017
12018 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12019
12020         * config/ns32k/ns32k-protos.h: Add a prototype for
12021         ns32k_notice_update_cc.
12022         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
12023         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
12024         ns32k_notice_update_cc.
12025
12026 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12027
12028         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
12029         "*load_multiple_si"): Allow only if reload_completed.
12030         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
12031         Likewise.
12032
12033 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12034
12035         * config/vax/vax-protos.h: Add a prototype for
12036         vax_notice_update_cc.
12037         * config/vax/vax.c (vax_notice_update_cc): New.
12038         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
12039         vax_notice_update_cc.
12040
12041 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
12042
12043         * collect2.c (main): Only export initfunc and finifunc if
12044         LD_INIT_SWITCH not defined.
12045         (scan_prog_file): Only export constructors and destructors if
12046         LD_INIT_SWITCH not defined.  Only export symbols not found in
12047         shared objects.
12048
12049 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12050
12051         * pa.md (icacheflush): Reorder operands to make match_scratch operand
12052         last.
12053         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
12054         from calls to gen_icacheflush.
12055
12056 2004-03-06  Richard Henderson  <rth@redhat.com>
12057
12058         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
12059         (TARGET_LONG_DOUBLE_128): New.
12060         (TARGET_SWITCHES): Add long-double-{128,64}.
12061         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
12062         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
12063         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
12064         (WIDEST_HARDWARE_FP_SIZE): New.
12065         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
12066         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
12067         if TARGET_VAX_FLOAT.
12068         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
12069         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
12070
12071 2004-03-06  Richard Henderson  <rth@redhat.com>
12072
12073         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
12074         botched rtx class conversion.
12075
12076 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12077
12078         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
12079         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
12080
12081         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
12082         macros.
12083         * fold-const.c (fold_mathfn_compare, fold): Likewise.
12084
12085 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12086
12087         PR target/14343
12088         * config/i386/i386.md (movv2di_internal): Conditionalize on
12089         TARGET_SSE, not TARGET_SSE2.
12090
12091 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
12092
12093         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
12094         duplicated line.
12095
12096 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12097
12098         * builtins.c: Consistently use logN not log* in comments.
12099
12100 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12101
12102         * rtl.h (mem_expr_equal_p): Function prototype added.
12103         * cfgcleanup.c (merge_memattrs): New function.
12104         (flow_find_cross_jump): Call merge_memattrs for matching insns.
12105         * emit-rtl.c (mem_expr_equal_p): New function.
12106
12107 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
12108
12109         * objc/objc-act.c (synth_module_prologue): Const-qualify
12110         objc_selector type if using the GNU runtime; fix generated
12111         signatures for objc_msg_lookup and objc_msg_lookup_super
12112         to match what GNU ObjC headers provide; reformat and clean up.
12113         (synth_self_and_ucmd_args): Use previously constructed (and
12114         hence possibly const-qualified) objc_selector type.
12115
12116 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12117
12118         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
12119
12120 2004-03-05  Jason Merrill  <jason@redhat.com>
12121
12122         * tree.h (TYPE_HASH): Use TYPE_UID.
12123         (TREE_HASH): New macro with old definition of TYPE_HASH.
12124         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
12125         (build_array_type, build_function_type): Likewise.
12126         (build_method_type_directly): Likewise.
12127         (build_offset_type, build_complex_type): Likewise.
12128         (type_hash_list, attribute_hash_list): Likewise. Now static.
12129         * except.c: s/TYPE_HASH/TREE_HASH/.
12130
12131 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
12132
12133         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
12134         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
12135         __va_ndx by 2 words when referencing an argument on the stack.
12136         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
12137         words when an arg on the stack is first seen.
12138
12139 2004-03-05  Paul Brook  <paul@codesourcery.com>
12140
12141         * arm.h (ARM_FLAG_VFP): Remove.
12142         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
12143         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
12144
12145 2004-03-05  Paul Brook  <paul@codesourcery.com>
12146
12147         * function.c (assign_parms): Include pretend alignment offset.
12148
12149 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12150
12151         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
12152         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
12153
12154 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
12155
12156         * configure.ac: When passing --enable-languages to subdir
12157         configure when host != build, make sure we don't pass an empty
12158         value.
12159         * configure: Regenerate.
12160
12161 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
12162
12163         PR 13577
12164         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
12165         options.
12166
12167 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12168
12169         * simplify-rtx.c (simplify_relational_operation): If
12170         flag_wrapv is set, do not move terms between the two
12171         side of a relational operator.
12172
12173 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12174
12175         * rtlanal.c: Include target.h and output.h
12176         (rtx_cost, address_cost, default_address_cost): Move from...
12177         * cse.c (rtx_cost, address_cost, default_address_cost):
12178         ... this file.
12179         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
12180         * Makefile.in: Adjust dependencies.
12181
12182 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
12183
12184         * cse.c (cse_end_of_basic_block): Make static.
12185         * local-alloc.c (function_invariant_p): Move to
12186         reload1.c.
12187         * loop.c (libcall_other_reg, record_excess_regs):
12188         Make static.
12189         * reload1.c (function_invariant_p): Moved here
12190         from local-alloc.c, made static.
12191         * rtl.h (cse_end_of_basic_block, function_invariant_p,
12192         libcall_other_reg, record_excess_regs): Remove
12193         declarations.
12194
12195 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12196
12197         * config/m32r/m32r.c (signed_comparison_operator): Add a
12198         missing parenthesis.
12199
12200 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
12201
12202         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
12203         going to call mmap again.  Read the file into the right place.
12204         Give a fatal error if we have to relocate.
12205
12206 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
12207
12208         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
12209         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
12210
12211 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
12212
12213         PR other/14354
12214         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
12215         round the same.  When rounding, clear bits that would cause a
12216         second rounding in pack_d.
12217         (_fpmul_parts): Ditto.  Remove #if 0:d code.
12218
12219 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
12220
12221         PR c++/14425, c++/14426
12222         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
12223         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
12224         Change C++ definitions to accept a 'const int' argument;
12225         the prototypes already do.
12226         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
12227         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
12228         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
12229         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
12230         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
12231         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
12232         end in ..._int; change them to accept an int instead of a char
12233         as the last parameter.
12234
12235 2004-03-04  Phil Edwards  <phil@codesourcery.com>
12236
12237         * genmultilib:  Change '=' to '-' when translating option names
12238         to directory names.
12239
12240 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12241
12242         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
12243         stack slot for temp used for result of BLKmode but in integral mode.
12244
12245 2004-03-04  Jan Hubicka  <jh@suse.cz>
12246
12247         * reload.c (find_reloads): Reorganize if seqeunce to switch.
12248
12249         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
12250         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
12251
12252 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
12253
12254         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
12255         * testsuite/gcc.dg/20040303-1.c: New test.
12256
12257 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12258
12259         * ppro.md: Rewrite as a DFA pipeline description.
12260         * i386.md: Remove all uses of the ppro_uops attribute.
12261         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
12262         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
12263         ix86_sched_reorder, ix86_variable_issue,
12264         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
12265         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
12266         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
12267         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
12268         * athlon.md (athlon_ssecmp_load): Fix comment
12269
12270 2004-03-04  Stuart Hastings  <stuart@apple.com>
12271
12272         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
12273
12274 2004-03-04  Stuart Hastings  <stuart@apple.com>
12275
12276         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
12277         686, tell Darwin assembler to allow prefetch insns, non-empty def
12278         of SUBTARGET_OPTION_TRANSLATE_TABLE.
12279
12280 2004-03-04  DJ Delorie  <dj@redhat.com>
12281
12282         PR optimization/14282
12283         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
12284         between a call and the assignment of its return value.
12285
12286 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12287
12288         * config/h8300/h8300.c: Put a comment for every function.
12289
12290 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12291
12292         * config/h8300/h8300.md: Add comments about peephole2's.
12293
12294 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12295
12296         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
12297
12298 2004-03-04  Jan Hubicka  <jh@suse.cz>
12299
12300         * cfgcleanup.c (thread_jump): Update call of cselib_init.
12301         * cselib.c (cselib_record_memory): New static variable.
12302         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
12303         Give up on memories when asked for.
12304         (cselib_init): Accept new argument.
12305         * cselib.h (cselib_init): Update prototype.
12306         * gcse.c (local_cprop_pass): Update call of cselib_init.
12307         * loop.c (load_mems): Update call of cselib_init.
12308         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
12309         * sched-deps.c (sched_analyze): Update call of cselib_init.
12310
12311 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12312             GP <gp@qnx.com>
12313
12314         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
12315         when compiling PIC.
12316
12317 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
12318
12319         PR/14362
12320         * var-tracking.c (track_expr_p): Do not track variables which
12321         should be ignored for debugging purposes.
12322
12323 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12324
12325         * real.c (encode_ibm_extended): Don't bother rounding low double.
12326         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
12327         when fmt->pnan < fmt->p.
12328
12329 2004-03-04  Eric Christopher  <echristo@redhat.com>
12330
12331         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
12332         only range of valid arg registers and fixed_regs.
12333
12334 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12335
12336         PR target/14406
12337         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
12338         (abstf2, abstf2_internal): New define_expand.
12339
12340 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12341
12342         PR optimization/14235
12343         * expr.c (convert_move): Copy the source to a new pseudo
12344         when converting from a sub-word source to a larger-than-word
12345         register which conflicts with the source.
12346
12347 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
12348
12349         PR 13728
12350         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
12351         parameters with the same name, unless one is a forward decl.
12352         Do not issue a redundant-redeclaration warning for forward
12353         decls of parameters.
12354
12355 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12356
12357         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
12358         configuration.
12359
12360 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
12361
12362         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
12363
12364 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12365
12366         * target-def.h (TARGET_OPTF): Delete.
12367         * c-opts.c (TARGET_OPTF): Define.
12368
12369 2004-03-04  Jan Hubicka  <jh@suse.cz>
12370
12371         * cselib.c (cselib_finish): Fix another miss-application of my previous
12372         patch.
12373
12374 2004-03-03  Mike Stump  <mrs@apple.com>
12375
12376         Add framework support for darwin.
12377
12378         * c-incpath.c: Include target.h and machmode.h.
12379         (add_path): Use a consistent style for cpp_dir.  Initialize
12380         p->construct to 0.
12381         (add_cpp_dir_path): New.
12382         (register_include_chains): Add use of extra_includes callback.
12383         (hook_void_int): Add.
12384         (target_c_incpath): Add.
12385         * c-incpath.h (add_cpp_dir_path): New.
12386         (target_c_incpath_s): Add.
12387         (target_c_incpath): Add.
12388         (C_INCPATH_INIT): Add.
12389         * c-opts.c (c_common_missing_argument,
12390         c_common_handle_option): Add -F argument processing.
12391         * c.opt: Add -F argument processing.
12392         * gcc.c (trad_capable_cpp): Add -F argument processing.
12393         * cppfiles.c (find_file_in_dir): Update to use construct
12394         callback.
12395         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
12396         cpp_get_prev): New.
12397         (_cpp_find_file): Use search_path_exhausted.
12398         (make_cpp_dir): Initialize construct to 0.
12399         * cpplib.h (missing_header_cb
12400         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
12401         (cpp_callbacks): Add missing_header
12402         (cpp_dir): Add construct.
12403         * target-def.h: (TARGET_OPTF): New.
12404         * hooks.c (hook_void_int, hook_void_charptr): Add.
12405         * hooks.h (hook_void_int, hook_void_charptr): Add.
12406         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
12407         $(MACHMODE_H) dependencies.
12408         * doc/invoke.texi (Darwin Options): Document -F.
12409         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
12410         (TARGET_OPTF): Add.
12411         * fix-header.c (target_c_incpath): Add.
12412
12413         * config/darwin-c.c: Add c-incpath.h include.
12414         (using_frameworks, find_subframework_file,
12415         find_subframework_header, add_system_framework_path,
12416         frameworks_in_use, num_frameworks, max_frameworks,
12417         add_framework, find_framework, struct framework_header,
12418         framework_header_dirs, framework_construct_pathname,
12419         find_subframework_file, add_system_framework_path,
12420         add_framework_path, framework_defaults,
12421         darwin_register_frameworks, find_subframework_header): Add.
12422         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
12423         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
12424         (CPP_SPEC): Add __APPLE_CC__ support.
12425         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
12426
12427 2004-03-04  Jan Hubicka  <jh@suse.cz>
12428
12429         * cselib.c (cselib_finish): Fix miss-application of my previous
12430         patch.
12431
12432 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12433
12434         * hooks.c (hook_tree_tree_identity): New.
12435         * hooks.h: Add a prototype for hook_tree_tree_identity.
12436         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
12437         instead of MD_ASM_CLOBBERS.
12438         * system.h (MD_ASM_CLOBBERS): Poison.
12439         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
12440         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
12441         * target.h (gcc_target): Add md_asm_clobbers.
12442         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
12443         (ix86_md_asm_clobbers): New.
12444         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
12445         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
12446         TARGET_MD_ASM_CLOBBERS.
12447
12448 2004-03-03  Stuart Hastings  <stuart@apple.com>
12449
12450         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
12451
12452 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12453
12454         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
12455
12456         * config/sparc/sparc.h (ASM_FLOAT): Delete.
12457         (ASM_DOUBLE): Likewise.
12458         (ASM_LONGDOUBLE): Likewise.
12459         * config/sparc/pbd.h (ASM_INT_OP): Delete.
12460
12461 2004-03-03  Richard Henderson  <rth@redhat.com>
12462
12463         PR opt/13862
12464         * cselib.c (cselib_record_sets): Don't record multiple sets in
12465         asm insns.
12466
12467 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
12468
12469         * common.opt: Add description of the new -fgcse-after-reload flag.
12470
12471         * flags.h (flag_gcse_after_reload): Declaration of global variable.
12472
12473         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
12474         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
12475         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
12476         get_bb_avail_insn, hash_scan_set_after_reload,
12477         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
12478         gcse_after_reload, get_bb_avail_insn): New functions to implement
12479         gcse-after-reload.
12480         (gcse_after_reload_main): New function, the main entry point to
12481         gcse-after-reload.
12482
12483         * rtl.h (gcse_after_reload_main): Declaration of the new function.
12484
12485         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
12486
12487         * toplev.c (flag_gcse_after_reload): Initialization.
12488
12489         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
12490
12491         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12492         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
12493         the gcse after reload optimization.
12494
12495         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12496         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
12497         parameters.
12498
12499         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
12500
12501 2004-03-03  Nicolas Pitre <nico@cam.org>
12502
12503         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
12504         small negative values.
12505
12506 2004-03-03  Jan Hubicka  <jh@suse.cz>
12507
12508         * cselib.c (hash_table):  Remove GTY marker.
12509         (reg_values): Turn into array.
12510         (used_regs): Likewise.
12511         (n_used_regs): New static variable.
12512         (reg_values_old): Kill.
12513         (clear_table): Update uses of arrays.
12514         (cselib_lookup): Likewise.
12515         (cselib_record_set): Likewise.
12516         (cselib_init): Likewise.
12517         (cselib_finish): Likewise.
12518         (cselib_udpate_varray_sizes): Kill.
12519         * cselib.h (cselib_update_varray_sizes): Kill.
12520
12521 2004-03-03  Paul Brook  <paul@codesourcery.com>
12522
12523         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
12524
12525 2004-03-03  Jan Hubicka  <jh@suse.cz>
12526
12527         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
12528         Rename from ...; make statistics transparent.
12529         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
12530         (loc_descriptor): New structure.
12531         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
12532         add_statistics):
12533         New static function.
12534         (ggc_record_overhead, dump_statistics): New global function.
12535         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12536         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
12537         from ...; accept locations
12538         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12539         ggc_realloc, ggc_alloc_typed):  ... this one.
12540         from ...; accept locations
12541         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
12542         ggc_alloc_stat): Rename from ... ; pass locations
12543         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
12544         ... this one.
12545         (ggc_alloc_stat): Record overehead.
12546         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12547         ggc_realloc, ggc_alloc_typed):  Turn to macros
12548         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12549         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
12550         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
12551         * langhooks.h (lhd_make_node): Declare.
12552         (LANG_HOOKS_MAKE_TYPE): Default to new function,
12553         * langhooks.c (lhd_make_node): New.
12554         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
12555         locations.
12556         (rtx_alloc, swallow_copy_rtx): ... this one.
12557         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
12558         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
12559         * toplpev.c (finalize): Dump stats.
12560         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
12561         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12562         Rename from ... ; pass locators.
12563         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12564         build?,  build_decl): Declare.
12565         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
12566         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12567         Declare.
12568         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12569         build?,  build_decl): New macros.
12570         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
12571         * statistics.h: New file.
12572
12573 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12574             Richard Sandiford  <rsandifo@redhat.com>
12575
12576         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12577         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
12578         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
12579         * config/mips/mips.c (mips_output_division): Fill the branch delay
12580         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
12581         TARGET_FIX_R4400.
12582         (mips_output_division): Adjust accordingly.
12583         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
12584         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
12585
12586 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
12587
12588         * alias.c (rtx_equal_for_memref_p): Use predicates
12589         to test rtx classes and new rtx class codes, possibly
12590         splitting conditionals that tested against '<' and 'o'.
12591         * caller-save.c (save_call_clobbered_regs): Likewise.
12592         * combine.c (contains_muldiv, find_split_point, subst,
12593         combine_simplify_rtx, simplify_if_then_else,
12594         simplify_set, simplify_logical, expand_compound_operation,
12595         make_compound_operation, if_then_else_cond, known_cond,
12596         apply_distributive_law, cached_nonzero_bits,
12597         cached_num_sign_bit_copies, simplify_shift_const,
12598         gen_binary, simplify_comparison, update_table_tick,
12599         record_value_for_reg, get_lsat_value_validate): Likewise.
12600         * cse.c (mention_regs, find_best_addr, find_comparison_args,
12601         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
12602         Likewise.
12603         * emit-rtl.c (copy_insn_1): Likewise.
12604         * expr.c (force_operand): Likewise.
12605         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
12606         * flow.c (notice_stack_pointer_modification_1,
12607         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
12608         and_reg_cond, elim_reg_cond): Likewise.
12609         * function.c (update_epilogue_consts): Likewise.
12610         * genattrtab.c (attr_rtx_1): Likewise.
12611         * genopinit.c (gen_insn): Likewise.
12612         * integrate.c (subst_constants): Likewise.
12613         * jump.c (reversed_comparison_code_parts,
12614         reversed_comparison_code, delete_related_insns,
12615         rtx_renumbered_equal_p): Likewise.
12616         * local-alloc.c (block_alloc): Likewise.
12617         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
12618         canonicalize_condition): Likewise.
12619         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
12620         Likewise.
12621         * optabs.c (add_equal_node, expand_binop): Likewise.
12622         * predict.c (estimate_probability): Likewise.
12623         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
12624         * recog.c (validate_replace_rtx_1, comparison_operator,
12625         offsettable_address_p, constrain_operands): Likewise.
12626         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
12627         Likewise.
12628         * regclass.c (scan_one_insn): Likewise.
12629         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
12630         * regrename.c (kill_autoinc_value): Likewise.
12631         * reload.c (find_reusable_reload, find_reloads,
12632         reg_overlap_mentioned_for_reload_p): Likewise.
12633         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
12634         * rtl.c (copy_rtx): Likewise.
12635         * rtl.h (CONSTANT_P, INSN_P): Likewise.
12636         * rtlanal.c (commutative_operand_precedence): Likewise.
12637         * sched-deps.c (conditions_mutex_p): Likewise.
12638         * sched-rgn.c (is_cfg_nonregular): Likewise.
12639         * simplify-rtx.c (simplify_gen_binary,
12640         simplify_gen_relational, simplify_replace_rtx,
12641         simplify_unary_operation, simplify_binary_operation,
12642         simplify_ternary_operation, simplify_rtx): Likewise.
12643         * unroll.c (reg_dead_after_loop): Likewise.
12644         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
12645         print_operand): Likewise.
12646         * config/arc/arc.c (proper_comparison_operator): Likewise.
12647         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
12648         Likewise.
12649         * config/avr/avr.c (_reg_unused_after): Likewise.
12650         * config/frv/frv.c (frv_ifcvt_modify_tests,
12651         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
12652         * config/i386/i386.c (ix86_comparison_operator,
12653         ix86_carry_flag_operator, fcmov_comparison_operator,
12654         arith_or_logical_operator, print_operand,
12655         ix86_expand_binary_operator, ix86_binary_operator_ok):
12656         Likewise.
12657         * config/i386/i386.md: Likewise.
12658         * config/ia64/ia64.c (not_postinc_memory_operand,
12659         ia64_print_operand, update_set_flags, errata_emit_nops):
12660         Likewise.
12661         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
12662         CONSTRAINT_OK_FOR_S): Likewise.
12663         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
12664         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
12665         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
12666         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
12667         Likewise.
12668         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
12669         eqne_comparison_operator, signed_comparison_operator):
12670         Likewise.
12671         * config/mips/mips.c (cmp_op, symbolic_expression_p):
12672         Likewise.
12673         * config/mmix/mmix (mmix_foldable_comparison_operator,
12674         mmix_comparison_operator): Likewise.
12675         * config/pa/pa.c (hppa_legitimize_address): Likewise.
12676         * config/rs6000/rs6000.c (stmw_operation,
12677         branch_comparison_operator, trap_comparison_operator,
12678         ccr_bit): Likewise.
12679         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
12680         * config/s390/s390.c (s390_alc_comparison,
12681         s390_slb_comparison):L Likewise.
12682         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
12683         Likewise.
12684         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
12685         noov_compare_op, noov_compare64_op, v9_regcmp_op,
12686         emit_hard_tfmode_operation, reg_unused_after)
12687         * doc/md.texi, doc/rtl.texi: Likewise.
12688
12689         * ra-debug.c: Add 2004 to list of copyright years.
12690         * unroll.c: Likewise.
12691
12692         * combine.c (simplify_logical): Remove dummy test,
12693         (apply_distributive_law): Fix typo in comment.
12694         GET_CODE (x) == AND so x is a commutative binary op.
12695         * jump.c (delete_related_insns): simplify loop
12696         condition, move testing of RTX codes inside the loop.
12697         (rtx_renumbered_equal_p): do not use RTX_CODE.
12698         * rtl.c (rtx_class): Declare as enum rtx_class.
12699         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
12700         Move to RTX_COMM_COMPARE class.
12701         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
12702         Move to RTX_CONST_OBJ class.
12703         * rtl.h (enum rtx_class): New declaration,
12704         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
12705         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
12706         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
12707         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
12708         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
12709         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
12710         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
12711         OBJECT_P): New macros.
12712         * config/sparc/sparc.c (noov_compare_op): Remove register
12713         from parameter.
12714
12715 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12716
12717         * target.h: Remove texi jargons in comments.
12718
12719 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12720
12721         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
12722         threshold to 0x4f.
12723
12724         Revert:
12725         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12726         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12727         as well.
12728         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12729         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12730
12731 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12732
12733         * doc/md.texi (cbranchmode4): New.
12734
12735 2004-03-02  Eric Christopher  <echristo@redhat.com>
12736
12737         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
12738         fix_trunc.
12739         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
12740         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
12741         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
12742         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
12743
12744 2004-03-02  Richard Henderson  <rth@redhat.com>
12745
12746         PR middle-end/11767
12747         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
12748         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
12749         before the compare, if flag_non_call_exceptions.
12750
12751 2004-03-02  Richard Henderson  <rth@redhat.com>
12752
12753         PR middle-end/14327
12754         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
12755         emitting the label, not after.
12756
12757 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12758
12759         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
12760         (m68hc11_mov_addr_mode): Likewise.
12761         (m68hc11_override_options): Initialize them based on target.
12762         (register_indirect_p): Allow a MEM for indirect addressing modes and
12763         use flags to control what is allowed.
12764         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
12765         supported addressing modes.
12766         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
12767         (go_if_legitimate_address_internal): Likewise.
12768         (m68hc11_indirect_p): Likewise and check the mode.
12769         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
12770
12771 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12772
12773         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
12774         (expand_builtin_setjmp_setup): Use
12775         targetm.builtin_setjmp_frame_value instead of
12776         BUILTIN_SETJMP_FRAME_VALUE.
12777         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
12778         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
12779         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12780         * target.h (gcc_target): Add builtin_setjmp_frame_value.
12781         * targhooks.c (default_builtin_setjmp_frame_value): New.
12782         * targhooks.h: Add a prototype for
12783         default_builtin_setjmp_frame_value.
12784         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
12785         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12786
12787 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12788
12789         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
12790         sequences of moves.
12791         (add peepholes): New peepholes to optimize sequences adding small
12792         constants.
12793         (bset peepholes): New peepholes to transform an OR in a bset form
12794         (bclr peepholes): Likewise for bclr form.
12795         (cmp peepholes): New peepholes to avoid register copies when comparing.
12796
12797 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12798
12799         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
12800         to separate push from moves.
12801         ("*pushdf_internal"): Likewise.
12802         ("*pushsf_internal"): Likewise.
12803         ("*pushsi_internal"): Likewise.
12804         ("movdi_internal"): Use define_insn_and_split; non push operand.
12805         ("movdf_internal"): Likewise.
12806         ("movsf_internal"): Likewise.
12807         ("movsi_internal"): Likewise.
12808         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
12809         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
12810         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
12811
12812 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12813
12814         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
12815         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
12816         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
12817         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
12818         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
12819         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
12820         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
12821         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
12822         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
12823         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
12824         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
12825
12826 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12827
12828         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
12829         (SOFT_XY_REGNUM): Define.
12830         (cmp split): Use the above instead of hard coded numbers.
12831         (8-bit op split): No need to check the mode; allow Q_REG.
12832         (ashift split): Adjust the first operand if it uses the SP and we
12833         are pushing the shifted value.
12834         (plus shift split): Fix when a source is in register D+X.
12835         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
12836
12837 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12838
12839         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
12840         comparing with Z register.
12841
12842 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12843
12844         * cfgloop.h (struct loop_desc): Removed.
12845         (struct loop): Fields simple, desc and has_desc removed.
12846         (simple_loop_p, count_loop_iterations): Declaration removed.
12847         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
12848         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
12849         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
12850         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
12851         simple_loop_exit_p, variable_initial_value, variable_initial_values,
12852         simple_condition_p, simple_increment, count_strange_loop_iterations,
12853         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
12854         Removed.
12855         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
12856
12857 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12858
12859         * genattrtab.c: Don't handle MATCH_INSN.
12860         * genrecog.c: Likewise.
12861         * gensupport.c: Likewise.
12862         * rtl.def (match_insn): Remove.
12863         * doc/md.texi (match_insn, match_insn2): Remove.
12864
12865 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
12866
12867         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
12868         macro results in memory allocation.
12869
12870 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
12871
12872         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
12873         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
12874         %(fbsd_dynamic_linker),
12875         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
12876         config/i386/freebsd.h
12877         * config/arm/freebsd.h: Ditto.
12878         * config/i386/freebsd.h: Ditto.
12879         * config/i386/freebsd64.h: Ditto.
12880         * config/ia64/freebsd.h: Ditto.
12881         * config/rs6000/sysv4.h: Ditto.
12882         * config/sparc/freebsd.h: Ditto.
12883
12884 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
12885
12886         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
12887
12888 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12889
12890         * rtl.def (define_combine): Remove.
12891
12892 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12893
12894         * config/h8300/h8300.md: Tweak formatting.
12895
12896 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12897
12898         * config/h8300/h8300.md (*cmphi_h8300): Rename to
12899         *cmphi_h8300_znvc.
12900         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
12901
12902 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
12903
12904         PR bootstrap/14356
12905         * gcc.c (process_command): Remove const-qualification from argv.
12906         (main): Likewise.
12907
12908 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12909
12910         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
12911         pushqi1_h8300hs_advanced.  Adjust its caller.
12912         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
12913         Adjust its caller.
12914
12915 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
12916
12917         * Makefile.in (install-libgcc, install-multilib): Pass
12918         mkinstalldirs var to libgcc.mk.
12919
12920 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12921
12922         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
12923         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
12924
12925 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12926
12927         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
12928         * config/h8300/h8300.md: Split several peephole2's, each into
12929         two.
12930
12931 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12932
12933         * dominance.c (recount_dominator): Handle postdominators.
12934
12935 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12936
12937         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
12938         (NUM_SYMBOL_TYPES): Likewise.
12939         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
12940         (mips_unspec_address): Declare.
12941         (mips_gotoff_page, mips_gotoff_global): Delete.
12942         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
12943         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
12944         (mips_symbolic_constant_p, mips_symbolic_address_p)
12945         (mips_symbol_insns): Handle new symbol types.
12946         (general_symbolic_operand): New predicate.
12947         (mips_unspec_address): Make extern.
12948         (mips_gotoff_page, mips_gotoff_global): Delete.
12949         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
12950         Handle new symbol types.
12951         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
12952         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
12953         mips_unspec_address directly.
12954         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
12955         the documentation of -mexplicit-relocs.
12956
12957 2004-03-01  Jeff Law  <law@redhat.com>
12958
12959         * fold-const.c (fold): An equality comparison of a non-weak object
12960         against zero has a known result.  Similarly an equality comparison
12961         of the address of two non-weak, unaliased symbols has a known result.
12962
12963         * ggc-page.c (struct page_entry): New field PREV.
12964         (ggc_alloc): Update PREV field appropriately.
12965         (sweep_pages): Likewise.
12966         (ggc_free): Likewise.  Use PREV field rather than loop to
12967         improve ggc_free performance.
12968
12969 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12970
12971         * config/mips/mips.c (mips_output_division): Use the division
12972         instruction to fill the delay slot of a zero check.
12973         (mips_idiv_insns): Adjust accordingly.
12974
12975 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
12976
12977         * config.gcc: Create a default tmake_file for linux, and use
12978         it in all but two linux clauses.  Comment those two.
12979
12980 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
12981
12982         * combine.c (try_combine):  Do not refer to is_replaced.
12983         (gen_lowpart_for_combine):  Perverse subregs now have a
12984         more politically correct name.
12985         * cse.c (cse_insn): Likewise.
12986         * jump.c: Fix bogus reference to delete_insn.
12987
12988 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
12989
12990         PR debug/14328
12991         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
12992         constants as signed values.
12993
12994         PR middle-end/13448
12995         * c-tree.h (readonly_warning): Rename to ...
12996         (readonly_error): ... this.
12997         * c-typeck.c (build_unary_op): Adjust accordingly.
12998         (readonly_warning): Rename to ...
12999         (readonly_error): ... this and issue errors, not warnings.
13000         (build_modify_expr): Call readonly_error, not readonly_warning.
13001         (c_expand_asm_operands): Likewise.
13002         * tree-inline.c (optimize_inline_calls): Do not inline functions
13003         after errors have occurred.
13004
13005 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
13006
13007         * configure.ac: Rearrange some threading code for clarity;
13008         add section comment.
13009         * configure: Regenerate.
13010
13011 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13012
13013         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
13014         typos.
13015         * doc/cppopts.texi: Fix a typo.
13016
13017 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13018
13019         * config/i386/i386.md: Fix formatting.
13020
13021 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
13022
13023         * configure.ac: Add some comments delineating sections of code.
13024
13025         * doc/install.texi: Note that libada uses autoconf 2.57 also.
13026
13027         * doc/install.texi: Fix idiot typo in previous commit.
13028
13029         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
13030
13031 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13032
13033         * config/h8300/h8300.md: Add comments about peephole2's.
13034
13035 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13036
13037         * config/h8300/h8300.md: Tweak operand numbers of some
13038         peephole2's.
13039
13040 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13041
13042         * config/h8300/h8300.md: Tweak comments about peephole2's.
13043
13044 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
13045
13046         PR middle-end/14203
13047         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
13048         instead of testing whether DECL_RTL is not NULL.
13049
13050 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13051
13052         * config/sh/sh.c: Fix formatting.
13053
13054 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13055
13056         * config/sh/sh.c: Convert to ISO-C.
13057
13058 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
13059
13060         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
13061         my previous patch.
13062
13063         * config/darwin.h (machopic_finish): Output stub even if the
13064         symbol is already defined.
13065
13066 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13067
13068         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
13069
13070 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13071
13072         * genattr.c (main): Don't define
13073         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
13074         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
13075         (DFA_PIPELINE_INTERFACE): Likewise.
13076         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
13077         (DFA_PIPELINE_INTERFACE): Likewise.
13078
13079 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
13080
13081         * config/mips/mips.md (tstsi, tstdi): Delete.
13082
13083 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13084
13085         * config/mips/mips.c (override_options): Remove an obsolete
13086         duplicate definition of the "e" constraint.
13087         * config/mips/mips.h: Update a comment accordingly.
13088
13089 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13090
13091         * config/mips/mips.md: Complete the unfinished R4000
13092         multiply/shift errata workaround.  Improve documentation.
13093         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
13094         has a hilo hazard.
13095         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
13096         (muldi3, muldi3_internal): Likewise.
13097         (muldi3_internal2): Remove, replacing with...
13098         (muldi3_mult3, muldi3_r4000): ...these new patterns.
13099         (mulsidi3): Take the errata into account.
13100         (mulsidi3_32bit): Remove, replacing with...
13101         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
13102         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
13103         (umulsidi3): Take the errata into account.
13104         (umulsidi3_32bit): Remove, replacing with..
13105         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
13106         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
13107         TARGET_FIX_R4000.
13108         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
13109         (smuldi3_highpart, umuldi3_highpart): Likewise.
13110         * doc/invoke.texi: Document the errata workaround.
13111
13112 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13113
13114         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
13115         * config/mips/mips.h (MASK_FIX_SB1): Bump.
13116         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
13117         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
13118         * config/mips/mips.c (mips_idiv_insns): New function.
13119         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
13120         (mips_output_division): Add a workaround for the R4000 divide/shift
13121         errata.
13122         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
13123         the length of an "idiv" instruction.
13124         * doc/invoke.texi: Document the new switches.
13125
13126 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13127
13128         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
13129         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
13130
13131 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13132
13133         PR optimization/14229
13134         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
13135
13136 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
13137
13138         * fold-const.c (fold): Strip NOPs that change the signedness
13139         for RSHIFT too.  Expand comment.
13140
13141 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
13142
13143         PR optimization/7871
13144         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
13145         from or to call insns.
13146
13147 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13148
13149         PR optimization/7871
13150         * flow.c (propagate_one_insn): Interpret calls as setting global
13151         registers, not merely clobbering them.
13152
13153 2004-02-27  Dale Johannesen  <dalej@apple.com>
13154
13155         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
13156         config/darwin-protos.h:  Ditto.
13157         config/darwin.h:  Remove call to it.
13158         * combine.c (distribute_notes): Do not place a REG_DEAD note
13159         when value is both set and used.
13160
13161 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13162
13163         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
13164         as well.
13165         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
13166         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
13167
13168 2004-02-27  Andrew Pinski  <apinski@apple.com>
13169
13170         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
13171         Speedup common case of the type values being in the same order.
13172
13173 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
13174
13175         * config/ia64/ia64.h (no-inline-float-divide): New option.
13176         * config/ia64/ia64.h (no-inline-int-divide): New option.
13177         * config/ia64/ia64.h (no-inline-sqrt): New option.
13178         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
13179         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
13180         * config/ia64/ia64.c (ia64_override_options): Modify error
13181         checking for inlined division/sqrt.
13182
13183 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13184
13185         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
13186         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
13187         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
13188         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
13189         copyright.
13190
13191 2004-02-27  Paul Brook  <paul@codesourcery.com>
13192
13193         * function.c (assign_parms): Don't count pretend args for alignment.
13194
13195 2004-02-27  Richard Henderson  <rth@redhat.com>
13196
13197         * passes.c: New file.
13198         * Makefile.in (OBJS-common): Add it.
13199         * diagnostic.c (rtl_dump_and_exit): Move decl ...
13200         * flags.h (rtl_dump_and_exit): ... here.
13201         * output.h (size_directive_output, last_assemble_variable_decl):
13202         Move from toplev.c.
13203         * rtl.h (reg_alloc): Move from toplev.c.
13204         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
13205         struct dump_file_info, enum dump_file_index, dump_file_tbl,
13206         open_dump_file, close_dump_file, rest_of_decl_compilation,
13207         rest_of_type_compilation, rest_of_handle_final,
13208         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
13209         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
13210         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
13211         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
13212         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
13213         rest_of_handle_tracer, rest_of_handle_if_conversion,
13214         rest_of_handle_if_after_combine, rest_of_handle_web,
13215         rest_of_handle_branch_prob,
13216         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
13217         rest_of_handle_addressof, rest_of_handle_sibling_calls,
13218         rest_of_handle_jump_bypass, rest_of_handle_inlining,
13219         rest_of_handle_null_pointer, rest_of_handle_combine,
13220         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
13221         rest_of_handle_gcse, rest_of_handle_loop_optimize,
13222         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
13223         (decode_d_option): Use enable_rtl_dump_file.
13224         (compile_file, finalize, do_compile): Move profile+combine+graph
13225         cleanup to finish_optimization_passes.
13226         * toplev.h (init_optimization_passes, finish_optimization_passes,
13227         enable_rtl_dump_file): Declare.
13228
13229 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
13230             Roger Sayle  <roger@eyesopen.com>
13231
13232         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
13233         operands to build a tree with swapped operands.
13234         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
13235         'unsignedp' predicate to specify the signedness.
13236
13237 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13238
13239         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
13240         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
13241         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
13242         comment typos and formatting.  Follow spelling conventions.
13243
13244 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
13245
13246         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
13247         fix_truncsfsi2.
13248
13249         * config/rs6000/spe.md: Delete spe_efsctuiz.
13250         Add spe_fixuns_truncsfsi2.
13251         Add spe_fix_truncsfsi2.
13252
13253 2004-02-26  Eric Christopher  <echristo@redhat.com>
13254
13255         * c-lex.c (c_lex_string_translate): New variable.
13256         (lex_string): Use to determine string translation.
13257         * c-pragma.h: Prototype.
13258         * c-parse.in (start_string_translation): New. Set above.
13259         (stop_string_translation): Ditto.
13260         (attribute, attribute_list, asm_def, asm_stmt,
13261         asm_operand): Use above functions.
13262         * cp/parser.c (cp_parser_declaration): Translate strings
13263         unless token is RID_EXTERN. Set c_lex_string_translate
13264         for recursive use.
13265         (cp_parser_asm_definition): Only translate argument strings
13266         to asms.
13267         (cp_parser_asm_operand_list): Ditto.
13268         (cp_parser_attribute_list): Do not translate attribute strings.
13269
13270 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13271
13272         * stmt.c (expand_start_case_dummy): Remove.
13273         * tree.h: Remove the corresponding prototype.
13274
13275 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13276
13277         * builtins.c (apply_args_register_offset): Remove.
13278         * tree.h: Remove the corresponding prototype.
13279
13280 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13281
13282         * stor-layout.c (is_pending_size): Remove.
13283         * tree.h: Remove the corresponding prototype.
13284
13285 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13286
13287         * recog.c (validate_replace_src): Remove.
13288         * recog.h: Remove the corresponding prototype.
13289
13290 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13291
13292         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
13293         MAYBE_REG_PARM_STACK_SPACE.
13294         * function.c: Likewise.
13295         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
13296         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13297         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
13298         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13299
13300 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13301
13302         * c-decl.c (c_expand_deferred_function): Remove.
13303         * c-tree.h: Remove the corresponding prototype.
13304
13305 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13306
13307         * postreload.c (reload_cse_move2add): Generate just a PLUS
13308         instead of an entire SET.
13309
13310 2004-02-26  Jan Hubicka  <jh@suse.cz>
13311
13312         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
13313         /pentium4m.
13314         * i386.c (override_options): Add support for new CPUs.
13315         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
13316         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
13317         constants.
13318         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
13319
13320 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
13321
13322         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
13323
13324 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13325
13326         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
13327         (sparc_emit_fixunsdi): New prototype.
13328         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
13329         (sparc_emit_fixunsdi): New function.
13330         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
13331         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
13332         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
13333         to sparc_emit_floatunsdi.
13334         (fixuns_truncsfdi2): New expander.
13335         (fixuns_truncdfdi2): Likewise.
13336
13337 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
13338
13339         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
13340         unless HAVE_cc0.
13341
13342 2004-02-25  Richard Henderson  <rth@redhat.com>
13343
13344         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
13345         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
13346         use (op0-op1) == 0 if op0 is a pointer.
13347         * config/alpha/alpha.md (cmpdi): Use some_operand.
13348         (three comparison combine splits): Remove.
13349
13350 2004-02-25  Richard Henderson  <rth@redhat.com>
13351
13352         PR c/12794
13353         * c-common.c (handle_alias_attribute): Reject the attribute if
13354         current_function_decl is set.
13355
13356 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13357
13358         * config.gcc: Add comment describing extra_gcc_objs.
13359         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
13360         * configure.ac (extra_gcc_objs): New substitution variable.
13361         (host_extra_gcc_objs): Don't substitute.
13362         * configure: Regenerate.
13363         * Makefile.in: Use extra_gcc_objs.
13364
13365 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13366
13367         * doc/contrib.texi: Add an entry for myself.
13368
13369 2004-02-25  Jan Hubicka  <jh@suse.cz>
13370
13371         * basic-block.h (make_eh_edge, break_superblocks): Declare.
13372         * cfgbuild.c (make_eh_edge):  Make global.
13373         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
13374         * except.c (build_post_landing_pads, connect_post_landing_pads,
13375         dw2_build_landing_pads, sjlj_emit_function_enter,
13376         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13377         sjlj_build_landing_pads): Update CFG.
13378         (emit_to_new_bb_before): New function.
13379         (finish_eh_generation): Do not rebuild the CFG.
13380
13381 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13382
13383         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
13384         target_cpu_default defines.
13385         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
13386         * pa.h (TARGET_DEFAULT): Likewise.
13387
13388 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13389
13390         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
13391         comparisons with regard to signedness.
13392
13393 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13394
13395         * arm.c (thumb_legitimize_address): New function.
13396         * arm-protos.h: Prototype it.
13397         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
13398         (LEGITIMIZE_ADDRESS): Use it.
13399
13400 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
13401
13402         * reload1.c (reload): Only spill eliminable register with multiple
13403         adjacent elimination alternatives if all alternatives fail.
13404
13405 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13406
13407         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
13408         is -4095...+4095 inclusive.
13409
13410 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
13411
13412         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
13413         the bootstrap failure with Sun CC 5.4 and 5.5.
13414
13415 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13416
13417         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
13418         which modifies NEWREG.
13419         (cse_condition_code_reg): Update the mode of CC_REG in
13420         CC_SRC_INSN on our own.
13421
13422 2004-02-24  Michael Matz  <matz@suse.de>
13423
13424         * config/i386/i386.c (ix86_comp_type_attributes): Check for
13425         regparm attributes.
13426
13427 2004-02-24  Richard Henderson  <rth@redhat.com>
13428
13429         * toplev.c (dump_file_tbl): Rename from dump_file.
13430         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
13431         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
13432         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
13433         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
13434         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
13435         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
13436         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
13437         s/rtl_dump_file/dump_file/g.
13438
13439 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
13440
13441         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
13442         (spe_fixuns_truncsfsi2): Delete.
13443
13444         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
13445         (fixuns_truncsfsi2): Delete.
13446
13447 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
13448
13449         PR/14240
13450         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
13451
13452 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
13453
13454         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
13455
13456 2004-02-24  Jason Merrill  <jason@redhat.com>
13457
13458         * tree.c (check_qualified_type): New fn.
13459         (get_qualified_type): Use it.  If type already has the desired
13460         quals, just return it.
13461         * tree.h: Declare it.
13462
13463 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
13464
13465         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
13466         TARGET_SCHED_FINISH_GLOBAL): New macros.
13467
13468         * target.h (md_init_global, md_finish_global): Function
13469         declarations corresponding to new target macros.
13470
13471         * haifa-sched.c (sched_init, sched_finish): Allow target to
13472         call the new schedular hooks.
13473
13474         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
13475         call to update_life_info.
13476
13477         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
13478         flag_schedule_insns for SH4.
13479
13480         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
13481         find_set_regmode_weight, find_insn_regmode_weight,
13482         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
13483         sh_variable_issue, high_pressure, ready_reorder,
13484         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
13485         functions used to throttle the insn movement in first
13486         scheduling pass for SH.
13487
13488         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
13489         TARGET_SCHED_FINISH_GLOBAL.
13490
13491 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
13492
13493         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
13494         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
13495         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
13496         symbols in sections named by the user.
13497         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
13498         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
13499         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
13500         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
13501         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
13502         the above.
13503         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
13504         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
13505         one more pseudo to further improve code generation.
13506         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
13507         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
13508         inside UNSPEC.
13509         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
13510         * config/frv/frv.c (frv_legitimate_address_p): Added
13511         allow_double_reg_p argument.  Adjust all callers.  Use it to
13512         decide whether to enable double-register indirect addressing.
13513         (frv_funcdesc_alias_set): Remove.
13514         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
13515         register.  Emit movdi_ldd.
13516         (ldd_address_operand): New.
13517         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
13518         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13519         (PREDICATE_CODES): Add ldd_address_operand.
13520         * config/frv/frv.md (movdi_ldd): New.
13521         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
13522         intermediate computations if possible.
13523         (symGOTOFF2reg_i): Fix harmless typo.
13524         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
13525         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
13526         relocated p_vaddr to vaddr type.
13527         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
13528         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
13529         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
13530         MEM, or use a funcdesc alias set.  Use regular move instead of
13531         ldd.
13532         (dbl_memory_one_insn_operand): Recognize function descriptors by
13533         type or by alias set, and don't split them.
13534         * config/frv/frv.md (call, call_value): Never use call_internal
13535         for fdpic.
13536         (call_internal, call_value_internal): Never match for FDPIC.
13537         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
13538         call_value_fdpicsi): Require FDPIC.
13539         (ldd): Removed.
13540         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
13541         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
13542         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
13543         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
13544         FDPIC.  Compute data base address.
13545         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
13546         before the other self-specs are processed.
13547         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
13548         Build with -fPIC.
13549         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
13550         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
13551         inhibit_libc is defined.
13552         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
13553         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
13554         __FRV_FDPIC__.
13555         (__RELOC_POINTER): Define.
13556         (_Unwind_IteratePhdrCallback): Use it.
13557         * config/frv/frv.h (Twrite): Define.
13558         (TRANSFER_FROM_TRAMPOLINE): Use it.
13559         * config/frv/linux.h (INVOKE__main): Undefine.
13560         (Twrite): Override.
13561         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
13562         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
13563         (-mlibrary-pic): Emphasize that this option generates EABI code.
13564         (-mcpu): Add fr550.
13565         (-mpack): Remove.
13566         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
13567         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
13568         and CONSTs in FDPIC mode.
13569         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
13570         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13571         * config/frv/frv.c (move_source_operand): Don't accept symbolic
13572         constants.
13573         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
13574         rather than 'i' constraint for the 2-instruction alternative.
13575         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
13576         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13577         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
13578         EXTRA_CONSTRAINT_FOR_Y.
13579         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
13580         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
13581         (addsi3): Change 'Y' constraint to 'Q'.
13582         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
13583         * reload.c (CONST_POOL_OK_P): New macro.
13584         (find_reloads): Use it to decide whether a constant can be forced
13585         into memory.
13586         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
13587         constant satisfies got12_operand.
13588         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
13589         (frv_legitimate_address_p): Check for valid unspec offsets using
13590         got12_operand rather than frv_legitimate_fdpic_operand_p.
13591         (frv_legitimate_fdpic_operand_p): Delete.
13592         (frv_emit_movsi): Abort if we try to use the FDPIC register during
13593         or after reload.
13594         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
13595         TARGET_FDPIC.
13596         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
13597         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
13598         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
13599         (frv_fdpic_fptr_operand): Don't declare here.
13600         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
13601         rather than fdpic_got12_operand.
13602         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
13603         got12_operand and const_unspec_operand.
13604         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
13605         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
13606         (symbolic_operand): Remove.
13607         (const_unspec_operand): New predicate.
13608         * config/frv/frv.md (*movsi_got): Use got12_operand.
13609         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
13610         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
13611         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
13612         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
13613         * config/frv/frv.c (frv_unspec): New structure.
13614         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
13615         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
13616         validate CONST indices.  Use frv_output_const_unspec to print them.
13617         (frv_print_operand): Update call to unspec_got_name.  Use
13618         frv_output_const_unspec to print constant unspecs.
13619         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
13620         Reject UNSPECs otherwise.
13621         (unspec_got_name): Take the relocation number as argument, not an
13622         rtx containing it.
13623         (frv_output_addr_const_extra): Remove, replacing with...
13624         (frv_output_const_unspec): ...this new function.
13625         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
13626         (gpr_or_int12_operand): Use fdpic_got12_operand.
13627         (dbl_memory_one_insn_operand): Likewise.
13628         (fdpic_got12_operand): Use frv_const_unspec_p.
13629         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
13630         are already legitimate.  Use frv_small_data_reloc_p when deciding
13631         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
13632         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
13633         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
13634         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
13635         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13636         label, for real this time.
13637         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
13638         representation of visibility.
13639         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
13640         such.
13641         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
13642         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
13643         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
13644         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
13645         it was explicitly disabled.
13646         (frv_stack_info): There is no need to save the link register in every
13647         frame unless TARGET_LINKED_FP is true.
13648         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
13649         frame pointer if the stack pointer might change value.
13650         (frv_return_addr_rtx): Check and process "count" argument.
13651         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
13652         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
13653         (frv_find_base_term): Declare.
13654         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
13655         (FIND_BASE_TERM): Define.
13656         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
13657         small_data_register_operand, small_data_symbolic_operand.  Add
13658         symbolic_operand.
13659         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
13660         (frv_print_operand_memory_reference, output_move_single): Remove
13661         special handling for unlegitimized sdata addresses.
13662         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
13663         and symbolic addresses.
13664         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
13665         (frv_find_base_term): New function.
13666         (int_2word_operand): Check specifically for symbolic address constants.
13667         (pic_register_operand, pic_symbolic_operand): Delete.
13668         (small_data_register_operand, small_data_symbolic_operand): Delete.
13669         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
13670         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
13671         (move_source_operand): Only accept CONSTs if they're a two-insn
13672         symbolic constant.
13673         (fdpic_got12_operand): Don't require TARGET_FDPIC.
13674         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
13675         using gen_symGOTOFF2reg*.
13676         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
13677         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
13678         themselves a cost of 3 insns.
13679         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
13680         Change predicate to symbolic_operand.
13681         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
13682         (*movsi_lda_sdata): Delete.
13683         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
13684         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
13685         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
13686         frv-*-*linux*.
13687         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13688         label.
13689         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
13690         -multilib-library-pic.
13691         (LINK_SPEC): Add -z text for -mfdpic.
13692         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
13693         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
13694         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
13695         Override.
13696         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
13697         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
13698         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
13699         crtstuff-generated files.
13700         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
13701         * config.gcc: Add frv-*-*linux*.
13702         * config/frv/linux.h, config/frv/t-linux: New.
13703         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
13704         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
13705         when -mfdpic even if a linker script is explicitly listed.
13706         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13707         * config/frv/frv.c (frv_override_options): Clear asm_out
13708         unaligned_op for SImode on FDPIC.
13709         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
13710         argument passed to decl_readonly_section.
13711         (frv_assemble_integer): Revert 2003-09-30's change, but make the
13712         whole block run with FDPIC even with -fno-PIC.
13713         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13714         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
13715         symbol or label plus offset to memory.
13716         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
13717         GOTOFF and GPREL for LABEL_REF.
13718         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
13719         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
13720         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
13721         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
13722         * doc/invoke.texi: Document them.
13723         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
13724         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
13725         (frv_splittable_got_operand): Removed.
13726         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
13727         LO_SUM.  Add comments.
13728         (frv_override_options): Moved enabling of FDPIC to
13729         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
13730         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
13731         (frv_legitimize_fdpic_address): Don't duplicate logic in
13732         frv_emit_movsi.
13733         (frv_gen_GPsym2reg): New.
13734         (unspec_got_name): Added gprel.
13735         (frv_expand_fdpic_call): Add support for inlining PLTs.
13736         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
13737         (gpr_or_int12_operand): Added GPREL12.
13738         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
13739         (small_data_symbolic_operand): Fail if FDPIC.
13740         (fdpic_splittable_got_operand): Removed.
13741         (fdpic_got12_operand): Added GPREL12.
13742         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
13743         when appropriate.  Fix sdata GOTOFF.
13744         (frv_legitimate_constant_p): Require legitimate PIC operand for
13745         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
13746         (frv_assemble_integer): Move FDPIC funcdesc handling out of
13747         flag_pic case.
13748         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
13749         frv_assemble_integer fails.
13750         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
13751         (SUBTARGET_DRIVER_SELF_SPECS): New.
13752         (ASM_SPEC): Don't pass -mno-fdpic.
13753         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
13754         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
13755         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
13756         -multilib-library-pic.
13757         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
13758         condexec_si_media_operator, condexec_sf_add_operator and
13759         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
13760         and condexec_sf_unary_operator.
13761         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
13762         New.
13763         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
13764         movsi_internal.  Give them internal names.  movsi_got has type
13765         int.
13766         (fdpic got splitters): Remove.
13767         (symGPREL2reg, symGPREL2reg_hilo): New.
13768         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
13769         to -mlibrary-pic.  Map -multilib-library-pic to it.
13770         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
13771         Document.
13772         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
13773         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
13774         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
13775         (frv_cannot_force_const_mem): New function.
13776         (const_small_data_p, plus_small_data_p): Update comments on sdata
13777         on FDPIC.
13778         (frv_override_options): Set flag_pie for FDPIC too.
13779         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
13780         call-saved registers on FDPIC.
13781         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
13782         don't force LR to be preserved.
13783         (frv_expand_prologue): Likewise.
13784         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
13785         (frv_frame_pointer_required): Don't force it just because the
13786         FDPIC register is used.
13787         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
13788         operand only if !condexec_p.
13789         (frv_legitimize_address): Return the FDPIC-legitimized address.
13790         Don't match small data here on FDPIC.
13791         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
13792         symbols.  Use TRUE/FALSE instead of 1/0.
13793         (frv_local_funcdesc_p): New.
13794         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
13795         immediates when possible.
13796         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
13797         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
13798         an UNSPEC_GOT.
13799         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
13800         12-bit immediates when possible.
13801         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
13802         are not legitimate pic operands.
13803         (frv_in_small_data_p): Re-enable for FDPIC.
13804         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
13805         (FRV_GLOBAL_P): Removed.
13806         * config/frv/frv.md: Add modes to CONSTs.
13807         (movsi_got): New.
13808         (movsi_lo_sum_got): Use separate matches instead of match_dup.
13809         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
13810         (fdpic splittable operations): Match on flag_pic != 1.
13811         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
13812         * config/frv/frv.c (frv_asm_out_constructor,
13813         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
13814         bytes, not bits.
13815         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
13816         * config/frv/frv.c (frv_assemble_integer): Reject complex
13817         expressions referencing function SYMBOL_REFs.
13818         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
13819         (move_source_operand): Reject CONSTs that reference function
13820         SYMBOL_REFs on FDPIC.
13821         (frv_emit_movsi): If we get such a CONST, break it up.
13822         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
13823         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
13824         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
13825         MEM.
13826         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
13827         (frv_trampoline_size): Increase for FDPIC.
13828         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
13829         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
13830         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
13831         Disable use of GOTOFF for now.
13832         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
13833         Disable use of small data in FDPIC for now.
13834         (frv_asm_output_mi_thunk): Implement for FDPIC.
13835         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
13836         * config/frv/frv.c (frv_asm_out_constructor): Use
13837         frv_assemble_integer for FDPIC pointers.
13838         (frv_asm_out_destructor): Likewise.
13839         * config/frv/frv.md (ldd): Fix order of operands.  Use
13840         address_operand for input.
13841         2003-09-18  DJ Delorie  <dj@redhat.com>
13842         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
13843         (unspec_got_name): Correct typo.
13844         (frv_emit_movsi): Pre-expand splittable GOTs.
13845         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
13846         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
13847         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
13848         * config/frv/t-frv: Add -mfdpic multilibs.
13849         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
13850         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
13851         * config/frv/frv.c (frv_override_options): -mfdpic assumes
13852         flag_pic, default to 32-bit pics, require DWORD ops.
13853         (frv_override_options): Add W and Z constraints.
13854         (frv_expand_prologue): No pic prologue for -mfdpic.
13855         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
13856         (frv_print_operand_memory_reference): Handle GOT constants.
13857         (frv_legitimate_address_p): Allow GOT constants.
13858         (frv_legitimize_address): Handle GOT addresses too.
13859         (frv_legitimate_fdpic_operand_p): New.
13860         (frv_legitimize_fdpic_address): New.
13861         (unspec_got_name): New.
13862         (frv_output_addr_const_extra): New.
13863         (frv_expand_fdpic_call): New.
13864         (frv_fdpic_fptr_operand): New.
13865         (gpr_or_int12_operand): Handle GOT operands.
13866         (int_2word_operand): Handle GOT operands.
13867         (fdpic_operand): New.
13868         (fdpic_splittable_got_operand): New.
13869         (fdpic_got12_operand): New.
13870         (frv_emit_movsi): Handle GOT operands.
13871         (frv_assemble_integer): -mfdpic doesn't use rofixups.
13872         (frv_print_operand): Support 'g' code for GOT operands.
13873         * config/frv/frv-protos.h: Add prototypes as needed.
13874         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
13875         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
13876         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
13877         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
13878         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
13879         R_FRV_GOTOFFLO): New.
13880         (movsi_high_got, movsi_lo_sum_got): New.
13881         (*movsi_pic): Don't use this splitter for -mfdpic.
13882         (addsi3): Allow GOT references also.
13883         (call, call_value): Handle -mfdpic separately.
13884         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
13885         call_value_fdpicsi): New.
13886         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
13887         symGOTOFF2reg_i): New.
13888         * config/frv/frv.h (MASK_FDPIC): New.
13889         (TARGET_FDPIC): New.
13890         (TARGET_SWITCHES): Add -mfdpic.
13891         (FDPIC_FPTR_REGNO): New.
13892         (FDPIC_REGNO): New.
13893         (OUR_FDPIC_REG): New.
13894         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
13895         FDPIC_CALL_REGS.
13896         (REG_CLASS_NAMES): Likewise.
13897         (REG_CLASS_CONTENTS): Likewise.
13898         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
13899         (EXTRA_CONSTRAINT): Add it here.
13900         (FRV_GLOBAL_P): New.
13901         (OUTPUT_ADDR_CONST_EXTRA): New.
13902
13903 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13904
13905         * config/sparc/sparc.h: Remove commented-out definitions of
13906         TARGET_EDOM and GEN_ERRNO_RTX.
13907
13908 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13909
13910         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
13911         df_analyse with df_analyze.
13912
13913 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
13914
13915         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
13916         beginning of block.
13917
13918 2004-02-23  James E Wilson  <wilson@specifixinc.com>
13919
13920         * calls.c (precompute_arguments): Update comment.
13921
13922 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13923
13924         * et-forest.c: Replace et_occurences with et_occurrences.
13925
13926 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13927
13928         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
13929         with iv_analyze.
13930
13931 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
13932
13933         * config/i386/i386.c: Rename pni to sse3.
13934         * config/i386/i386.h: Likewise.
13935         * config/i386/i386.md: Likewise.
13936         * config/i386/pmmintrin.h: Likewise.
13937         * doc/extend.texi: Likewise.
13938         * doc/invoke.texi: Likewise.
13939
13940 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
13941             Kazu Hirata  <kazu@cs.umass.edu>
13942
13943         Remove -fwritable-strings.
13944         * c-common.c (fix_string_type): Don't check
13945         flag_writable_strings.
13946         (fix_string_type): Likewise.
13947         * c-opts.c (set_std_c89): Don't initialize
13948         flag_writable_strings.
13949         (set_std_c99): Likewise.
13950         * common.opt (fwritable-strings): Remove.
13951         * flags.h: Remove the external declaration of
13952         flag_writable_strings.
13953         * opts.c (common_handle_option) <OPT_fwritable_strings>:
13954         Remove.
13955         * toplev.c (flag_writable_strings): Remove.
13956         (f_options): Remove an entry for writable-strings.
13957         * varasm.c (const_hash_1) <STRING_CST>: Don't check
13958         flag_writable_strings.
13959         (compare_constant) <STRING_CST>: Likewise.
13960         (build_constant_desc): Likewise.
13961         * config/darwin.c (machopic_select_section): Likewise.
13962         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
13963         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
13964         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
13965         * config/mips/mips.c (mips_select_section): Likewise.
13966         (mips_encode_section_info): Likewise.
13967         * config/pa/pa.c (pa_select_section): Likewise.
13968         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
13969         * config/v850/v850.c (v850_select_section): Likewise.
13970         * doc/invoke.texi (-fwritable-strings): Remove.
13971         (-fno-const-strings): Don't mention -fwritable-strings.
13972         * doc/trouble.texi: Don't mention -fwritable-strings.
13973
13974 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
13975
13976         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
13977
13978 2004-02-23  Dale Johannesen  <dalej@apple.com>
13979
13980         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
13981         (movdf_hardfloat64):  Ditto.
13982         (movdf_softfloat64):  Ditto.
13983
13984 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
13985         * config/rs6000/rs6000.c (function_arg): call to
13986         rs6000_mixed_function_arg for DFmode moved to allow
13987         normal DFmode incoming register assignment.
13988
13989 2004-02-23  Dale Johannesen  <dalej@apple.com>
13990
13991         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
13992         (movdf_hardfloat64):  Ditto.
13993
13994 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13995
13996         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
13997         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
13998         copyright.
13999
14000 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
14001
14002         PR c/14156
14003         * c-typeck.c (c_expand_return): Change check for VAR_DECL
14004         to use DECL_P instead.
14005
14006         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
14007         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
14008
14009 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
14010
14011         * Makefile.in (opts.o): Depend on target.h.
14012         * opts.c (decode_options): Use targetm.default_short_enums
14013         instead of DEFAULT_SHORT_ENUMS.
14014         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14015         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
14016         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
14017         * target.h (gcc_target): Add default_short_enums.
14018         * config/cris/cris.h: Remove a comment about
14019         DEFAULT_SHORT_ENUMS.
14020         * config/ip2k/ip2k.h: Likewise.
14021         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
14022         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
14023
14024 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14025             Falk Hueffner  <falk@debian.org>
14026
14027         PR c/14188
14028         * builtins.c (expand_builtin_va_arg): Emit an informative message
14029         if a trap is generated.
14030         * c-typeck.c (build_function_call): Likewise.
14031
14032 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
14033
14034         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
14035         fopen.
14036         * libgcov.c: Include sys/stat.h.
14037         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
14038         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
14039         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
14040         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
14041
14042 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
14043
14044         * reorg.c: Remove comments about dead ports.
14045
14046 2004-02-22  Christopher Faylor  <cgf@redhat.com>
14047
14048         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
14049         extra host object file when targetting cygwin rather than generic
14050         object files.
14051
14052 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
14053
14054         Merge from tree-ssa:
14055         2003-11-20  Richard Henderson  <rth@redhat.com>
14056
14057                 * tree-inline.c (insert_decl_map): New.
14058                 (remap_decl, remap_type, remap_block, copy_body_r,
14059                 initialize_inlined_parameters, declare_return_variable,
14060                 remap_save_expr): Use it.
14061
14062         * function.c (copy_body_r): Add mapping from id->ret_label to
14063         id->ret_label.  Revert test for ret_label.
14064
14065 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
14066
14067         * genoutput.c (process_template): Strip trailing whitespace in @
14068         templates and issue a warning if there was any.
14069
14070 2004-02-21  Christopher Faylor  <cgf@redhat.com>
14071
14072         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
14073         object file when targetting cygwin.
14074         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
14075         overridden by top-level Makefile.
14076
14077 2004-02-21  Roger Sayle  <roger@eyesopen.com>
14078
14079         * config/i386/i386.c (standard_80387_constant_p): Also prefer
14080         the x87's load constant instructions when optimizing for size.
14081
14082 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
14083
14084         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
14085         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
14086         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
14087         * fold-const.c: Likewise.
14088         * simplify-rtx.c: Likewise.
14089
14090 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
14091
14092         * combine.c (can_combine_p): Don't ignore SETs marked with
14093         REG_EH_REGION notes.
14094         (try_combine): When attemting to fix unrecognized insns, don't
14095         split a PARALLEL that contains the original i2.
14096
14097 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
14098
14099         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
14100         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
14101         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
14102         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
14103         (vector, pixel, bool): #define to __vector, __pixel and __bool.
14104         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
14105         portion of header.
14106         (__altivec_link_error_invalid_argument): Remove prototype; will use
14107         __builtin_altivec_compiletime_error("vec_*") instead.
14108         (vec_*): Fix/complete set of available operation overloads given the
14109         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
14110         cv-correctness of pointer arguments; in C, always check for correct
14111         argument types before macro expansion.
14112         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
14113         defining Darwin/PowerPC-specific '-f[no-]altivec' and
14114         '-W[no-]altivec-long-deprecated' switches.
14115         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
14116         '__vector', '__pixel' and '__bool' macros using
14117         '__attribute__((altivec(...)))' types.
14118         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
14119         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
14120         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
14121         New type nodes.
14122         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
14123         handling '-W[no-]altivec-long-deprecated'.
14124         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
14125         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
14126         altivec_expand_dst_builtin): Remove casts from integer literals.
14127         (altivec_expand_builtin): Likewise; handle expansion of new
14128         '__builtin_altivec_compiletime_error' function.
14129         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
14130         types, and make them distinct from other vector types; register
14131         '__builtin_altivec_compiletime_error' function.
14132         (print_operand): For 'P', print a full target register name instead of
14133         merely its number.
14134         (rs6000_attribute_table): Add "altivec" attribute.
14135         (rs6000_handle_altivec_attribute): New function.
14136         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
14137         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
14138         maps to).
14139         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
14140         declare.
14141         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
14142
14143 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14144
14145         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
14146         check.
14147         (shift_mix4left+2): Delete redundant pattern.
14148
14149 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14150
14151         * alias.c (OUTGOING_REGNO): Don't define the default.
14152         * builtins.c (OUTGOING_REGNO): Likewise.
14153         (INCOMING_REGNO): Likewise.
14154         (apply_args_register_offset): Always use OUTGOING_REGNO.
14155         * combine.c (OUTGOING_REGNO): Likewise.
14156         * sibcall.c (OUTGOING_REGNO): Likewise.
14157         * defaults.h (INCOMING_REGNO): Provide the default.
14158         (OUTGOING_REGNO): Likewise.
14159
14160 2004-02-21  Jan Hubicka  <jh@suse.cz>
14161
14162         * params.def (max-peeled-insns, max-completely-peeled-insns,
14163         max-once-peeled-insns): Set to 400.
14164
14165 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14166
14167         PR c++/12007
14168         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
14169         are set for parameters before outputing debugging information.
14170
14171 2004-02-20  Falk Hueffner  <falk@debian.org>
14172
14173         PR target/14201
14174         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
14175         numbers.
14176
14177 2004-02-20  Per Bothner  <per@bothner.com>
14178
14179         * input.h:  Don't #include line-map.h.  It may cause link problems
14180         with undefined linemap_line_start when line-map.h is included but
14181         line-map.o is not linked, as currently happens with gengtype on
14182         compilers that don't support inline.
14183         * toplev.c:  So we do have to explicitly #include line-map.h here.
14184
14185 2004-02-20  Richard Henderson  <rth@redhat.com>
14186
14187         * doc/invoke.texi: Add -Wvariadic-macros.
14188
14189 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14190
14191         * haifa-sched.c (sched_emit_insn): Remove.
14192         * sched-int.h: Remove the corresponding prototype.
14193
14194 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14195
14196         Revert:
14197         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14198         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14199         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14200         * config/cris/cris.h: Remove a comment about
14201         DEFAULT_SHORT_ENUMS.
14202         * config/ip2k/ip2k.h: Likewise.
14203         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14204
14205 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
14206             Tom Tromey  <tromey@redhat.com>
14207
14208         * doc/install.texi: Moved --disable-libgcj and
14209         --with-system-zlib documentation to new section for
14210         Java-specific options.
14211         Added explicit Cross-Compiler-Specific Options subheading.
14212         Added section for Java-specific options.
14213
14214 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
14215
14216         * doc/install.texi (Building the Ada compiler): Remove
14217         example.
14218
14219 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14220
14221         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
14222
14223 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14224
14225         * gcc.c (process_command): Allow translation of the copyright
14226         symbol but not the rest of the copyright message.
14227         * gcov.c (print_version): Likewise.  Allow translation of the
14228         message about warranty.
14229
14230 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
14231
14232         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
14233         predicate.
14234         ("*andsi_clear"): Tweak constraints to not match postincrement.
14235         Adjust the predicate to exclude a volatile memory reference.
14236         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
14237         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
14238
14239 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
14240
14241         * move-if-change: Remove.
14242         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
14243         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
14244         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
14245         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
14246         (s-gtyp-gen, s-iov): Use the top level move-if-change.
14247         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
14248
14249 2004-02-19  James E Wilson  <wilson@specifixinc.com>
14250
14251         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
14252         for operand2.  Add condition that requires register_operand operand2
14253         before reload.
14254
14255 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
14256             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
14257
14258         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
14259         * config/mips/mips.md: Expand comment above unaligned loads and stores.
14260
14261 2004-02-19  Richard Henderson  <rth@redhat.com>
14262
14263         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
14264         * tree.c (build0, build1, build2, build3, build4): Split out from...
14265         (build): ... here.  Call them.
14266         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
14267
14268         * convert.c (convert_to_integer): Remove extra build argument.
14269         * tree-inline.c (expand_call_inline): Likewise.
14270
14271 2004-02-19  Richard Henderson  <rth@redhat.com>
14272
14273         * c-opts.c (warn_variadic_macros): New.
14274         (c_common_handle_option): Set it.
14275         (sanitize_cpp_opts): Copy it to cpp_opts.
14276         * c.opt (Wvariadic-macros): New.
14277         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
14278         * cppinit.c (cpp_create_reader): Initialize it.
14279         * cppmacro.c (parse_params): Check it.
14280
14281 2004-02-19  David Daney <ddaney@avtrex.com>
14282
14283         PR preprocessor/14198
14284         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
14285         builtin_assert ("machine=mips")
14286
14287 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14288
14289         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14290         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14291         * config/cris/cris.h: Remove a comment about
14292         DEFAULT_SHORT_ENUMS.
14293         * config/ip2k/ip2k.h: Likewise.
14294         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14295
14296 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14297
14298         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
14299         when passing single SFmode quantities in general registers,
14300         put them in the high half.
14301
14302 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14303
14304         * doc/md.texi (Standard Names): Document additional dependency on
14305         fix pattern.
14306
14307         * optabs.c (ftruncify): Remove.
14308         (expand_fix): Manually inline ftruncify above.
14309         (can_fix_p): Add FIXME note.
14310
14311 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14312
14313         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
14314         spe_fixuns_truncsfsi2.
14315
14316         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
14317         fixuns_truncsfsi2.
14318
14319 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
14320
14321         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
14322         * testsuite/gcc.dg/20040219-1.c: New test.
14323
14324 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
14325
14326         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
14327         "*subsf3_cconly"): Subtraction is not commutative.
14328
14329 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14330
14331         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
14332         (sdbout_symbol): If called before sdbout_init, queue DECL for
14333         later and return.
14334         (sdbout_init): Set sdbout_initialized true, process decls
14335         queued earlier by sdbout_symbol.
14336         (sdbout_finish): Use size_t for index variable.
14337
14338 2004-02-19  Jeff Law  <law@redhat.com>
14339
14340         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
14341         for unordered comparison codes.
14342
14343 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
14344
14345         * reload1.c (reload): Correct comment.
14346         (scan_paradoxical_subregs): Remove #if 0 and old comment.
14347         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
14348         register variables are not used by reload.
14349
14350 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
14351
14352         PR target/14209
14353         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
14354         constraints to not match postincrement.  Adjust the predicate to
14355         exclude a volatile memory reference.
14356
14357 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14358
14359         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
14360
14361 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14362
14363         * hooks.c (hook_void_tree_int): Remove.
14364         (hook_void_constcharptr): Likewise.
14365         (hook_int_void_0): Likewise.
14366         * hooks.h: Remove the prototypes for the above three
14367         functions.
14368         * targhooks.c (hook_bool_machine_mode_true): Remove.
14369         * targhooks.h: Remove the prototype for
14370         hook_bool_machine_mode_true.
14371
14372 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14373
14374         * emit-rtl.c (subreg_realpart_p): Remove.
14375         (reorder_insns_with_line_notes): Likewise.
14376         (end_full_sequence): Likewise.
14377         * rtl.h: Remove the prototype for the above functions.
14378
14379 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14380
14381         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
14382         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14383         config/iq2000/iq2000.h, config/m32r/m32r.h,
14384         config/pdp11/pdp11.h, config/sparc/sparc.h,
14385         config/xtensa/xtensa.h: Remove commented-out or useless
14386         definitions of CASE_VECTOR_PC_RELATIVE.
14387
14388 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14389
14390         * loop.c (all_sets_invariant_p): Remove.
14391
14392 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14393
14394         PR target/12916
14395         * config/sparc/sparc.h (NPARM_REGS): Delete.
14396         (BASE_RETURN_VALUE_REG): Likewise.
14397         (BASE_OUTGOING_VALUE_REG): Likewise.
14398         (BASE_PASSING_ARG_REG): Likewise.
14399         (BASE_INCOMING_ARG_REG): Likewise.
14400         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
14401         TARGET_ARCH64, not TARGET_V9.
14402         (function_arg_slotno): Dispatch based on the mode class.
14403         Handle vector modes like floating-point modes.
14404         (function_arg_record_value_1): Handle vector types like
14405         floating-point types.
14406         (function_arg_record_value_2): Likewise.
14407         Calculate regno after mode transformation.
14408         (function_arg): Handle vector modes like floating-point modes.
14409         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
14410         If ARCH64, do not recheck alignment.
14411         (function_arg_pass_by_reference): Reorder the conditions.
14412         (sparc_return_in_memory): Move after function_arg_padding.
14413         Implement calling conventions for vector modes.
14414         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
14415         (function_value): Move scope of 'regbase'.
14416         Implement calling conventions for vector modes.
14417         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
14418         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
14419         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
14420         the argument is passed by reference.
14421         (sparc_type_code): Handle vector types.
14422
14423 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
14424
14425         * function.c (assign_parms): When building decl_rtl for
14426         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
14427
14428 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
14429
14430         * expr.c (is_aligning_offset): Check if we are aligning the
14431         expressions's address over BIGGEST_ALIGNMENT in bytes, not
14432         in bits.
14433
14434 2004-02-18  Matt Austern  <austern@apple.com>
14435
14436         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
14437         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
14438         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
14439         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
14440         spec string.
14441         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
14442
14443 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
14444
14445         * dwarf2out.c (loclabel_num): Move outside #ifdef
14446         DWARF2_DEBUGGING_INFO and mark with GTY(()).
14447         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
14448         Mark with GTY(()).
14449         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
14450         Allocate memory with ggc_alloc.  No need to copy anything.
14451         (ia64_hpux_file_end): Update to match.
14452
14453 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14454
14455         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
14456         by default.
14457
14458 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14459
14460         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
14461         ("divmodtisi3"): Likewise.
14462         ("udivmoddi4", "udivmodtidi3"): Likewise.
14463         ("divmodsi4", "divmoddisi3"): Likewise.
14464         ("udivmodsi4", "udivmoddisi3"): Likewise.
14465         ("udivsi3", "umodsi3"): Likewise.
14466
14467 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14468
14469         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
14470         placeholder insn when chunkifying the pool.
14471
14472 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14473
14474         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
14475         generating PIC code.
14476
14477 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14478
14479         * config/h8300/h8300-protos.h: Add a prototype for
14480         h8300_expand_branch.
14481         * config/h8300/h8300.c (h8300_expand_branch): New.
14482         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
14483         bgtu, beq, bne): Call h8300_expand_branch().
14484
14485 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14486
14487         * config/h8300/h8300-protos.h: Add prototypes for
14488         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
14489         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
14490         (h8300_hard_regno_mode_ok): Likewise.
14491         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
14492         h8300_hard_regno_nregs().
14493         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
14494
14495 2004-02-18  Per Bothner  <per@bothner.com>
14496
14497         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
14498         partly reverts my 2003-10-01 change, because we're back to logically
14499         including <command line> inside the main line.
14500         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
14501         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
14502         Fixes PR preprocessor/14103.
14503
14504         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
14505         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
14506         (cpp_push_include):  Don't need to increment pfile's line field.
14507         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
14508
14509         * c-ppoutput.c (print struct):  New first_time field.
14510         (init_pp_output):  Set print.first_time.
14511         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
14512         which is set also for (say) <command line>.  Clear print.first_time.
14513
14514         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
14515         does not match the code, so fix both.
14516         (should_stack_file):  Inline include_pch_p function.
14517         (include_pch_p):  Remove pointless function.
14518
14519         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
14520
14521 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14522
14523         * config/h8300/h8300.md (four define_peephole2's): Use
14524         h8300_regs_ok_for_stm().
14525
14526 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14527
14528         * config/h8300/h8300-protos.h: Update the prototype for
14529         expand_a_rotate().
14530         * config/h8300/h8300.c (expand_a_rotate): Remove the first
14531         argument.
14532         * config/h8300/h8300.md: Update all callers.
14533
14534 2004-02-18  Jan Hubicka  <jh@suse.cz>
14535
14536         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
14537         floats.
14538         (simplify_binary_operation): Deal with logicals on floats.
14539
14540         * i386.md (SSE fabs splitters): Emit new patterns.
14541         (SSE cmov splitters): Likewise.
14542         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
14543         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
14544         subregs.
14545         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
14546         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
14547
14548 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14549
14550         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
14551         by hand.
14552         (output_a_rotate): Tweak a comment.
14553         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
14554         (*rotlhi3_1): Change to rotlhi3_1.
14555         (*rotlsi3_1): Change to rotlsi3_1.
14556
14557 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
14558
14559         PR target/13866
14560         * arm.c (load_multiple_operation): Don't insist that the source reg
14561         of a post-increment component is the same as the destination.
14562         (store_multiple_operation): Likewise.
14563
14564 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14565
14566         * config/h8300/h8300.md: Move movsf patterns into one section
14567         of the file.
14568
14569 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14570
14571         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
14572         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
14573         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
14574         config/mips/linux64.h, config/pa/pa-64.h,
14575         config/rs6000/aix51.h, config/rs6000/aix52.h,
14576         config/rs6000/spe.md, config/sparc/linux.h,
14577         config/sparc/linux64.h: Update copyright.
14578
14579 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14580
14581         * config/h8300/h8300.md: Move push patterns into one
14582         section of the file.
14583
14584 2004-02-18  Mark Mitchell <mark@codesourcery.com>
14585
14586         PR c++/11326
14587         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
14588         fntype.
14589
14590 2004-02-18  Paul Brook  <paul@codesourcery.com>
14591
14592         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
14593
14594 2004-02-18  Paul Brook  <paul@codesourcery.com>
14595
14596         PR debug/12934
14597         * dwarf2out.c (loc_descriptor_from_tree): Handle
14598         EXPR_WITH_FILE_LOCATION.
14599
14600 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14601
14602         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
14603         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
14604         trailing whitespace from instructions.
14605
14606 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
14607
14608         * configure.ac: When generating auto-build.h, pass
14609         --enable-languages to the sub-configure.
14610         Put quotes around ${program_transform_name} when generating
14611         name of as, ld, nm, objdump.
14612         * configure: Regenerate.
14613
14614 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
14615
14616         * Makefile.in (s-check, s-config, s-conditions, s-flags)
14617         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
14618         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
14619         (s-preds, s-iov): Do not depend on move-if-change.
14620
14621 2004-02-17  James E Wilson  <wilson@specifixinc.com>
14622
14623         * caller-save.c (insert_restore): Pass mem through copy_rtx.
14624         (insert_save): Likewise.
14625
14626 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14627
14628         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
14629         warning.
14630
14631 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14632
14633         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
14634         *one_cmplsi2_h8300.
14635         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
14636
14637 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14638
14639         * config/h8300/h8300-protos.h: Update the prototype of
14640         fix_bit_operand().
14641         * config/h8300/h8300.c (fix_bit_operand): Remove the second
14642         argument "what".
14643         * config/h8300/h8300.md: Update all callers.
14644
14645 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14646
14647         * config/h8300/h8300.c (fix_bit_operand): Change the name of
14648         the last argument to "code" from "type".
14649
14650 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14651
14652         * config/h8300/h8300.c: Remove an extern declaration of
14653         rtx_equal_function_value_matters.
14654
14655 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14656
14657         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
14658         by hand.
14659         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
14660         (*iorqi3_1): Change to iorqi3_1.
14661         (*xorqi3_1): Change to xorqi3_1.
14662
14663 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14664
14665         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
14666         typos.
14667
14668 2004-02-17  Jan Hubicka  <jh@suse.cz>
14669
14670         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
14671
14672 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
14673
14674         PR optimization/14119
14675         * combine.c (try_combine): When attemting to fix unrecognized insns,
14676         don't delete SETs marked with REG_EH_REGION notes.
14677
14678 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
14679
14680         * combine.c (simplify_if_then_else): Do not replace
14681         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
14682         modes differ.
14683
14684 2004-02017  Steven Bosscher  <stevenb@suse.de>
14685
14686         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
14687         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
14688         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
14689         * ada/utils.c: Likewise.
14690         * cp/decl.c: Likewise.
14691         * f/com.c: Likewise.
14692         * java/class.c: Likewise.
14693
14694 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14695
14696         * config/h8300/h8300.md: Fix comment typos.
14697
14698 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14699
14700         * config/mips/t-iris6gld: Renamed to ...
14701         * config/mips/t-irix-gld: ... this.
14702         * config.gcc (mips-sgi-irix6*): Reflect this
14703         (mips-sgi-irix5*): Use it with GNU ld.
14704
14705         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
14706         to ...
14707         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
14708         * config/mips/t-irix-gld: Reflect this.
14709         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14710
14711         * config/mips/iris5gld.h: New file.
14712         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
14713         Only use collect2 without gas.
14714
14715         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
14716         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14717         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
14718         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14719
14720         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
14721         * config/mips/iris5.h: ... here.
14722
14723         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
14724         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14725         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
14726
14727         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
14728         using irix_startfile_spec, irix_endfile_spec.
14729
14730 2004-02-16  Gunther Nikl  <gni@gecko.de>
14731
14732         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
14733
14734 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14735
14736         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
14737         insns by hand.
14738
14739 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14740
14741         * cfghooks.c (split_edge): Speed up updating of dominators.
14742
14743 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
14744
14745         PR c++/11326
14746         * c-common.c (flag_abi_version): Remove.
14747         * c-common.h (flag_abi_version): Likewise.
14748         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
14749         * c.opt (fabi-version): Remove.
14750         * calls.c (expand_call): Always pass a function type to
14751         struct_value_rtx.  Use convert_memory_address.
14752         * common.opt (fabi-version): Add it.
14753         * flags.h (flag_abi_version): Likewise.
14754         (abi_version_at_least): New macro.
14755         * opts.c (common_handle_option): Add OPT_fabi_version.
14756         * toplev.c (flag_abi_version): Define it.
14757         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
14758         New function.
14759         (ia64_output_mi_thunk): Use it.
14760         (ia64_struct_value_rtx): Likewise.
14761
14762 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14763
14764         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
14765         Don't generate insns by hand.
14766
14767 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
14768
14769         PR c++/14178
14770         * doc/invoke.texi (fabi-version): The default is 2 now.
14771
14772 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14773
14774         * loop-iv.c: New file.
14775         * Makefile.in (loop-iv.o): New.
14776         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
14777         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
14778         num_loop_branches): New functions.
14779         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
14780         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
14781         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
14782         get_simple_loop_desc, free_simple_loop_desc): Declare.
14783         (simple_loop_desc): New inline function.
14784         (struct rtx_iv, struct niter_desc): New.
14785         * cfgloopmanip.c (loopify): Specify semantics more precisely.
14786         * expr.c (force_operand): Handle subregs of expressions created by
14787         loop unroller.
14788         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
14789         parts of the initialization to toplev.c
14790         * loop-unroll.c (loop_exit_at_end_p): New.
14791         (unroll_and_peel_loops): Call iv_analysis_done.
14792         (decide_peel_once_rolling, decide_peel_completely,
14793         decide_unroll_stupid, decide_unroll_constant_iterations,
14794         decide_unroll_runtime_iterations, decide_peel_simple,
14795         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
14796         unroll_loop_runtime_iterations): Use new simple loop analysis.
14797         * loop-unswitch.c (compare_and_jump_seq): New.
14798         (may_unswitch_on_p): Renamed to ...
14799         (may_unswitch_on): Use new iv analysis.
14800         (reversed_condition): Export.
14801         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
14802         * predict.c (estimate_probability): Use new simple loop analysis.
14803         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
14804         canon_condition, simplify_using_condition): Declare.
14805         * stor-layout.c (get_mode_bounds): New.
14806         * toplev.c (rest_of_handle_loop2): Some parts of
14807         initialization/finalization moved here from loop-init.c.
14808
14809 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14810
14811         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
14812         pointer.
14813         (CALL_USED_REGISTERS): Likewise.
14814         (REG_ALLOC_ORDER): Likewise.
14815         (REG_CLASS) <GENERAL_REGS>: Likewise.
14816
14817 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
14818
14819         * doc/md.texi (Insn Canonicalizations): Document left-chaining
14820         in associative operators.
14821         * rtlanal.c (commutative_operand_precedence): Create some new
14822         variables.  Prefer a commutative operand on the left, then
14823         binary expressions, then NEG and NOT.
14824
14825 2004-02-16  Matthias Klose  <doko@debian.org>
14826
14827         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
14828         in terms of SHLIB_SOVERSION.
14829         * config/m68k/t-slibgcc-elf-ver: New file.
14830         * config/pa/t-slibgcc-elf-ver: New file.
14831         * config.gcc (m68k-linux, parisc-linux): Use them when not
14832         sjlj exceptions are not configured.
14833
14834 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
14835
14836         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
14837
14838 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
14839
14840         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
14841
14842 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
14843
14844         * doc/sourcebuild.texi: Mention backends.html.
14845
14846 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
14847
14848         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
14849         line-map.c, line-map.h, var-tracking.c: Fix comment
14850         formatting.
14851
14852 2004-02-16  Richard Henderson  <rth@redhat.com>
14853
14854         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
14855
14856         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
14857
14858 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14859
14860         * config/h8300/h8300.md: Remove unnecessary parallels from
14861         all define_insn and define_split patterns.
14862
14863 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14864
14865         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
14866         "clobber").
14867
14868 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
14869
14870         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
14871         '%#'.
14872
14873 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14874
14875         * config/ia64/ia64.c, config/mips/mips.c,
14876         config/mmix/mmix-modes.def: Fix comment typos.
14877
14878 2004-02-15  Roger Sayle  <roger@eyesopen.com>
14879
14880         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
14881         (get_directive_line): Remove unused function prototype.
14882
14883 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14884
14885         * tree-inline.c (copy_body_r): Do not replace ret_label.
14886
14887 2004-02-14  Jan Hubicka  <jh@suse.cz>
14888
14889         * i386.c (x86_four_jump_limit): New variable.
14890         (k8_avoid_jump_misspredicts): Rename to ...
14891         (ix86_avoid_jump_misspredicts): .. this one.
14892         (ix86_pad_returns): Break out from ...
14893         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
14894         to.
14895         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
14896
14897 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14898
14899         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
14900         PARALLEL is NULL.
14901
14902 2004-02-14  Per Bothner  <per@bothner.com>
14903
14904         * fix-header.c (line_table):  Move local variable in main to global.
14905         * scan.h (line_table):  Use it.
14906         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
14907         line (recently renamed to src_loc) before calling recognized_function.
14908
14909 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
14910
14911         * Makefile.in: Fix comment typos.
14912
14913 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
14914
14915         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
14916         for start_value when it is directly moved into reg, and factorize
14917         the retrieval of GET_MODE (reg).
14918
14919 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14920
14921         * config/mips/mips-protos.h (mips_load_got_page): Delete.
14922         (mips_load_got_global): Delete.
14923         (mips_gotoff_page): Declare.
14924         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
14925         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
14926         UNSPEC_LOAD_GOT pattern rather than a MEM.
14927         (*load_got[sd]i): New patterns.
14928         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
14929         (mips_load_got_page, mips_load_got_global): Delete.
14930         (mips_gotoff_page): New function.
14931         (override_options): Don't initialize mips_got_alias_set.
14932
14933 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14934
14935         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
14936         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
14937         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
14938         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
14939         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
14940         * config/mips/mips.c: Fix some overly-long lines.
14941         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
14942         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
14943
14944 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14945
14946         * configure.ac: Search for as, ld below libexec/gcc.
14947         * configure: Regenerate.
14948
14949 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14950
14951         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
14952         __builtin_arm_setwcx ().
14953         * config/arm/arm.c (arm_expand_builtin): Generate operands
14954         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
14955
14956 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14957
14958         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
14959         and "wmuluh" to "wmulsm" and "wmulum", respectively.
14960         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
14961         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
14962         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
14963         (_mm_mulhi_pu16): Likewise.
14964
14965 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
14966
14967         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
14968         DECL_NAME != 0 before dereferencing.
14969
14970 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14971
14972         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
14973         (s390_output_addr_const_extra): Declare.
14974         (s390_output_pool_entry): Remove FILE * argument.
14975         * config/s390/s390.c (s390_output_symbolic_const): Remove.
14976         (s390_output_addr_const_extra): New function.
14977         (print_operand_address): Call output_addr_const instead of
14978         s390_output_symbolic_const.
14979         (print_operand): Likewise.
14980         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
14981         Remove FILE * argument.
14982         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
14983         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
14984         call.
14985
14986 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14987
14988         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
14989         (struct edge, struct vertex, struct graph): New.
14990         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
14991         free_graph): New functions.
14992
14993 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
14994
14995         * config/mips/mips.md (casesi_internal, casesi_internal_di):
14996         Use ".set macro" to avoid warnings about multi-instruction
14997         macros, since they're intentional.
14998
14999 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
15000
15001         * config/darwin.h: Add include guards.  Remove old, now incorrect,
15002         comment about STANDARD_EXEC_PREFIX.
15003
15004         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
15005         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
15006         for installing .1 manpages.  Add rules for installing cpp
15007         and gcov manpages under their installed names.
15008
15009 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
15010
15011         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
15012         host, but try LD_FOR_TARGET first.
15013         * configure: Rebuilt.
15014
15015 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15016
15017         * dbxout.c: Move declaration of dbxout_type_decl outside
15018         #ifdef DBX_DEBUGGING_INFO.
15019         * c-parse.in: Don't give the asmdef production a type.
15020
15021 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15022
15023         * debug.h (struct gcc_debug_hooks): Add type_decl field.
15024         (debug_nothing_tree_int): Prototype.
15025         (dwarf_debug_hooks): Delete, unused.
15026         * debug.c (do_nothing_debug_hooks): Update.
15027         (debug_nothing_tree_int): New function.
15028         * langhooks.h (struct lang_hooks_for_decls):
15029         Remove builtin_type_decls field.
15030         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
15031         (LANG_HOOKS_DECLS): Update.
15032         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
15033         Use debug_hooks->type_decl.
15034         * dbxout.c (preinit_symbols): New static.
15035         (dbx_debug_hooks, xcoff_debug_hooks): Update.
15036         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
15037         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
15038         for symbols to output.
15039         (dbxout_type_decl): New function.
15040         (dbxout_symbol): If called before dbxout_init has run, queue
15041         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
15042         to TYPE_DECLs before emitting them.
15043         * xcoffout.c (assign_type_number): Delete.
15044         (xcoff_type_numbers): New static table.
15045         (xcoff_assign_fundamental_type_number): New function.
15046         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
15047         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
15048         * sdbout.c: Include varray.h.
15049         (deferred_global_decls): New static.
15050         (sdb_debug_hooks): Update.
15051         (sdbout_global_decl): If we can't emit something right now,
15052         remember it in deferred_global_decls.
15053         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
15054         (sdbout_init): Initialize deferred_global_decls.
15055         * Makefile.in: Update dependencies of sdbout.o.
15056         * dwarf2out.c (dwarf2out_type_decl): New function.
15057         (dwarf2_debug_hooks): Update.
15058         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
15059         * c-decl.c (getdecls): Just return 0.
15060         (check_for_loop_decls): Don't use getdecls.
15061         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
15062         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
15063
15064 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
15065
15066         * config/s390/s390.c (s390_sched_reorder2): Remove.
15067         (TARGET_SCHED_REORDER2): Do not redefine.
15068
15069 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15070
15071         * c-parse.in (maybe_type_qual): Delete.
15072         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
15073         (asm_argument): New grammar rules.
15074         (extdef_1): Use asmdef.
15075         (maybeasm): Move down with other asm rules; use simple_asm_expr.
15076         (xexpr): Move up with other expression rules.
15077         (stmt): Use asm_stmt.
15078
15079         * c-typeck.c (build_asm_expr): New function - body mostly
15080         pulled from build_asm_stmt.
15081         (build_asm_stmt): Just handle tacking on the volatile qualifier.
15082         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
15083
15084 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
15085
15086         PR bootstrap/13617
15087         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
15088         (mips_declare_object): Make variadic.
15089         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
15090         mips_output_aligned_decl_common.
15091         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
15092         (mips_declare_object): Make variadic.
15093
15094 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15095
15096         * function.c (update_epilogue_consts): Teach about binary operations.
15097
15098         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
15099         previous MEM_VOLATILE in REF.
15100         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
15101         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
15102
15103 2004-02-12  Gunther Nikl  <gni@gecko.de>
15104
15105         * config.gcc: Restore support for m68k-openbsd.
15106
15107 2004-02-12  Jan Hubicka  <jh@suse.cz>
15108
15109         * tree-optimize.c (tree_rest_of_compilation): Do not release
15110         DECL_ARGUMENTS.
15111
15112 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
15113
15114         * doc/install.texi: Fix the spelling of "explicitly".
15115
15116 2004-02-11  Eric Christopher  <echristo@redhat.com>
15117
15118         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
15119         duplicate argument structure of cpp_interpret_string.
15120         * cpphash.h: Move prototype...
15121         * cpplib.h: Here.
15122         * cpplib.c: Fix calls to match new function signature.
15123
15124 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15125
15126         PR c/456
15127         * cppexp.c (num_binary_op): Don't allow comma operators in #if
15128         constant expressions at all outside C99 mode if pedantic.
15129
15130 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
15131
15132         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
15133         (log10_optab, log2_optab): Define corresponding macros.
15134         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
15135         * genopinit.c (optabs): Implement log10_optab and log2_optab
15136         using log10?f2 and log2?f2 patterns.
15137         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
15138         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
15139         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
15140         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
15141
15142         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
15143         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
15144         log2, log2f and log2l built-ins as inline x87 intrinsics.
15145
15146 2004-02-11  Richard Henderson  <rth@redhat.com>
15147
15148         PR target/1532
15149         * flow.c (insn_dead_p): A clobber of a dead hard register is a
15150         dead insn after reload.
15151
15152 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
15153
15154         * tree.h (frame_base_decl): Add GTY marker.
15155         * var-tracking.c (frame_base_decl): Likewise.
15156
15157 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
15158
15159         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
15160         incorrect, hunk.
15161         (add_location_or_const_value_attribute): Use text_section_label,
15162         not TEXT_SECTION_NAME.
15163
15164 2004-02-11  Per Bothner  <per@bothner.com>
15165
15166         Represent column numbers using line-map's source_location.
15167         The "next available source_location" is now managed internally by
15168         line-maps.c rather than by clients.
15169         * line-map.h (struct line_map):  New field column_bits.
15170         <from_line>:  Rename field to start_location.
15171         (struct line_maps):  New fields highest_location and max_column_hint.
15172         (linemap_check_files_exited):  New declaration.
15173         (linemap_line_start):  New declaration.
15174         (linemap_add):  Remove from_line parameter; use highest_location field.
15175         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
15176         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
15177         (CURRENT_LINE_MAP):  Remove macro.
15178         (linemap_position_for_column):  New inline function.
15179         * line-map.c (linemap_init):  Clear new fields.
15180         (linemap_check_files_exited):  New function, extracted from ...
15181         (linemap_free):  Use linemap_check_files_exited.
15182         (linemap_add):  Remove from_line parameter.  Various updates.
15183         (linemap_line_start):  New function.
15184         (linemap_lookeup):  Update for new field names.
15185         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
15186         linemap_position_for_column may unpredictably change the current map,
15187         it is cleaner and simpler for us to not cache it in cpp_reader.
15188         (struct cpp_buffer):  New sysp field.
15189         Changed warned_cplusplus_comments and from_stage3 to bitfields.
15190         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
15191         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
15192         current map using linemap_lookup.
15193         (do_linemarker):  Also set buffer's sysp field.
15194         (destringize_and_run):  No longer need to decrement current line.
15195         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
15196         (search_path_head, open_file_failed):  Use buffer's sysp.
15197         (cpp_make_system_header):  Get current map using linemap_lookup.
15198         Also set buffer's sysp flag.
15199         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
15200         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
15201         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
15202         (struct cpp_reader):  ... and adding saved_line_base field.
15203         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
15204         Update accordingly.  Don't adjust line.
15205         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
15206         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
15207         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
15208         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
15209         * cpplex.c (_cpp_lex_direct):  Likewise.
15210         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
15211         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
15212         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
15213         Remove col field as it is now subsumed by src_loc.
15214         * cpperror.c:  Update various field, parameter, and macro names.
15215         (print_location):  If col==0, try SOURCE_COLUMN of line.
15216         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
15217         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
15218         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
15219         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
15220         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
15221         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
15222         (_cpp_lex_direct):  Use linemap_position_for_column.
15223         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
15224         parameter.  Instead get it from the line_table global.  Adjust callers.
15225         (print):  Remove map field.  Replace line field to src_line.
15226         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
15227         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
15228         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
15229         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
15230         * cpptrad.c (copy_comment):  Rename variable.
15231         * c-lex.c (map):  Remove static variable, for same reason we removed
15232         cpp_reader's map field.
15233         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
15234         to call linemap_lookup.
15235         (cb_line_change):  Token's line field replaced by src_loc.
15236         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
15237         Don't save new_map.
15238
15239         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
15240         source_location.
15241
15242 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15243
15244         * config/rs6000/altivec.md (*movv4si_internal): At least one
15245         operand must be register_operand.
15246         (*movv8hi_internal1): Likewise.
15247         (*movv16qi_internal1): Likewise.
15248         (*movv4sf_internal1): Likewise.
15249
15250 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
15251
15252         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
15253         operand.
15254         (movv4hi_internal): Same.
15255         (movv2sf_internal): Same.
15256         (movv1di_internal): Same.
15257
15258 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
15259
15260         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
15261         TARGET_OLDABI consistently.
15262         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
15263         mips_va_arg,override_options,compute_frame_size,
15264         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
15265         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
15266         and TARGET_OLDABI consistently.
15267         * config/mips/mips.md (exception_receiver): Likewise.
15268         * config/mips/linux64.h: Likewise.
15269
15270 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15271
15272         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
15273         Set AltiVec ABI and vrsave as default for ppc64 linux.
15274         (init_cumulative_args): Post error, if try to return
15275         value in AltiVec register without enable AltiVec.
15276         (function_arg_advance): Ditto for passing arguments.
15277
15278 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
15279
15280         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
15281         a label before updating its usage count.
15282
15283 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
15284
15285         * doc/install.texi: Remove extra cd.
15286
15287 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
15288
15289         * c-common.c (vector_size_helper): Remove; call
15290         reconstruct_complex_type() instead.
15291         * tree.c (reconstruct_complex_type): New function
15292         (formerly vector_size_helper() in c-common.c).
15293         (make_vector): Make externally visible.
15294         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
15295
15296 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15297
15298         * config/h8300/h8300-protos.h: Add a prototype for
15299         h8300_regs_ok_for_stm.
15300         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
15301         * config/h8300/h8300.md (stm_h8300s_2_advanced,
15302         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
15303         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
15304         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
15305         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
15306         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
15307         ldm_h8300s_4_normal, ldm_h8300s_4): Use
15308         h8300_regs_ok_for_stm().
15309
15310 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
15311
15312         PR c/14088
15313         * real.c (real_from_string): Look for 'X' as well as 'x' in
15314         hexfloat strings.
15315
15316 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15317
15318         * config/h8300/h8300.md: Remove an incorrect comment about
15319         peephole2.  Add comments.
15320
15321 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
15322
15323         PR/14058
15324         * emit-rtl.c (set_decl_incoming_rtl): New.
15325         * tree.h (set_decl_incoming_rtl): New.
15326         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
15327         DECL_INCOMING_RTL.
15328         * ada/misc.c (adjust_decl_rtl): Likewise.
15329
15330 2004-02-10  Per Bothner  <per@bothner.com>
15331
15332         * c-opts.c (c_common_post_options):   Don't emit working directory
15333         in cpp output if -P was specified.
15334
15335 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15336
15337         PR c/14092
15338         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
15339         negate_expr back to the original type.
15340
15341 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
15342
15343         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
15344         bump retaddr here.
15345
15346 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15347
15348         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
15349         gen_lowpart_SUBREG): Move under the file in which they
15350         are actually declared.
15351
15352 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
15353
15354         * doc/sourcebuild.texi: Add libada documentation.
15355
15356         * doc/install.texi: Update documentation on Ada build, now
15357         that the GNAT lib and tools are built automatically.
15358
15359 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
15360
15361         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
15362         && TARGET_IRIX.
15363
15364 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
15365
15366         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
15367         boundaries outside build_component_ref() call (a macro in ObjC++).
15368
15369 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
15370
15371         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
15372         (init_cumulative_args): Likewise.
15373         (a7_overlap_mentioned_p): Delete prototype.
15374         * config/xtensa/xtensa.c (struct machine_function): Replace
15375         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
15376         Add set_frame_ptr_insn field.
15377         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
15378         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
15379         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
15380         at the function entry and replace the operand with the pseudo.
15381         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
15382         argument and record this flag in CUMULATIVE_ARGS.
15383         (function_arg): Remove result_mode and special-case code to handle
15384         arguments in a7.  Instead, set need_a7_copy flag when there is an
15385         incoming argument in a7.
15386         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
15387         and use the value recorded in cfun->machine->set_frame_ptr_insn.
15388         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
15389         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
15390         special-case code.
15391         (a7_overlap_mentioned_p): Delete.
15392         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
15393         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
15394         arguments to init_cumulative_args and pass "incoming" flag instead.
15395         (BLOCK_REG_PADDING): Delete.
15396         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
15397         checks for reload_in_progress and reload_completed.  Update calls to
15398         xtensa_copy_incoming_a7.
15399         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
15400         to call xtensa_copy_incoming_a7.
15401
15402 2004-02-09  DJ Delorie  <dj@redhat.com>
15403
15404         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
15405         longer modify standard_exec_prefix, standard_bindir_prefix, or
15406         standard_startfile_prefix.
15407
15408 2004-02-09  James E Wilson  <wilson@specifixinc.com>
15409
15410         PR c++/11295
15411         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
15412         to expand_expr_real call, and pass in alt_rtl as last argument.
15413
15414         PR libstdc++/5625
15415         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
15416         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
15417         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
15418         * except.c (expand_builtin_extend_pointer): New.
15419         * except.h (expand_builtin_extend_pointer): Declare.
15420
15421 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
15422
15423         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
15424         unaligned loads and stores.
15425
15426 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15427
15428         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
15429         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
15430
15431         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
15432         * config/mips/iris5.h: ... here.
15433         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
15434
15435         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
15436         * config/mips/iris5.h: ... here.
15437
15438 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15439
15440         * configure.ac: Remove default executable files before AC_PROG_CC.
15441         * configure: Regenerate.
15442
15443 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
15444
15445         PR target/13721
15446         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
15447         print a operand other than a register.
15448
15449 2004-02-09  Roger Sayle  <roger@eyesopen.com>
15450
15451         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
15452         tree code rather than call fold_convert, which doesn't specify a
15453         default floating point to integer conversion.
15454
15455 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
15456
15457         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
15458         code to support SGS assembler.  Reformat adjacent code where possible.
15459         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
15460         definition.
15461         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
15462         for '%#'.
15463         * config/m68k/linux.h, config/m68k/m68k.c,
15464         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
15465         macros and asm_printf() format strings.
15466         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
15467         * config/m68k/linux.h: Update copyright.
15468         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
15469
15470 2004-02-08  Andreas Schwab  <schwab@suse.de>
15471             Bernardo Innocenti  <bernie@develer.com>
15472
15473         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
15474         REGISTER_PREFIX.
15475         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
15476         frame pointer register, overridable by OS targets.
15477         * (M68K_REGNAME): Macro to obtain register name for asm output,
15478         eventually replacing %a6 with M68K_FP_REG_NAME.
15479         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
15480         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
15481         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
15482         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
15483         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
15484
15485 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15486
15487         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
15488         hook_rtx_tree_int_null.
15489         * targhooks.c (default_struct_value_rtx): Remove.
15490         * targhooks.h: Remove the prototype for
15491         default_struct_value_rtx.
15492         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
15493         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
15494         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15495         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
15496         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
15497         config/rs6000/rs6000.c, config/s390/s390.c,
15498         config/stormy16/stormy16.c, config/v850/v850.c,
15499         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
15500         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
15501
15502 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
15503
15504         * README.Portability: Change "ISO C89" to "ISO C90".
15505         * c-parse.in (primary, initelt): Likewise.
15506
15507 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
15508
15509         * real.c (encode_ibm_extended): Normalize the input value before
15510         converting it to a double.  Handle the case where a normal value
15511         rounds to infinity.
15512
15513 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15514
15515         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
15516         warning.
15517         * cse.c (preferrable): Change to preferable. Update all of its
15518         callers.
15519         * genautomata.c (ainsn): Change
15520         first_ainsn_with_given_equialence_num to
15521         first_ainsn_with_given_equivalence_num.  Update all of its
15522         references.
15523
15524 2004-02-08  Jan Hubicka  <jh@suse.cz>
15525
15526         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
15527
15528 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
15529
15530         * function.c (assign_parms): Fix formatting.
15531
15532 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15533
15534         * default.h (PROMOTE_PROTOTYPES): Remove.
15535         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
15536         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
15537         EXPAND_BUILTIN_SAVEREGS): Poison.
15538         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
15539         hook_bool_tree_false.
15540         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15541         * target.h: Replace SETUP_INCOMING_VARARGS with
15542         targetm.calls.setup_incoming_varargs().
15543         * targhooks.c (default_promote_function_return): Remove.
15544         (default_promote_prototypes): Likewise.
15545         (default_struct_value_rtx): Always abort().
15546         (default_expand_builtin_saveregs): Always print an error
15547         message.
15548         (default_setup_incoming_varargs): Do nothing.
15549         (default_pretend_outgoing_varargs_named): Don't depend on
15550         SETUP_INCOMING_VARARGS.
15551         * targhooks.h: Remove the prototype for
15552         default_promote_function_return and
15553         default_promote_prototypes.
15554
15555 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15556
15557         * system.h (SHARED_SECTION_ASM_OP): Poison.
15558         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
15559         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
15560
15561 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15562
15563         Bug 13856
15564         * c-decl.c (diagnose_mismatched_decls): Only give special
15565         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
15566         is also true.
15567         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
15568         DECL_FUNCTION_CODE when defining a built-in function.
15569         Don't update DECL_ESTIMATED_INSNS.
15570         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
15571         FUNCTION_DECLs.
15572         * tree.h: Delete DECL_ESTIMATED_INSNS.
15573         * tree-inline.c (struct inline_data): Delete inlined_insns field.
15574         (expand_call_inline, optimize_inline_calls): Don't update
15575         DECL_ESTIMATED_INSNS nor inlined_insns.
15576         * cgraphunit.c (cgraph_analyze_function): Don't update
15577         DECL_ESTIMATED_INSNS.
15578
15579 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15580
15581         * c-common.c (shadow_warning): Delete.
15582         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
15583         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
15584         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
15585         * c-parse.in (free_parser_stacks): Delete.
15586
15587 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
15588
15589         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
15590         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
15591         Use the top level mkinstalldirs, not the one in the gcc subdir.
15592         * mkinstalldirs: Remove (from the gcc subdir).
15593
15594 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15595
15596         PR middle-end/13696
15597         * fold-const.c (fold_convert): New function to provide type
15598         conversion to the middle-end without using convert.
15599         (negate_expr, associate_trees, size_diffop, omit_one_operand,
15600         operand_equal_for_comparison_p, pedantic_omit_one_operand,
15601         invert_truthvalue, optimize_bit_field_compare, range_binop,
15602         decode_field_reference, make_range, build_range_check, unextend,
15603         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
15604         fold_binary_op_with_conditional_arg, fold_inf_compare,
15605         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
15606         convert with calls to fold_convert.
15607
15608 2004-02-07  Jan Hubicka  <jh@suse.cz>
15609
15610         * genrecog.c (find_operand): add extra argument stop.
15611         (validate_pattern): Verify that mach_dup is duplicating operand
15612         defined lexically earlier.
15613
15614 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15615
15616         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
15617         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15618         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
15619         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
15620         config/ia64/ia64.h, config/ip2k/ip2k.h,
15621         config/iq2000/iq2000.h, config/mips/iris5.h,
15622         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
15623         config/rs6000/aix51.h, config/rs6000/aix52.h,
15624         config/rs6000/darwin.h, config/rs6000/rs6000.h,
15625         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
15626         config/sparc/linux.h, config/sparc/linux64.h,
15627         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
15628         config/xtensa/xtensa.h: Remove the definitions of
15629         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
15630         MAX_WCHAR_TYPE_SIZE.
15631         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15632         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
15633
15634 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
15635
15636         PR bootstrap/13990
15637         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
15638         gen_rtx_NE.
15639
15640 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
15641
15642         * var-tracking.c (vt_add_function_parameters): Surround checkings by
15643         #ifdef ENABLE_CHECKING and #endif.
15644
15645 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15646
15647         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
15648         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
15649         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
15650         integer types and floating point with unsafe_math_optimizations.
15651         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
15652         Optimize A - B as A + (-B), if B is easily negated.
15653
15654 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15655
15656         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
15657         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
15658         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
15659         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
15660         Update copyright.
15661
15662 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15663
15664         * c-ppoutput.c, var-tracking.c: Fix comment typos.
15665
15666 2004-02-06  James E Wilson  <wilson@specifixinc.com>
15667
15668         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
15669         glibc 2.3 or better.
15670
15671 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15672
15673         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
15674         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
15675
15676 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
15677
15678         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
15679         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
15680         (SHLIB_MKMAP_OPTS): Delete.
15681         (TARGET_LIBGCC2_CFLAGS): Add -specs.
15682         (bispecs): Add rule.
15683         * config/rs6000/libgcc-ppc64.ver: New file.
15684         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
15685         (__floatdidf, __floatdisf): Optimize multiply.
15686         (__fixunstfdi): New function.
15687         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
15688         real and imag parts larger than one register.
15689         (function_arg): Correct type of reg used when fp arg split partially
15690         to stack.
15691         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
15692         and __MACH__ or __powerpc64__.
15693
15694 2004-02-06  Roger Sayle  <roger@eyesopen.com>
15695             Ulrich Weigand  <uweigand@de.ibm.com>
15696
15697         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
15698         of gen_highpart or gen_lowpart when the floating point format is
15699         wider than the result mode.
15700
15701 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
15702
15703         * dwarf2out.c (loclabel_num): Move into #ifdef
15704         DWARF2_DEBUGGING_INFO.
15705
15706 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
15707
15708         * objc/objc-act.c (build_super_template) the 'class' field of
15709         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
15710         (get_super_receiver): Likewise.
15711
15712 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15713
15714         * reload1.c (check_eliminable_occurrences): Optimize the reset
15715         of can_eliminate.
15716         (eliminate_regs_in_insn): Likewise.
15717
15718 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
15719             Josef Zlomek  <zlomekj@suse.cz>
15720
15721         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
15722         at the beginning of function, call dwarf2out_var_location for
15723         NOTE_INSN_VAR_LOCATION note.
15724         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
15725         decl_loc_table): New.
15726         (lookup_decl_loc): New function.
15727         (add_var_loc_to_decl): New function.
15728         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
15729         only if can_use_fbreg.
15730         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
15731         functions.
15732         (loc_descriptor): Likewise. Process VAR_LOCATION.
15733         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
15734         (loc_descriptor_from_tree): Call mem_loc_descriptor with
15735         can_use_fbreg == true.
15736         (add_location_or_const_value_attribute): Added parameter enum
15737         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
15738         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
15739         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
15740         with attr == DW_AT_location.
15741         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
15742         if frame_base_decl is defined and has a location list.
15743         (gen_variable_die): Call add_location_or_const_value_attribute with
15744         attr == DW_AT_location.
15745         (dwarf2out_var_location): New function.
15746         (dwarf2out_begin_function): New function.
15747         (dwarf2out_init): Create decl_loc_table.
15748
15749 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15750
15751         * loop.c (force_movables): Transitively increase the priorities of
15752         all insns forces by an insn, not just the first one.
15753
15754 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
15755             Daniel Berlin <dberlin@dberlin.org>
15756
15757         Josef Zlomek  <zlomekj@suse.cz>
15758         * Makefile.in (var-tracking.o): New.
15759         * common.opt (fvar-tracking): New.
15760         * flags.h (flag_var_tracking): New.
15761         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
15762         * opts.c (common_handle_option): Add OPT_fvar_tracking.
15763         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
15764         * rtl.c (note_insn_name): Likewise.
15765         * rtl.def (VAR_LOCATION): New.
15766         * rtl.h (NOTE_VAR_LOCATION): New.
15767         (NOTE_VAR_LOCATION_DECL): New.
15768         (NOTE_VAR_LOCATION_LOC): New.
15769         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
15770         (variable_tracking_main): New exported function.
15771         * timevar.def (TV_VAR_TRACKING): New.
15772         * toplev.c (enum dump_file_index): Added DFI_vartrack.
15773         (dump_file): "vartrack" was added (-dV).
15774         (flag_var_tracking): New.
15775         (f_options): "var-tracking" was added.
15776         (rest_of_handle_variable_tracking): New function.
15777         (rest_of_compilation): Run variable tracking.
15778         (process_options): If user has not specified flag_var_tracking set it
15779         according to optimize, debug_info_level and debug_hooks.
15780         * tree.h (frame_base_decl): New.
15781         * var-tracking.c: New file.
15782         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
15783         (ia64_override_options): Set flags to run variable tracking in machine
15784         dependent reorg instead of toplev.c.
15785         (ia64_reorg): Run variable tracking if wanted.
15786         * doc/invoke.texi: Mention variable tracking in -dV,
15787         add and -fvar-tracking.
15788         * doc/passes.texi: Added variable tracking pass.
15789
15790         Daniel Berlin <dberlin@dberlin.org>
15791         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
15792         * dbxout.c (dbx_debug_hooks): Likewise.
15793         (xcoff_debug): Likewise.
15794         * debug.c (do_nothing_debug_hooks): Likewise.
15795         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15796         * dwarfout.c (dwarf_debug_hooks): Likewise.
15797         * sdbout.c (sdb_debug_hooks): Likewise.
15798         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15799         * final.c (final_scan_insn): Call var_location debug hook for each
15800         NOTE_INSN_VAR_LOCATION.
15801
15802 2004-02-06  Jan Hubicka  <jh@suse.cz>
15803
15804         * flow.c (update_life_info): Allocate reg_deaths when called from
15805         scheudler.
15806         (attempt_auto_inc):  Update life ranges accordingly.
15807
15808 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15809
15810         PR debug/11816
15811         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
15812
15813 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15814
15815         * cfganal.c (flow_call_edges_add): Never split a libcall block.
15816
15817 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
15818
15819         * dwarf2out.c (output_loc_list): Don't use deltas if we have
15820         a separate line info table in use.
15821         Use the correct size for terminators.
15822         (output_die): Use offset, not delta.
15823
15824 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
15825
15826         * doc/invoke.texi: Remove the pni option from -mfpmath=.
15827
15828 2004-02-06  Jan Hubicka  <jh@suse.cz>
15829
15830         * recog.c (split_all_insns): Do not update reg info.
15831         * regrename.c (regrename_optimize): Likewise.
15832         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
15833         * flow.c (struct propagate_block_info): Add insn_num field.
15834         (reg_deaths): New array.
15835         (life_analysis): Free reg_deaths info.
15836         (allocate_reg_life_data): Allocate reg_deaths array.
15837         (propagate_one_insn): Use new array.
15838         (init_propagate_block): Initialize it.
15839         (free_propagate_block_info): Finish compuation of
15840         REG_LIVE_LENGTH
15841         (attempt_auto_inc): Sanity check that REG_INFO is not
15842         computed at same time.
15843         (mark_used_regs): Update new array.
15844
15845         * reg-stack.c (subst_stack_regs): Unshare clobbers before
15846         substitution.
15847
15848 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15849
15850         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
15851         *extendqisi2_short_displ.
15852
15853 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
15854
15855         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
15856         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
15857         (emit_library_call_value_1): Likewise pass nargs.
15858         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
15859         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
15860         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
15861         parameter instead of scanning TYPE_ARGS_TYPES to count args.
15862         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
15863         prototype.
15864         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
15865         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
15866         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
15867         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
15868         INIT_CUMULATIVE_ARGS.
15869         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
15870         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
15871         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
15872         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
15873         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
15874         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
15875         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15876         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
15877         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
15878         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
15879         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
15880         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
15881
15882 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15883
15884         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
15885         possible.
15886
15887 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15888
15889         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
15890         note containing (plus (reg) (const_int)), where reg is an
15891         eliminable reg, then perform the register elimination without
15892         depending on eliminate_regs().
15893
15894 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15895
15896         * config/arc/arc.c (arc_return_in_memory): Check the return
15897         value of int_size_in_bytes against -1.  Don't check
15898         TREE_ADDRESSABLE.
15899         * config/avr/avr.c (avr_return_in_memory): Check the return
15900         value of int_size_in_bytes against -1.
15901         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
15902         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
15903         Likewise.
15904         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
15905         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
15906         Likewise.
15907
15908 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15909
15910         * config/frv/frv-protos.h: Remove the prototype for
15911         frv_setup_incoming_varargs.
15912         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
15913         (frv_setup_incoming_varargs): Make it static.
15914         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
15915
15916 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15917
15918         * config/fr30/fr30-protos.h: Remove the prototype for
15919         fr30_setup_incoming_varargs.
15920         Update the prototypes for fr30_num_arg_regs and
15921         fr30_function_arg_partial_nregs.
15922         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
15923         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15924         (fr30_setup_incoming_varargs): Make it static.
15925         Add argument second_time.  Don't do anything when second_time
15926         is nonzero.
15927         (fr30_num_arg_regs): Change the type of the first argument to
15928         enum machine_mode.
15929         (fr30_function_arg_partial_nregs): Change the type of the
15930         second argument to enum machine_mode.
15931         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
15932         (SETUP_INCOMING_VARARGS): Remove.
15933
15934 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15935
15936         * config/arc/arc-protos.h: Remove the prototype for
15937         arc_setup_incoming_varargs.
15938         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15939         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15940         (arc_setup_incoming_varargs): Make it static.
15941         (arc_external_libcall): Likewise.
15942         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
15943         Remove the commented-out definition of
15944         ASM_OUTPUT_EXTERNAL_LIBCALL.
15945
15946 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
15947
15948         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
15949         to $$(slibdir) in the installation commands.
15950
15951 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15952
15953         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
15954         with inner_regno, not regno.
15955         * rtlanal.c (refers_to_regno_p): Same.
15956
15957 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15958
15959         * config.gcc: Remove i370 support.
15960
15961 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15962
15963         * doc/install.texi:  Update automake and autoconf version
15964         requirements.  Note where to find gcj automake version.
15965
15966 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15967
15968         * Makefile.in (generate-manpages): Move dependencies to ...
15969         (man): here.
15970         * doc/makefile.texi: Document new targets.
15971         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
15972
15973 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15974
15975         PR/13485
15976         Makefile.in (srcextra):  Add a level of indirection to ...
15977         (gcc.srcextra): ... here.
15978         (po-generated): Delete.
15979         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
15980         options.c.
15981         (start.encap): Remove superfluous lang.srcextra dependency.
15982         objc/Make-lang.in (po-generated):  Delete.
15983
15984 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15985
15986         * config/ia64/ia64.c (REG_GP): Remove.
15987
15988 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15989
15990         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
15991
15992 2004-02-05  Devang Patel  <dpatel@apple.com>
15993
15994         * dwarf2out.c (force_type_die): Look up input type itself
15995         instead of root_type() of type.
15996
15997 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
15998
15999         * config/s390/s390.md ("*tmqidi_ext"): New insn.
16000         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
16001         pre-reload splitters are transformed to post-reload
16002         define_insn_and_split patterns.
16003         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
16004
16005 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16006
16007         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
16008         TARGET_PROMOTE_PROTOTYPES.
16009
16010 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16011
16012         PR middle-end/13750
16013         Revert:
16014         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16015         PR pch/13361
16016         * c-typeck.c (constructor_asmspec): Delete.
16017         (struct initializer_stack): Delete field 'asmspec'.
16018         (start_init): Delete saving of asmspec.
16019         (finish_init): Don't update constructor_asmspec.
16020         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16021         * stmt.c (expand_asm): Duplicate strings from tree.
16022         (expand_asm_operands): Likewise.
16023         * tree.c (tree_size): Update computation of size of STRING_CST.
16024         (make_node): Don't make STRING_CST nodes.
16025         (build_string): Allocate string with tree node.
16026         * tree.def (STRING_CST): Update comment.
16027         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16028         (tree_string): Place contents of string in tree node.
16029         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16030         from tree.
16031
16032 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16033
16034         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
16035         msgid.
16036
16037 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
16038
16039         * config/rs6000/altivec.md (*movv4si_internal): At least one
16040         operand must be altivec_register_operand.
16041         (*movv8hi_internal1): Likewise.
16042         (*movv16qi_internal1): Likewise.
16043         (*movv4sf_internal1): Likewise.
16044
16045 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
16046
16047         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
16048         * configure: Regenerate.
16049
16050 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
16051
16052         * doc/install.texi: Update description of --gxx-include-dir to
16053         give correct default value.
16054
16055 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16056
16057         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
16058         8 with MAC_REG.
16059
16060 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16061
16062         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
16063         gen_rtx_PARALLEL.
16064
16065 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16066
16067         * emit-rtl.c: Update the comment about the file.
16068
16069 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16070
16071         * sourcebuild.texi (Test Idioms): Update testcase naming
16072         conventions.
16073
16074 2004-02-04  Per Bothner  <per@bothner.com>
16075
16076         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
16077         * c-ppoutput.c (pp_dir_change):  New function.
16078         * c-common.h (pp_dir_change):  New declaration.
16079         * cpplib.h (struct cpp_options):  Remove working_directory field.
16080         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
16081         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
16082         Don't handle -fworking_directory here, but in c_common_post_options.
16083         (read_original_directory): Don't back up when done.
16084         Don't clear no-longer used working_directory flag.
16085         * cpplib.h:  Update declarations to match.
16086         * c-lex.c (cb_dir_change):  Move to c-opts.c.
16087         (init_c_lex):  Don't set dir_change callback here, since we want
16088         to set it even if flag_preprocess_only.
16089         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
16090         (c_common_post_options):  Set dir_change callback.
16091         Call pp_dir_change if approporiate.
16092         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
16093         unneeded parameter and result. Do LC_RENAME for <built-in>.
16094         (c_common_post_options):  Call cpp_read_main_file here instead.
16095         (c_common_init):  Update accordingly.
16096         (push_command_line_include):  Don't cpp_push_main_file.
16097         Do LC_RENAME rather than LC_LEASE to get back to main file.
16098         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
16099         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
16100         files, but call finish_options for all files.
16101         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
16102         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
16103         cpp_find_main_file + cpp_push_main_file.
16104         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
16105         * opts.c (handle_options):  Only set main_input_filename first time.
16106
16107 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
16108
16109         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
16110
16111 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
16112
16113         * reload.c (find_equiv_reg): When checking for register overlap,
16114         don't index hard_regno_nregs with a pseudo-reg.
16115
16116 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16117
16118         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
16119
16120 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
16121
16122         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
16123         against FIRST_PSEUDO_REGISTER.
16124
16125 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16126
16127         * Makefile.in: Move target, host overrides after per-language
16128         fragments.
16129
16130         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
16131         (GNATLIBCFLAGS): Remove -g.
16132
16133 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16134
16135         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
16136         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16137         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16138         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
16139         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
16140         config/sparc/sparc.c, config/vax/vax.c: Revert the
16141         replacements of "FALLTHRU" with "Fall through" done in the
16142         previous patch.
16143
16144 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16145
16146         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
16147         config/arm/arm.c, config/arm/arm.md,
16148         config/cris/cris-protos.h, config/fr30/fr30.c,
16149         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
16150         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
16151         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
16152         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
16153         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
16154         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
16155         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
16156         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
16157         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
16158         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
16159         config/s390/s390.md, config/sparc/netbsd-elf.h,
16160         config/sparc/openbsd.h, config/sparc/sparc.c,
16161         config/xtensa/lib2funcs.S: Fix comment formatting.
16162
16163 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16164
16165         * config/alpha/alpha.c, config/arc/arc.c,
16166         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
16167         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
16168         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
16169         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
16170         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16171         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16172         config/iq2000/iq2000.c, config/m32r/m32r.c,
16173         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
16174         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
16175         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
16176         config/rs6000/rs6000.h, config/sparc/sparc.c,
16177         config/vax/vax.c: Fix comment typos.  Follow spelling
16178         conventions.
16179
16180 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16181
16182         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
16183         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
16184         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
16185         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
16186         config/arm/fpa.md, config/arm/iwmmxt.md,
16187         config/arm/netbsd-elf.h, config/arm/netbsd.h,
16188         config/m68hc11/m68hc11.md, config/mips/iris5.h,
16189         config/mn10300/mn10300.md, config/rs6000/altivec.md,
16190         config/sparc/netbsd-elf.h: Update copyright.
16191
16192 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16193
16194         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16195         for all modes whose size is greater than 8 bytes if ARCH32.
16196         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
16197         by reference if ARCH32.
16198
16199 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
16200
16201         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
16202
16203 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16204
16205         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
16206         to before adddi3 insn patterns.
16207         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
16208         "reload_insi"): Move to before addsi3 insn patterns.
16209
16210 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
16211
16212         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
16213         parameter.  Use it instead of current_function_is_thunk.
16214         * function.h (struct function): Update documentation for is_thunk.
16215         * tree.h (CALL_FROM_THUNK_P): New macro.
16216         * config/alpha/alpha.c (alpha_sa_mask): Do not check
16217         no_new_pseudos when testing current_function_is_thunk.
16218         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
16219
16220 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16221
16222         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
16223         TARGET_SETUP_INCOMING_VARARGS.
16224
16225 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16226
16227         * emit-rtl.c (gen_rtx): Remove.
16228         * genattrtab.c: Don't mention gen_rtx in a comment.
16229         * rtl.h: Remove the prototype for gen_rtx.
16230         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
16231
16232 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16233
16234         * config/arc/arc.h, config/fr30/fr30.h
16235         (SETUP_INCOMING_VARARGS): Remove the target-independent
16236         comments.
16237         * doc/tm.texi: Don't mention deprecated target macros.
16238
16239 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16240
16241         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
16242         target-independent comment.
16243
16244 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16245
16246         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
16247         mention deprecated target macros.
16248
16249 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16250
16251         * config.gcc: Remove obsolete ports and configurations.
16252         * config/linux-aout.h, config/netware.h,
16253         config/t-linux-gnulibc1, config/d30v/abi,
16254         config/d30v/d30v-protos.h, config/d30v/d30v.c,
16255         config/d30v/d30v.h, config/d30v/d30v.md,
16256         config/d30v/libgcc1.asm, config/d30v/t-d30v,
16257         config/dsp16xx/dsp16xx-modes.def,
16258         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
16259         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
16260         config/i370/README, config/i370/i370-c.c,
16261         config/i370/i370-protos.h, config/i370/i370.c,
16262         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
16263         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
16264         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
16265         config/i386/moss.h, config/i386/netware.h,
16266         config/i386/svr3.ifile, config/i386/svr3dbx.h,
16267         config/i386/svr3gas.h, config/i386/svr3z.ifile,
16268         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
16269         config/i960/i960-c.c, config/i960/i960-coff.h,
16270         config/i960/i960-modes.def, config/i960/i960-protos.h,
16271         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
16272         config/i960/rtems.h, config/i960/t-960bare,
16273         config/m68k/hp310.h, config/m68k/hp320.h,
16274         config/m68k/hp320base.h, config/m68k/m68kv4.h,
16275         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
16276         Remove.
16277         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
16278         doc/md.texi: Remove mentions of obsolete ports.
16279
16280 2004-02-04  Jan Hubicka  <jh@suse.cz>
16281
16282         * alias.c (find_base_term, get_addr):  Do not dereference NULL
16283         pointer when all VALUE's locations has been invalidated.
16284         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
16285
16286 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
16287
16288         * doc/invoke.texi (x86 options): Fix spelling/wording.
16289
16290 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
16291
16292         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
16293         put the original string in a comment.
16294         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
16295         * config/mips/mips.c (mips_output_ascii): Likewise.
16296         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
16297
16298 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16299
16300         * system.h (GIV_SORT_CRITERION): Poison.
16301         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
16302         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
16303
16304 2004-02-03  Roger Sayle  <roger@eyesopen.com>
16305
16306         PR target/9348
16307         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
16308         multiplies with a multiplication of the wrong signedness, its the
16309         signedness of the multiplication that we've performed that needs to
16310         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
16311         if expand_mult_highpart_adjust places the result in target.
16312
16313 2004-02-03  Richard Henderson  <rth@redhat.com>
16314
16315         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
16316
16317 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
16318
16319         * config.gcc (sh[234]l): Use little endian fragments.
16320
16321 2004-02-03  Paul Koning  <pkoning@equallogic.com>
16322
16323         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
16324         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
16325         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
16326         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
16327         floating point format.
16328         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
16329         the above functions.
16330         (output_move_quad): Output float values in correct target format.
16331         (legitimate_const_double_p): New function.
16332         * config/pdp11/pdp11.h: Fix typos.
16333         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
16334         (TARGET_FLOAT_FORMAT): Ditto.
16335         (pdp11_f_format, pdp11_d_format): Add external declarations.
16336         (MAX_REGS_PER_ADDRESS): Corrected.
16337         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
16338         (PRINT_OPERAND): Output float literals in target format.
16339
16340 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
16341
16342         PR c++/13975
16343         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
16344         TI_PRIVATE.
16345         (access_public_node): Redefine.
16346         (access_protected_node): Likewise.
16347         (access_private_node): Likewise.
16348         * tree.c (build_common_tree_nodes): Create access_public_node,
16349         access_protected_node, and access_private_node.
16350
16351 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
16352
16353         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
16354         (MASK_INLINE_INT_DIV_THR): Ditto.
16355         (MASK_INLINE_SQRT_LAT): Ditto.
16356         (MASK_INLINE_SQRT_THR): Ditto.
16357         (MASK_DWARF2_ASM): Ditto.
16358         (MASK_EARLY_STOP_BITS): Ditto.
16359
16360 2004-02-02  Paul Brook  <paul@codesourcery.com>
16361
16362         Merge from csl-arm-branch.
16363
16364         2004-01-30  Paul Brook  <paul@codesourcery.com>
16365
16366         * aof.h (REGISTER_NAMES): Add vfp reg names
16367         (ADDITIONAL_REGISTER_NAMES): Ditto.
16368         * aout.h (REGISTER_NAMES): Ditto.
16369         (ADDITIONAL_REGISTER_NAMES): Ditto.
16370         * arm-protos.h: Update/Add Prototypes.
16371         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
16372         Only allow 0.0 for VFP.
16373         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
16374         (values_fp): Rename from values_fpa.  Update Users.
16375         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
16376         Update users.  Only check valid constants for this hardware.
16377         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
16378         Only allow consts for FPA.
16379         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
16380         Only allow consts for FPA.
16381         (use_return_insn): Check for saved VFP regs.
16382         (arm_legitimate_address_p): Handle VFP DFmode addressing.
16383         (arm_legitimize_address): Ditto.
16384         (arm_general_register_operand): New function.
16385         (vfp_mem_operand): New function.
16386         (vfp_compare_operand): New function.
16387         (vfp_secondary_reload_class): New function.
16388         (arm_float_compare_operand): New function.
16389         (vfp_print_multi): New function.
16390         (vfp_output_fstmx): New function.
16391         (vfp_emit_fstm): New function.
16392         (arm_output_epilogue): Output VPF reg restore code.
16393         (arm_expand_prologue): Output VFP reg save code.
16394         (arm_print_operand): Add 'P'.
16395         (arm_hard_regno_mode_ok): Return modes for VFP regs.
16396         (arm_regno_class): Return classes for VFP regs.
16397         (arm_compute_initial_elimination_offset): Include space for VFP regs.
16398         (arm_get_frame_size): Ditto.
16399         * arm.h (FIXED_REGISTERS): Add VFP regs.
16400         (CALL_USED_REGISTERS): Ditto.
16401         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
16402         (FIRST_VFP_REGNUM): Define.
16403         (LAST_VFP_REGNUM): Define.
16404         (IS_VFP_REGNUM): Define.
16405         (FIRST_PSEUDO_REGISTER): Include VFP regs.
16406         (HARD_REGNO_NREGS): Handle VFP regs.
16407         (REG_ALLOC_ORDER): Add VFP regs.
16408         (enum reg_class): Add VFP_REGS.
16409         (REG_CLASS_NAMES): Ditto.
16410         (REG_CLASS_CONTENTS): Ditto.
16411         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
16412         (REG_CLASS_FROM_LETTER): Add 'w'.
16413         (EXTRA_CONSTRAINT_ARM): Add 'U'.
16414         (EXTRA_MEMORY_CONSTRAINT): Define.
16415         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
16416         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
16417         (REGISTER_MOVE_COST): Ditto.
16418         (PREDICATE_CODES): Add arm_general_register_operand,
16419         arm_float_compare_operand and vfp_compare_operand.
16420         * arm.md (various): Rename as above.
16421         (divsf3): Enable when TARGET_VFP.
16422         (divdf3): Ditto.
16423         (movdfcc): Ditto.
16424         (sqrtsf2): Ditto.
16425         (sqrtdf2): Ditto.
16426         (arm_movdi): Disable when TARGET_VFP.
16427         (arm_movsi_insn): Ditto.
16428         (movsi): Only split with general regs.
16429         (cmpsf): Use arm_float_compare_operand.
16430         (push_fp_multi): Restrict to TARGET_FPA.
16431         (vfp.md): Include.
16432         * vfp.md: New file.
16433         * fpa.md (various): Rename as above.
16434         * doc/md.texi: Document ARM w and U constraints.
16435
16436         2004-01-15  Paul Brook  <paul@codesourcery.com>
16437
16438         * config.gcc: Add with_fpu.  Allow with-float=softfp.
16439         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
16440         Break out of loop when we find a float-abi.  Fix typo.
16441         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
16442         Set -mfloat-abi=.
16443         * doc/install.texi: Document --with-fpu.
16444
16445         2003-01-14  Paul Brook  <paul@codesourcery.com>
16446
16447         * config.gcc (with_arch): Add armv6.
16448         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
16449         * config/arm/arm.c (arm_overrride_options): Ditto.
16450
16451         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
16452
16453         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
16454         (FL_ARCH6): Renamed from FL_ARCH6J.
16455         (arm_arch3m): Renamed from arm_fast_multiply.
16456         (arm_arch6): Renamed from arm_arch6j.
16457         * arm.h: Update all uses of above.
16458         * arm-cores.def: Likewise.
16459         * arm.md: Likewise.
16460
16461         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
16462         not arm6j.  Add entry for arch armv6.
16463
16464         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
16465
16466         * arm.c (arm_emit_extendsi): Delete.
16467         * arm-protos.h (arm_emit_extendsi): Delete.
16468         * arm.md (zero_extendhisi2): Also handle zero-extension of
16469         non-subregs.
16470         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
16471         (thumb_zero_extendhisi2): Only match if not v6.
16472         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
16473         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
16474         (thumb_extendqisi2): Likewise.
16475         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
16476         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
16477         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
16478         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
16479         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
16480         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
16481         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
16482         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
16483         (arm_extendqisi2addsi): Likewise.
16484
16485         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
16486
16487         Revert this change:
16488         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16489         + REG addressing modes.
16490
16491         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16492         + REG addressing modes.
16493
16494         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
16495
16496         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
16497         CONSTANT_P_RTX.
16498
16499         2003-30-12  Paul Brook  <paul@codesourcery.com>
16500
16501         * longlong.h: protect arm inlines with !defined (__thumb__)
16502
16503         2003-30-12  Paul Brook  <paul@codesourcery.com>
16504
16505         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
16506
16507         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
16508
16509         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
16510         change.
16511
16512         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16513
16514         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
16515         to the virtual incoming args pointer for downward stacks.
16516
16517         2003-12-29  Paul Brook  <paul@codesourcery.com>
16518
16519         * config/arm/arm-cores.def: Add cost function.
16520         * config/arm/arm.c (arm_*_rtx_costs): New functions.
16521         (arm_rtx_costs): Remove
16522         (struct processors): Add rtx_costs field.
16523         (all_cores, all_architectures): Ditto.
16524         (arm_override_options): Set targetm.rtx_costs.
16525         (thumb_rtx_costs): New function.
16526         (arm_rtx_costs_1): Remove cases handled elsewhere.
16527         * config/arm/arm.h (processor_type): Add COSTS parameter.
16528
16529         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16530
16531         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
16532         (arm926ejs.md): Include it.
16533         * config/arm/arm926ejs.md: New pipeline description.
16534
16535         2003-12-24  Paul Brook  <paul@codesourcery.com>
16536
16537         * config/arm/arm.c (arm_arch6j): New variable.
16538         (arm_override_options): Set it.
16539         (arm_emit_extendsi): New function.
16540         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
16541         * config/arm/arm.h (arm_arch6j): Declare.
16542         * config/arm/arm.md: Add sign/zero extend insns.
16543
16544         2003-12-23  Paul Brook  <paul@codesourcery.com>
16545
16546         * config/arm/arm.c (all_architectures): Add armv6.
16547         * doc/invoke.texi: Document it.
16548
16549         2003-12-19  Paul Brook  <paul@codesourcery.com>
16550
16551         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
16552         insn patterns to match.
16553         * config/arm/arm-generic.md: Ditto.
16554         * config/arm/cirrus.md: Ditto.
16555         * config/arm/fpa.md: Ditto.
16556         * config/amm/iwmmxt.md: Ditto.
16557         * config/arm/arm1026ejs.md: Ditto.
16558         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
16559         for 11_loadb.
16560
16561         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
16562
16563         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
16564         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
16565         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
16566         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
16567         arm_no_early_mul_dep): Correctly deal with conditional execution,
16568         parallels and single shift operations.
16569         (arm_no_early_alu_shift_value_dep): Define.
16570         * arm.md (attr type): Replace 'normal' with 'alu',
16571         'alu_shift' and 'alu_shift_reg'.
16572         (attr core_cycles): Adjust.
16573         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
16574         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
16575         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
16576         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
16577         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
16578         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
16579         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
16580         attribute appropriately.
16581         * config/arm/arm1026ejs.md (alu_op): Adjust.
16582         (alu_shift_op, alu_shift_reg_op): New.
16583         * config/arm/arm1136.md: Add better bypasses for early
16584         registers. Remove load[234] and store[234] bypasses.
16585         (11_alu_op): Adjust.
16586         (11_alu_shift_op, 11_alu_shift_reg_op): New.
16587
16588         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
16589
16590         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
16591         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
16592         * config/arm/arm.c (arm_no_early_store_addr_dep,
16593         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
16594         * config/arm/arm1026ejs.md: Add load-store bypass.
16595         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
16596         Add bypasses between instructions.
16597
16598         2003-12-10  Paul Brook  <paul@codesourcery.com>
16599
16600         * config/arm/arm.c (arm_fpu_model): New variable.
16601         (arm_fload_abi): New variable.
16602         (target_fpe_name): Rename from target_fp_name.
16603         (target_fpu_name): New variable.
16604         (arm_is_cirrus): Remove.
16605         (fpu_desc): New struct.
16606         (all_fpus): Define.
16607         (pf_model_for_fpu): Define.
16608         (all_loat_abis): Define.
16609         (arm_override_options): Set fp arch flags based on -mfpu=
16610         and -float-abi=.
16611         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16612         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16613         (*): Use new TARGET_* flags.
16614         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
16615         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
16616         (TARGET_SOFT_FLOAT): Ditto.
16617         (TARGET_SOFT_FLOAT_ABI): New.
16618         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
16619         TARGET_HARD_FLOAT.
16620         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
16621         (TARGET_OPTIONS): Add -mfpu=.
16622         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16623         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16624         (arm_pf_model): Define.
16625         (arm_float_abi_type): Define.
16626         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
16627         * config/arm/arm.md: Use new TARGET_* flags.
16628         * config/arm/cirrus.md: Ditto.
16629         * config/arm/fpa.md: Ditto.
16630         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
16631         * config/arm/semi.h (ASM_SPEC): Ditto.
16632         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
16633         (FPUTYPE_DEFAULT): Set to VFP.
16634         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
16635
16636         2003-11-22  Phil Edwards  <phil@codesourcery.com>
16637
16638         PR target/12476
16639         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
16640         'bx' instead of 'b' to avoid branch range restrictions.  Output
16641         the thunk immediately before the thunked-to function.
16642         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
16643         .thumb_func if a thunk is being generated.  Emit .code 16 along
16644         with .thumb_func if a thunk is not being generated.
16645
16646         2003-11-15  Nicolas Pitre <nico@cam.org>
16647
16648         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
16649         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
16650         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
16651         (lshrdi3_iwmmxt): Renamed from lshrdi3.
16652         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
16653
16654         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
16655             Ian Lance Taylor  <ian@wasabisystems.com>
16656
16657         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
16658         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
16659
16660         2003-11-05  Phil Edwards  <phil@codesourcery.com>
16661
16662         * config/arm/arm.md (insn):  Add new V6 instruction names.
16663         (generic_sched):  New attr.
16664         * config/arm/arm-generic.md:  Use generic_sched here.
16665         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
16666         stages of pipeline.  Adjust latency counts accordingly.
16667         * config/arm/arm1136jfs.md:  New file.
16668
16669         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
16670
16671         * config/arm/arm.h (processor_type): New enumeration type.
16672         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
16673         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
16674         (CPP_CPU_ARCH_SPEC): Likewise.
16675         * config/arm/arm.c (arm_tune): New variable.
16676         (all_cores): Use cores.def.
16677         (all_architectures): Add representative processor.
16678         (arm_override_options): Restructure way in which tuning
16679         information is deduced.
16680         * arm.md: Update "insn" and "type" attributes throughout.
16681         (insn): New attribute.
16682         (type): Compute "mult" from "insn" attribute.  Add load2,
16683         load3, load4 alternatives.
16684         (arm automaton): Move to arm-generic.md.
16685         * config/arm/arm-cores.def: New file.
16686         * config/arm/arm-generic.md: Likewise.
16687         * config/arm/arm1026ejs.md: Likewise.
16688
16689 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16690
16691         * doc/invoke.texi (SPARC options): Remove -mflat and
16692         all -mxxx (xxx:chip) options.
16693         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
16694         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
16695         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
16696         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
16697         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
16698         * config/sparc/sparc.c: Likewise.
16699         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
16700         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
16701         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
16702         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
16703         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
16704         (sparc_flat_must_save_register_p): Likewise.
16705         (sparc_flat_compute_frame_size): Likewise.
16706         (sparc_flat_save_restore): Likewise.
16707         (sparc_flat_function_prologue): Likewise.
16708         (sparc_flat_function_epilogue): Likewise.
16709         (sparc_flat_epilogue_delay_slots): Likewise.
16710         (sparc_flat_eligible_for_epilogue_delay): Likewise.
16711         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
16712         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
16713         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
16714         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
16715         (CONDITIONAL_REGISTER_USAGE): Likewise.
16716         (FRAME_POINTER_REQUIRED): Likewise.
16717         (INITIAL_ELIMINATION_OFFSET): Likewise.
16718         (BASE_RETURN_VALUE_REG): Likewise.
16719         (BASE_OUTGOING_VALUE_REG): Likewise.
16720         (BASE_PASSING_ARG_REG): Likewise.
16721         (BASE_INCOMING_ARG_REG): Likewise.
16722         (INCOMING_REGNO): Likewise.
16723         (OUTGOING_REGNO): Likewise.
16724         (LOCAL_REGNO): Likewise.
16725         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
16726         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
16727         (EPILOGUE_USES): Likewise.
16728         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
16729         ("flat" attribute): Delete.
16730         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
16731         handling.
16732         (call followed by jump define_peephole's): Delete.
16733         (exception_receiver): Likewise.
16734         (builtin_setjmp_receiver): Likewise.
16735         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
16736
16737 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
16738
16739         PR c/11658
16740         PR c/13994
16741         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
16742         on langhooks.h.
16743         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
16744         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
16745         Include langhooks.h.  Replace c_common_truthvalue_conversion
16746         with the truthvalue_conversion language hook throughout.
16747         (expr_no_commas): Call default_conversion before save_expr
16748         for the first term of the production 'x ? : y'.
16749         * c-common.c (c_common_truthvalue_conversion): Remove
16750         obsolete block.  Invoke recursively the hook instead
16751         of this function.
16752         * c-convert.c (convert): handle ERROR_MARK_NODE.
16753         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
16754         returned by the truthvalue_conversion language hook.
16755         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16756         c_objc_common_truthvalue_conversion.
16757         * c-objc-common.c (c_objc_common_truthvalue_conversion):
16758         New function.
16759         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
16760         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16761         c_objc_common_truthvalue_conversion.
16762
16763 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16764
16765         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
16766         of gen_rtx.
16767         (LIBCALL_VALUE): Likewise.
16768         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
16769         gen_rtx_CC0 instead of gen_rtx.
16770         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
16771         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
16772         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
16773         gen_rtx.
16774         (m68hc11_emit_logical): Likewise.
16775
16776 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16777
16778         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
16779         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
16780         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
16781         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
16782         config/mips/mips.md, config/mmix/mmix.c,
16783         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
16784         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
16785         config/rs6000/altivec.md, config/s390/s390.c,
16786         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
16787         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
16788         Use const0_rtx instead of GEN_INT (0).  Do the same for other
16789         constants that are readily available.
16790
16791 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16792
16793         * doloop.c, optabs.c, regmove.c, sched-deps.c,
16794         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
16795         instead of GEN_INT (0).  Do the same for other constants that
16796         are readily available.
16797
16798 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16799
16800         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
16801         gen_rtx.
16802         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
16803         instead of gen_rtx.
16804         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
16805         gen_rtx.
16806         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
16807         gen_rtx_ASHIFT instead of gen_rtx.
16808         (udivmodqi4): Likewise.
16809
16810 2004-02-02  Richard Henderson  <rth@redhat.com>
16811
16812         PR target/13789
16813         * expr.c (store_expr): Use force_operand before emit_move_insn.
16814
16815 2004-02-02  Jeff Law  <law@redhat.com>
16816             Roger Sayle  <roger@eyesopen.com>
16817
16818         * tree.c (commutative_tree_code, associative_tree_code): New
16819         functions.
16820         (iterative_hash_expr): Use commutative_tree_code.
16821         * tree.h (commutative_tree_code, associative_tree_code): Declare.
16822         * fold-const.c (operand_equal_p): Use commutative_tree_code
16823         rather than inlining the commutativity check.
16824         (fold): Likewise.
16825
16826 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16827
16828         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
16829         * config/frv/frv-protos.h: Remove the prototype for
16830         frv_function_arg_keep_as_reference.
16831         * config/frv/frv.c (frv_function_arg_keep_as_reference):
16832         Remove.
16833         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
16834         * config/stormy16/stormy16.h: Remove the commented-out
16835         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
16836
16837 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
16838
16839         PR target/13914
16840         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
16841         for retaddr_column.
16842
16843 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16844
16845         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
16846         gen_rtx.
16847
16848 2004-02-02  Eric Christopher  <echristo@redhat.com>
16849             Zack Weinberg  <zack@codesourcery.com>
16850
16851         * c-opts.c (c_common_handle_option): Add -finput-charset.
16852         * c.opt: Ditto.
16853         * cppcharset.c (one_iso88591_to_utf8): Remove.
16854         (convert_iso88591_utf8): Ditto.
16855         (conversion_tab): Remove 8859-1 converter.
16856         (_cpp_input_to_utf8): Remove.
16857         (_cpp_init_iconv_buffer): Ditto.
16858         (_cpp_close_iconv_buffer): Ditto.
16859         (_cpp_convert_input): New function.
16860         (_cpp_default_encoding): Ditto.
16861         * cpphash.h: Add/remove prototypes for above.
16862         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
16863         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
16864         for narrow execution and input character sets.
16865         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
16866         * doc/cppopts.texi: Document -finput-charset.
16867
16868 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
16869
16870         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
16871         against FIRST_PSEUDO_REGISTER.
16872
16873 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16874
16875         * doc/invoke.texi (SPARC options): Further improve.
16876
16877 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16878
16879         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
16880         config/h8300/h8300.c, config/ip2k/ip2k.md,
16881         config/iq2000/iq2000.c, config/mips/mips.c,
16882         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
16883         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
16884         config/v850/v850.md: Fix indentation.
16885
16886 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16887
16888         * config/sparc/sparc.c (function_arg_slotno): Align TImode
16889         arguments on a 16-byte boundary in the parameter array if ARCH64.
16890         Split handling of TFmode.
16891
16892 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
16893
16894         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
16895         Don't test CONSTANT_P (x).
16896         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
16897         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
16898         Fix misindentation.
16899
16900 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16901
16902         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
16903
16904 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16905
16906         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
16907         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
16908         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
16909         config/iq2000/iq2000.c, config/m32r/m32r.c,
16910         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
16911         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
16912         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
16913         config/stormy16/stormy16.c, config/v850/v850.md,
16914         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
16915
16916 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16917
16918         * config/mcore/mcore.c (block_move_sequence): Replace
16919         gen_rtx_CONST_INT with GEN_INT.
16920
16921 2004-02-02  Jan Hubicka  <jh@suse.cz>
16922
16923         * alias.c (record_set): Use hard_regno_nregs.
16924         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
16925         * builtins.c (apply_args_size): Likewise.
16926         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
16927         mark_set_regs, add_stored_regs, mark_referenced_regs,
16928         insert_restore, insert_save, insert_one_insn): Likewise.
16929         * cfgcleanup.c: Include regs.h
16930         (mark_effect, mentions_nonequal_regs): Likewise.
16931         * cfgrtl.c (mark_killed_regs): Likewise
16932         * combine.c (update_table_tick, record_value_for_reg,
16933         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
16934         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
16935         reg_bitfield_target_p, distribute_notes): Likewise.
16936         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
16937         exp_equiv_p, cse_insn): Likewise.
16938         * cselib.c (cselib_lookup): Likewise.
16939         (cselib_invalidate_regno, cselib_record_set): Likewise.
16940         * df.c (df_ref_record): Likewise.
16941         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
16942         Likewise.
16943         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
16944         count_or_remove_death_notes_bb): Likewise.
16945         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
16946         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
16947         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
16948         * integrate.c (mark_stores): Likewise.
16949         * jump.c (delete_prior_computation): Likewise.
16950         * lcm.c (reg_dies, reg_becomes_live): Likewise.
16951         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
16952         * loop.c (LOOP_REGNO_NREGS): Likewise.
16953         * postreload.c (reload_combine, reload_combine_note_store,
16954         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
16955         * ra-colorize.c (combine, color_usable_p, get_free_reg,
16956         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
16957         try_recolor_web, insert_coalesced_conflicts, check_colors,
16958         break_precolored_alias): Likewise.
16959         * ra-debug.c: Include regs.h
16960         (ra_print_rtx_object): Likewise.
16961         * ra-rewrite (choose_spill_colors): Likewise.
16962         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
16963         * ra.c (init_ra): Likewise.
16964         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
16965         peep2_find_free_register): Likewise.
16966         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
16967         * regclass.c (hard_regno_nregs): New array.
16968         (init_reg_modes_once): Initialize it.
16969         (choose_hard_reg_mode): Use it.
16970         (record_reg_classes): Likewise.
16971         * regmove.c (mark_flags_life_zones): Likewise.
16972         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
16973         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
16974         copy_value, maybe_mode_change, find_oldest_value_reg,
16975         copyprop_hardreg_forward_1):
16976         * regs.h (hard_regno_nregs): Declare.
16977         * realod.c (reload_inner_reg_of_subreg): Use it.
16978         (push_reload, combine_reloads, find_dummy_reload,
16979         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
16980         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
16981         reload_adjust_reg_for_mode): Likewise.
16982         * reload1.c (compute_use_by_pseudos, count_pseudo,
16983         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
16984         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
16985         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
16986         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
16987         delete_output_reload): Likewise.
16988         * resource.c (update_live_status, mark_referenced_resources,
16989         mark_set_resources, mark_target_live_regs): Likewise.
16990         * rtlanal.c:  Include regs.h
16991         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
16992         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
16993         subreg_regno_offset, subreg_offset_representable_p,
16994         hoist_test_store): Likewise.
16995         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
16996         * sched-rgn.c (check_live_1, update_live_1): Likewise.
16997         * stmt.c: Include regs.h
16998         (decl_conflicts_with_clobbers_p): Likewise.
16999         * varasm.c (make_decl_rtl): Likewise.
17000         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
17001
17002 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17003
17004         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
17005         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
17006         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
17007         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
17008         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
17009         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
17010         config/iq2000/iq2000.h, config/m32r/m32r.c,
17011         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
17012         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
17013         config/mcore/mcore.c, config/mcore/mcore.h,
17014         config/mcore/mcore.md, config/mips/mips.c,
17015         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
17016         config/rs6000/rs6000.c, config/s390/s390.c,
17017         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
17018         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
17019         "gen_rtx (FOO, " with "gen_rtx_FOO (".
17020
17021 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17022
17023         * config/h8300/h8300.md (two peephole2's): New.
17024
17025 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
17026
17027         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
17028         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
17029         (ASM_CPU_SPEC): Likewise
17030         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
17031         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
17032
17033 2004-02-01  Roger Sayle  <roger@eyesopen.com>
17034
17035         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
17036         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
17037         (expand_builtin): Always call expand_builtin_pow.
17038
17039 2004-02-01  Roger Sayle  <roger@eyesopen.com>
17040
17041         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
17042         BUILT_IN_SIGNBITL): New GCC builtins.
17043         * builtins.c (expand_builtin_signbit): New function to RTL expand
17044         calls to signbit, signbitf and signbitl as inline intrinsics.
17045         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
17046         (fold_builtin_signbit): New function to perform constant folding
17047         of signbit, signbitf and signbitl.
17048         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
17049
17050         * doc/extend.texi: Document new signbit{,f,l} builtins.
17051
17052 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
17053
17054         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
17055
17056 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
17057
17058         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
17059         "mips_const_double_ok" and "simple_memory_operand", which were
17060         removed from the MIPS port with the mips-3_4-rewrite branch merge.
17061         * config/mips/mips.c (mips16_lay_out_constants): Update comment
17062         for removal of simple_memory_operand.
17063
17064 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17065
17066         * config/c4x/c4x.md: Use GEN_INT instead of
17067         gen_rtx (CONST_INT, ...).
17068
17069 2004-01-31  Richard Henderson  <rth@redhat.com>
17070
17071         * varasm.c (output_constant_pool): Don't zap the pool.
17072
17073 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17074
17075         * genrecog.c (decision_type): Add DT_const_int.
17076         (write_cond) [DT_const_int]: Print a comparison against small
17077         constant.
17078         (write_node): Simplify comparisons against small constants
17079         before printing tests.
17080
17081 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17082
17083         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
17084         instead of gen_rtx_CONST_INT.
17085
17086 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17087
17088         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
17089         instead of gen_rtx_CONST_INT.
17090
17091 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17092
17093         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
17094         hook_bool_CUMULATIVE_ARGS_false.
17095         * targhooks.c (default_strict_argument_naming): Rename to
17096         hook_bool_CUMULATIVE_ARGS_false.
17097         * targhooks.h: Update the prototype for
17098         default_strict_argument_naming.
17099
17100 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17101
17102         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17103         * config/sh/sh.h: Likewise.
17104         * config/sh/sh.md: Likewise.
17105
17106 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
17107
17108         * doc/invoke.texi (SPARC options): Restructure and update.
17109
17110 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17111
17112         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
17113         STRICT_ARGUMENT_NAMING): Poison.
17114         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
17115         hook_bool_tree_false.
17116         * targhooks.c (default_promote_function_args): Remove.
17117         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
17118         Don't check incoming.
17119         (default_strict_argument_naming): Don't use
17120         STRICT_ARGUMENT_NAMING.
17121         * targhooks.h: Remove the prototype for
17122         default_promote_function_args.
17123
17124 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17125
17126         * config/i386/i386-protos.h: Remove the prototype for
17127         ix86_setup_incoming_varargs.
17128         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
17129         (ix86_setup_incoming_varargs): Make it static.
17130         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
17131
17132 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17133
17134         * alloc-pool.c: Fix comment typos.
17135         * builtin-types.def: Likewise.
17136         * builtins.def: Likewise.
17137         * c-pretty-print.c: Likewise.
17138         * df.h: Likewise.
17139         * reload1.c: Likewise.
17140
17141 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17142
17143         * doc/invoke.texi: Follow spelling conventions.
17144         * doc/tm.texi: Likewise.
17145
17146 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17147
17148         * doc/install.texi: Fix typos.
17149         * doc/invoke.texi: Likewise.
17150
17151 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
17152
17153         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
17154         registers as pointers.
17155         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
17156
17157 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
17158
17159         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
17160         and restore it to gen_lowpart_general on exit.
17161         (gen_lowpart_for_combine): Adjust all callers to go through
17162         gen_lowpart.
17163         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
17164         and restore it to gen_lowpart_general on exit.
17165         (gen_lowpart_if_possible): Adjust all callers to go through
17166         gen_lowpart.
17167         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
17168         (gen_lowpart): Declare as pointer to function, initialized to
17169         gen_lowpart_general.
17170         * rtl.h (gen_lowpart): Declare as pointer to function.
17171
17172 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17173
17174         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17175         * calls.c: Likewise.
17176         * emit-rtl.c: Likewise.
17177         * function.c: Likewise.
17178         * reload1.c: Likewise.
17179         * config/i386/cygming.h: Likewise.
17180         * config/i386/i386.c: Likewise.
17181         * config/i386/winnt.c: Likewise.
17182
17183 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
17184
17185         PR bootstrap/9249
17186         * doc/install.texi: document --enable-__cxa_atexit option.
17187         * configure.ac: Disable __cxa_atexit if not supported.
17188         * configure: Regenerate.
17189
17190 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
17191
17192         * ggc-zone.c (ggc_free): New function.
17193
17194 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17195
17196         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
17197         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
17198         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
17199         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
17200         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
17201         config/alpha/alpha.c, config/alpha/alpha.h,
17202         config/alpha/alpha.md, config/alpha/unicosmk.h,
17203         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
17204         config/c4x/c4x-protos.h, config/c4x/c4x.md,
17205         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
17206         config/frv/frvend.c, config/i386/cygming.h,
17207         config/i386/djgpp.h, config/i386/emmintrin.h,
17208         config/i386/gthr-win32.c, config/i386/i386-interix.h,
17209         config/i386/i386-protos.h, config/i386/openbsd.h,
17210         config/i386/winnt.c, config/i386/xm-mingw32.h,
17211         config/i386/xmmintrin.h, config/ia64/ia64.md,
17212         config/iq2000/iq2000.md, config/m32r/m32r.md,
17213         config/m68k/m68k.md, config/mcore/mcore-elf.h,
17214         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
17215         config/mips/iris5gas.h, config/mips/iris6.h,
17216         config/mips/iris6gas.h, config/mips/linux.h,
17217         config/mips/mips.md, config/mips/netbsd.h,
17218         config/mips/openbsd.h, config/mips/windiss.h,
17219         config/pa/fptr.c, config/rs6000/aix.h,
17220         config/rs6000/altivec.h, config/rs6000/darwin.h,
17221         config/rs6000/xcoff.h, config/s390/s390-protos.h,
17222         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
17223         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
17224         config/sparc/sol2.h: Update copyright.
17225
17226 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17227
17228         * Makefile.in (abs_docdir, abs_srcdir): Define.
17229         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
17230
17231 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17232
17233         * genconfig.c (main): Have CC0_P check its operand even on a
17234         target without cc0.
17235
17236 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17237
17238         * config/alpha/alpha.c: Remove mentions of deprecates macros
17239         in comments, remove some target-independent comments about target
17240         macros, and/or add minimal function comments for target hook
17241         implementations.
17242         * config/avr/avr.c: Likewise.
17243         * config/ia64/ia64.h: Likewise.
17244         * config/ip2k/ip2k.c: Likewise.
17245         * config/iq2000/iq2000.c: Likewise.
17246         * config/m32r/m32r.h: Likewise.
17247         * config/m68hc11/m68hc11.c: Likewise.
17248         * config/mcore/mcore.c: Likewise.
17249         * config/mmix/mmix.c: Likewise.
17250         * config/mn10300/mn10300.c: Likewise.
17251         * config/pa/pa.c: Likewise.
17252         * config/pdp11/pdp11.c: Likewise.
17253         * config/rs6000/rs6000.h: Likewise.
17254         * config/sh/sh.c: Likewise.
17255         * config/sh/sh.h: Likewise.
17256         * config/sparc/sparc.c: Likewise.
17257         * config/sparc/sparc.h: Likewise.
17258         * config/stormy16/stormy16.c: Likewise.
17259         * config/xtensa/xtensa.c: Likewise.
17260
17261 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17262
17263         PR optimization/12147
17264         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
17265         RELOAD_FOR_OPADDR_ADDR.
17266         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
17267         might be reused as RELOAD_FOR_OPADDR_ADDR register.
17268
17269 2004-01-30  Jan Hubicka  <jh@suse.cz>
17270
17271         * reload.c (get_secondary_mem): Fix updating of
17272         secondary_memlocs_elim_used.
17273
17274 2004-01-30  Richard Henderson  <rth@redhat.com>
17275
17276         * varasm.c (struct rtx_const, struct pool_constant): Remove.
17277         (MAX_RTX_HASH_TABLE): Remove.
17278         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
17279         (first_pool, last_pool, pool_offset): Remove.
17280         (struct rtx_constant_pool): Split out from ...
17281         (struct varasm_status): ... here.  Reference one via pointer.
17282         (struct constant_descriptor_rtx): Merge struct pool_constant.
17283         (SYMHASH): Remove.
17284         (decode_rtx_const): Remove.
17285         (const_hash_rtx, compare_constant_rtx): Remove.
17286         (record_constant_rtx): Remove.
17287         (const_desc_rtx_hash, const_desc_rtx_eq): New.
17288         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
17289         (const_rtx_hash_1, const_rtx_hash): New.
17290         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
17291         (simplify_subtraction): Use simplify_rtx.
17292         (force_const_mem): Rewrite to use new data structures.
17293         (find_pool_constant): Likewise.
17294         (get_pool_constant, get_pool_constant_mark,
17295         get_pool_constant_for_function, get_pool_mode,
17296         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
17297         (output_constant_pool_2): Split out from output_constant_pool.
17298         (output_constant_pool_1): Likewise.  Use new pool datastructures.
17299         (output_constant_pool): Zap entire pool datastructure.
17300         (mark_constant): Use new pool datastructures.
17301         (mark_constants): Use for_each_rtx.
17302         (mark_constant_pool): Use new pool datastructures.
17303
17304 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
17305
17306         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
17307         Copy operands[1] to pseudo for simplify_gen_subreg.
17308
17309 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17310
17311         * gcse.c (bypass_block): Fix a typo in the previous check-in
17312         to the file.
17313
17314 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
17315
17316         * toplev.c: Include alloc-pool.h.
17317         * Makefile.in (toplev.c): Update dependencies.
17318
17319 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17320
17321         * combine.c (simplify_shift_const, case XOR): Be careful when
17322         commuting XOR with ASHIFTRT.
17323
17324 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17325             Eric Botcazou  <ebotcazou@libertysurf.fr>
17326
17327         * config/sparc/sparc-protos.h: Remove the prototype for
17328         sparc_builtin_saveregs.
17329         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17330         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17331         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17332         (TARGET_STRUCT_VALUE_RTX): Likewise.
17333         (TARGET_RETURN_IN_MEMORY): Likewise.
17334         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17335         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17336         (sparc_builtin_saveregs): Make it static.
17337         (sparc_promote_prototypes): New.
17338         (sparc_struct_value_rtx): Likewise.
17339         (sparc_return_in_memory): Likewise.
17340         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
17341         (PROMOTE_FUNCTION_RETURN): Likewise.
17342         (RETURN_IN_MEMORY): Likewise.
17343         (STRUCT_VALUE): Likewise.
17344         (STRUCT_VALUE_INCOMING): Likewise.
17345         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17346         (STRICT_ARGUMENT_NAMING): Likewise.
17347         (PROMOTE_PROTOTYPES): Likewise.
17348
17349         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
17350
17351 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17352
17353         PR c/12818
17354         * varasm.c (const_hash_1) <STRING_CST>: Use the
17355         address to compute the hash value if flag_writable_strings.
17356         (compare_constant) <STRING_CST>: Compare the addresses
17357         if flag_writable_strings.
17358         (build_constant_desc): Do not copy the expression for a
17359         STRING_CST if flag_writable_strings.
17360
17361 2004-01-30  Jan Hubicka  <jh@suse.cz>
17362
17363         * alloc-pool.c: Include hashtab.h
17364         (alloc_pool_descriptor): New structure
17365         (alloc_pool_hash): New global variable.
17366         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
17367         (create_alloc_pool): Update statistics.
17368         (free_alloc_pool): Likewise.
17369         (pool_alloc): Likewise.
17370         (output_info): New structure
17371         (print_statistics, dump_alloc_pool_statistics): New function.
17372         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
17373         (dump_alloc_pool_statistics): Declare.
17374         * toplev.c (finalize):  Dump statistics.
17375
17376         * reload.c (secondary_memlocs_elim_used): New static variable.
17377         (get_secondary_mem): Update it.
17378         (find_reloads): Use it.
17379
17380 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
17381
17382         * toplev.c: Fix broken checkin of 2003-12-30, again.
17383
17384 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17385
17386         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
17387         s390*-*-* targets by specifying a 'nop' insn.
17388         * configure: Regenerate.
17389
17390 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17391
17392         PR target/11475
17393         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
17394
17395 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17396
17397         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
17398         of addr when creating MEM copy.
17399
17400 2004-01-29  Devang Patel  <dpatel@apple.com>
17401
17402         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
17403
17404 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17405
17406         PR inline-asm/6162
17407         * reload.c (find_reloads): Only support one pair of commutative
17408         operands.
17409
17410 2004-01-29  Roger Sayle  <roger@eyesopen.com>
17411
17412         PR java/13824
17413         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
17414         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
17415         recursion.
17416
17417 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17418
17419         * config/frv/frv.c: Don't mention deprecated macros in
17420         comments.  Remove some target-independent comments about
17421         target macros.
17422         * config/frv/frv.h: Likewise.
17423
17424 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17425
17426         * cfghooks.c (split_block): Set probability and count of the
17427         new edge.
17428
17429 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
17430
17431         * dwarf2out.c (struct die_struct): Added field decl_id.
17432         (decl_die_table): Changed to hash table.
17433         (decl_die_table_allocated): Deleted.
17434         (decl_die_table_in_use): Deleted.
17435         (DECL_DIE_TABLE_INCREMENT): Deleted.
17436         (decl_die_table_hash): New function.
17437         (decl_die_table_eq): New function.
17438         (lookup_decl_die): Lookup in a hash table.
17439         (equate_decl_number_to_die): Insert into a hash table.
17440         (dwarf2out_init): Init hash table decl_die_table.
17441
17442 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17443
17444         PR optimization/13424
17445         * expr.c (store_constructor): Revert 2003-12-03 change.
17446
17447         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
17448         expected before returning early.  Avoid sharing RTL if they
17449         need to be changed.
17450
17451         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
17452         handling so that memory attributes are preserved.  Don't call
17453         ix86_set_move_mem_attrs.
17454         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
17455         (ix86_expand_clrstr): Rename src argument to
17456         dst.  Rework rep_stos and strset handling so that memory attributes
17457         are preserved.
17458         (ix86_expand_strlen): Pass src argument to
17459         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
17460         memory attributes are preserved.
17461         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
17462         change_address instead of gen_rtx_MEM.
17463         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
17464         expanders.
17465         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
17466         strmovqi, strmovqi_rex64): Remove.
17467         (rep_mov*, strmov*): Prefix insn names with *.
17468         (strset, strset_singleop, rep_stos): New expanders.
17469         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
17470         strsetqi, strsetqi_rex64): Remove.
17471         (rep_stos*, strset*): Prefix insn names with *.
17472         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
17473         to SImode.
17474         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
17475         are preserved.
17476         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
17477         Prefix insn names with *.
17478         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
17479         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
17480         (strlenqi_1): New expander.
17481         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
17482
17483 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17484
17485         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
17486         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
17487         verify_flow_info): Declaration removed.
17488         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
17489         (debug_bb, debug_bb_n): Add argument to dump_bb call.
17490         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
17491         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
17492         instead of delete_block.
17493         * cfghooks.c: Include timevar.h and toplev.h.
17494         (cfg_hooks): Define here.
17495         (verify_flow_info, dump_bb): Moved from cfg.c.
17496         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17497         split_block, split_block_after_labels, move_block_after,
17498         delete_basic_block, split_edge, create_basic_block,
17499         create_empty_bb, can_merge_blocks_p, merge_blocks,
17500         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17501         New functions.
17502         * cfghooks.h (struct cfg_hooks): Added fields name,
17503         make_forwarder_block, tidy_fallthru_edge and
17504         move_block_after. Changed type of verify_flow_info, dump_bb,
17505         split_block fields. Renamed cfgh_split_edge and delete_block
17506         fields.
17507         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17508         split_block, delete_block, split_edge, create_basic_block,
17509         can_merge_blocks_p, merge_blocks): Macros removed.
17510         (cfg_hooks): Do not export.
17511         (verify_flow_info, dump_bb, redirect_edge_and_branch,
17512         redirect_edge_and_branch_force, split_block, split_block_after_labels,
17513         move_block_after, delete_basic_block, split_edge, create_basic_block,
17514         create_empty_bb, can_merge_blocks_p, merge_blocks,
17515         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17516         Declare.
17517         (cfg_layout_rtl_cfg_hooks): Declare.
17518         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
17519         New functions.
17520         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
17521         (redirect_edge_with_latch_update): Removed.
17522         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
17523         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
17524         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
17525         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
17526         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
17527         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
17528         cfghooks.c.
17529         (rtl_create_basic_block): Coding style fix.
17530         (rtl_tidy_fallthru_edge, rtl_move_block_after,
17531         rtl_make_forwarder_block): New functions.
17532         (update_cfg_after_block_merging): Removed.
17533         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
17534         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
17535         to dump_bb.
17536         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
17537         find_if_case_2): Don't update dominators.
17538         * timevar.def (TV_CFG_VERIFY): New.
17539         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
17540         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
17541         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
17542         (remove_bbs): Don't call remove_bbs.
17543         (create_preheader): Use make_forwarder_block.
17544         (mfb_keep_just, mfb_update_loops): New static functions.
17545
17546 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17547
17548         * config/avr/avr.h: Remove target-independent comments about
17549         target macros.
17550
17551 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
17552
17553         * timevar.c (timevar_print): Mention when checking is enabled.
17554
17555 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
17556
17557         * c-lex.c (c_lex): Rename to...
17558         (c_lex_with_flags): Add new parameter to get CPP flags.
17559         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
17560         * c-pragma.h (c_lex_with_flags): Declare.
17561
17562 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17563
17564         * config/mcore/mcore.c (mcore_external_libcall): Add a
17565         comment.
17566         (mcore_return_in_memory): Likewise.
17567
17568 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17569
17570         * config/mcore/mcore-protos.h: Remove the prototype for
17571         mcore_setup_incoming_varargs.
17572         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17573         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
17574         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17575         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17576         (TARGET_STRUCT_VALUE_RTX): Likewise.
17577         (TARGET_RETURN_IN_MEMORY): Likewise.
17578         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17579         (mcore_setup_incoming_varargs): Make it static.  Receive the
17580         first argument by reference.  Add argument second_time.
17581         (mcore_external_libcall): New.
17582         (mcore_return_in_memory): Likewise.
17583         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
17584         (PROMOTE_FUNCTION_RETURN): Likewise.
17585         (STRUCT_VALUE): Likewise.
17586         (RETURN_IN_MEMORY): Likewise.
17587         (SETUP_INCOMING_VARARGS): Likewise.
17588         (PROMOTE_PROTOTYPES): Likewise.
17589         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17590
17591 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17592
17593         * config/m32r/m32r-protos.h: Remove the prototype for
17594         m32r_setup_incoming_varargs.
17595         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
17596         (TARGET_STRUCT_VALUE_RTX): Likewise.
17597         (TARGET_RETURN_IN_MEMORY): Likewise.
17598         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17599         (m32r_return_in_memory): New.
17600         (m32r_setup_incoming_varargs): Make it static.
17601         * config/m32r/m32r.h: Remove #undef of
17602         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
17603         definitions of PROMOTE_FUNCTION_ARGS and
17604         PROMOTE_FUNCTION_RETURN.
17605         (PROMOTE_PROTOTYPES): Remove.
17606         (RETURN_IN_MEMORY): Likewise.
17607         (STRUCT_VALUE): Likewise.
17608
17609 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17610
17611         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
17612         (TARGET_STRUCT_VALUE_RTX): Likewise.
17613         (m68k_struct_value_rtx): Likewise.
17614         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
17615         STRUCT_VALUE_REGNUM.
17616         (PROMOTE_PROTOTYPES): Remove.
17617         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
17618         STRUCT_VALUE_REGNUM.
17619         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
17620         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
17621
17622 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17623
17624         * config/stormy16/stormy16.c
17625         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
17626         TARGET_BUILD_BUILTIN_VA_LIST.
17627
17628 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17629
17630         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
17631         (TARGET_STRUCT_VALUE_RTX): Likewise.
17632         (TARGET_RETURN_IN_MEMORY): Likewise.
17633         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17634         (v850_return_in_memory): Likewise.
17635         (v850_setup_incoming_varargs): Likewise.
17636         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
17637         (SETUP_INCOMING_VARARGS): Likewise.
17638         (RETURN_IN_MEMORY): Likewise.
17639         (STRUCT_VALUE): Likewise.
17640
17641 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17642
17643         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
17644         (fr30_setup_incoming_varargs): Don't use
17645         STRICT_ARGUMENT_NAMING.
17646         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
17647         (STRICT_ARGUMENT_NAMING): Likewise.
17648
17649 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17650
17651         * config/frv/frv-protos.h: Remove the prototype for
17652         frv_expand_builtin_saveregs.
17653         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
17654         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17655         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
17656         STRUCT_VALUE_REGNUM.
17657         (frv_expand_builtin_saveregs): Make it static.
17658         (frv_struct_value_rtx): New.
17659         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
17660
17661 2004-01-29  Jan Hubicka  <jh@suse.cz>
17662
17663         PR c++/12850
17664         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
17665         initial pointers.
17666         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
17667         for functions that will be only inlined.
17668         (cgraph_mark_function_to_output): Likewise.
17669         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
17670         do not clear function body.
17671         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
17672         (tree_rest_of_compilation): Reorganize the logic releasing function
17673         body to use callgraph datastructure.
17674
17675 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17676
17677         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
17678         to register_operand.
17679
17680 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17681
17682         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
17683         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
17684         match_operand expressions so that all match_dups appear
17685         lexically after their corresponding match_operands.
17686
17687 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17688
17689         * config/h8300/h8300.c (WORD_REG_USED): Use
17690         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
17691         (compute_saved_regs): Likewise.
17692         (h8300_expand_prologue): Likewise.  Allocate locals after
17693         saving registers.
17694         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
17695         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
17696         registers.
17697         (h8300_initial_elimination_offset): Adjust for the new frame
17698         layout, which swaps flips the order of locals and saved
17699         registers.
17700         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
17701         (HARD_FRAME_POINTER_REGNUM): New.
17702         (ELIMINABLE_REGS): Add an elimination rule from
17703         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
17704         (REGISTER_NAMES): Add fp.
17705         * config/h8300/h8300.md (FP_REG): Change to 11.
17706         (HFP_REG): New.
17707
17708 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17709
17710         * genrecog.c (write_node): Remove a useless local variable.
17711
17712 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17713
17714         * Makefile.in (options.c options.h): Use stamp file s-options to
17715         avoid unnecessary rebuilds.
17716         (options.o): New target listing dependencies.
17717         (gtyp-gen.h): Use stamp file s-gtyp-gen.
17718         (STAGESTUFF): Add s-gtyp-gen.
17719
17720 2004-01-28  Richard Henderson  <rth@redhat.com>
17721
17722         * ggc.h (ggc_free): Declare.
17723         * ggc-common.c (ggc_realloc): Use it.
17724         * ggc-page.c: Remove lots of inline markers.
17725         (globals): Add free_object_list.
17726         (ggc_alloc): Tidy.
17727         (ggc_free, validate_free_objects): New.
17728         (poison_pages): Provide default.
17729         (ggc_collect): Call validate_free_objects; emit markers to
17730         the debug file.
17731
17732 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17733             Jim Wilson  <wilson@specifixinc.com>
17734
17735         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
17736         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
17737         scratch pointer.
17738         (ia64_secondary_reload_class): Delete case GR_REGS.
17739         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
17740         Do not allocate a scratch register.
17741         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
17742
17743 2004-01-28  Jan Hubicka  <jh@suse.cz>
17744
17745         * gcse.c (bypass_block): Prevent edges to be unified when we are
17746         about to emit compenstation code.
17747
17748 2004-01-28  Nick Clifton  <nickc@redhat.com>
17749
17750         * config/arm/arm.c (arm_expand_builtin): Force second argument of
17751         the setcwx insn into a register.
17752
17753 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
17754
17755         * config/fp-bit.c (pack_d): When using paired doubles to implement
17756         a long double, round the high part separately.
17757         (unpack_d): Fix the case in which the high part is a power of two
17758         and the low part is a nonzero value of the opposite sign.
17759
17760 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17761
17762         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17763         (TARGET_STRUCT_VALUE_RTX): Likewise.
17764         (c4x_external_libcall): Likewise.
17765         (c4x_struct_value_rtx): Likewise.
17766         * config/c4x/c4x.h: Remove.
17767         (STRUCT_VALUE_REGNUM): Likewise.
17768         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17769
17770 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17771
17772         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
17773         (TARGET_STRUCT_VALUE_RTX): Likewise.
17774         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
17775         (STRUCT_VALUE): Likewise.
17776         (PROMOTE_PROTOTYPES): Likewise.
17777
17778 2004-01-27  Roger Sayle  <roger@eyesopen.com>
17779
17780         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
17781         CONST_INT before using INTVAL.
17782
17783 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
17784
17785         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
17786         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
17787         frame if !TARGET_BACKCHAIN.
17788         * config/s390/s390.md ("allocate_stack"): Use pattern only if
17789         TARGET_BACKCHAIN.
17790         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
17791
17792 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17793
17794         * ia64.c (ia64_function_arg): When placing HFAs in integer
17795         registers, do not special case the mode used for complex
17796         types.  Do not advance int_regs until the current register
17797         is full.
17798
17799 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
17800
17801         PR target/7297
17802         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
17803
17804 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17805
17806         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
17807         slow, unaligned loads and stores while debugging.  Fix formatting.
17808
17809 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17810
17811         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
17812         of computing wmode.
17813         (restore_stack_nonlocal): Same.
17814
17815 2004-01-27  Devang Patel <dpatel@apple.com>
17816
17817         * Makefile.in (dwarf2out.o): Depend on input.h
17818         * dbxout.c (dbx_debug_hooks): Add new empty hook for
17819         imported_module_or_decl.
17820         (xcoff_debug_hooks): Same.
17821         * sdbout.c (sdb_debug_hooks): Same.
17822         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
17823         * debug.c (do_nothing_debug_hooks): Same.
17824         (debug_nothing_tree_tree): New function.
17825         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
17826         * dwarf2out.c: Include input.h.
17827         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
17828         (remove_child_TAG): New function.
17829         (dwarf_tag_name): Handle DW_TAG_imported_module.
17830         (gen_subprogram_die): Equate decl number to declaration die. Do not
17831         remove all children dies while reusing declaration die for definition.
17832         Instead, selectively remove only formal parameters.
17833         (gen_variable_die): Equate variable decl to declaration die.
17834         (gen_field_die): Equate field decl to line number.
17835         (force_namespace_die): Replace it with ...
17836         (force_decl_die): ... this.
17837         (force_type_die): New function.
17838         (setup_namespace_context): Replace use of force_namespace_die() with
17839         force_decl_die().
17840         (gen_namespace_die): Same.
17841         (dwarf2out_imported_module_or_decl): New function.
17842
17843 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
17844
17845         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
17846         on CQImode and CHImode incoming arguments in register a7.
17847         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
17848         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
17849         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
17850         xtensa_copy_incoming_a7 before reload.
17851
17852 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17853
17854         * coverage.c (get_coverage_counts): Give a different message
17855         if flag_guess_branch_prob is set.
17856         * predict.c (counts_to_freqs): Return an int.
17857         (estimate_bb_frequencies): If counts_to_freqs returns zero,
17858         calculate estimates.
17859
17860 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
17861
17862         * config/iq2000/iq2000-protos.h: Remove the prototype for
17863         iq2000_setup_incoming_varargs.
17864         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17865         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17866         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17867         (TARGET_STRUCT_VALUE_RTX): Likewise.
17868         (TARGET_RETURN_IN_MEMORY): Likewise.
17869         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17870         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17871         (iq2000_return_in_memory): Likewise.
17872         (iq2000_setup_incoming_varargs): Make it static.  Receive the
17873         first argument by reference.
17874         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
17875         (PROMOTE_FUNCTION_RETURN): Likewise.
17876         (PROMOTE_PROTOTYPES): Likewise.
17877         (RETURN_IN_MEMORY): Likewise.
17878         (STRUCT_VALUE): Likewise.
17879         (SETUP_INCOMING_VARARGS): Likewise.
17880         (STRICT_ARGUMENT_NAMING): Likewise.
17881
17882 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
17883
17884         * fixinc/fixinc.c (test_test): Initialize res.
17885         (start_flexer): Initialize pz_cmd_save.
17886
17887 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17888
17889         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
17890         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
17891
17892 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17893
17894         PR 7198
17895         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
17896         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
17897         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
17898         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
17899         Possibly rename pattern for consistency.
17900         Remove ??? comments suggesting that this be done.
17901         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
17902         New patterns.
17903         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
17904         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
17905         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
17906         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
17907         Update to match.
17908
17909 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
17910
17911         * config/arm/arm.c (output_return_instruction): Only restore IP
17912         into SP if frame_pointer_needed.
17913
17914 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17915
17916         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
17917         for SCmode and DCmode if ARCH32.
17918         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
17919         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
17920         if ARCH32.
17921         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
17922         if ARCH32.
17923         (BASE_OUTGOING_VALUE_REG): Likewise.
17924
17925 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17926
17927         PR target/10904
17928         PR target/13058
17929         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
17930         Forbid mode changes from SImode for lower FP regs if ARCH64.
17931
17932 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17933
17934         * Makefile.in (bt-load.o): Depend on except.h.
17935         * bt-load.c (except.h): #include.
17936         (compute_defs_uses_and_gen): If insn at end of BB can throw
17937         within this function, consider registers used by it unavailable for
17938         btr migration.
17939         (move_btr_def): If insn at end of BB can throw, insert before rather
17940         than after.
17941
17942         * flags.h (flag_btr_bb_exclusive): Declare.
17943         * toplev.c (flag_btr_bb_exclusive): New variable.
17944         (f_options): Add btr-bb-exclusive.
17945         * bt-load.c (augment_live_range): Restore old behaviour if
17946         flag_btr_bb_exclusive is set.
17947         * common.opt: Add entry for -fbtr-bb-exclusive.
17948         * opts.c (common_handle_options): Same.
17949         * doc/invoke.texi: Document -fbtr-bb-exclusive.
17950
17951         * bt-load.c (btrs_live_at_end): New variable.
17952         (compute_defs_uses_and_gen): Compute its pointed-to array.
17953         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
17954         (augment_live_range): When augmenting with a new dominator,
17955         use only its btrs_live_at_end set, but also add in the full set
17956         of the old dominator.
17957         (btr_def_live_range): Use btrs_live_at_end.
17958         (move_btr_def): Set other_btr_uses_before_def, and move new set
17959         to the end of the basic block, if appropriate.
17960         (migrate_btr_defs): Allocate and free btrs_live_at_end.
17961
17962         * bt-load.c (basic_block_freq): Remove outdated comment.
17963
17964 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
17965
17966         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
17967         (PREDICATE_CODES): Remove duplicate.
17968         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
17969         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
17970         (MASK_PROFILE_KERNEL): Adjust define.
17971
17972 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
17973
17974         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
17975         of long string literals from 32 bytes to sizeof (void *) when !-Os
17976         and to 1 with -Os.
17977
17978 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17979
17980         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
17981         constant addresses in the normal mode.
17982
17983 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17984
17985         * system.h (CHAR_BITFIELD): Delete.
17986         (BOOL_BITFIELD): New.
17987         * c-decl.c (c_scope): Use BOOL_BITFIELD.
17988         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
17989
17990 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17991
17992         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17993         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17994         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17995         (TARGET_STRUCT_VALUE_RTX): Likewise.
17996         (TARGET_RETURN_IN_MEMORY): Likewise.
17997         (arc_return_in_memory): Likewise.
17998         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
17999         (PROMOTE_FUNCTION_RETURN): Likewise.
18000         (RETURN_IN_MEMORY): Likewise.
18001         (STRUCT_VALUE): Likewise.
18002
18003 2004-01-26  Richard Henderson  <rth@redhat.com>
18004
18005         * c-parse.in (extension): Use itype.
18006         (SAVE_EXT_FLAGS): Don't allocate a tree.
18007         (RESTORE_EXT_FLAGS): Don't read a tree.
18008
18009 2004-01-26  Jan Hubicka  <jh@suse.cz>
18010
18011         * cselib.c (discard_useless_values):  Clear out value pointer pointing
18012         to datastructure to be recycled.
18013
18014 2004-01-25  Jan Hubicka  <jh@suse.cz>
18015
18016         * genextract.c (main): Do not output the memset when not checking.
18017
18018 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18019
18020         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
18021         switch statement instead of a chain of if statements.
18022
18023 2004-01-26  Jeff Law  <law@redhat.com>
18024
18025         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
18026         acute accents for Petur Runolfsson's entry.
18027
18028 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18029
18030         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
18031         (TARGET_RETURN_IN_MEMORY): Likewise.
18032         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
18033         (RETURN_IN_MEMORY): Likewise.
18034
18035 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18036
18037          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
18038          unaligned load/store into smaller loads and stores.
18039
18040 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18041
18042         * function.c (assign_parms): Do not assign
18043         long long argument to memory in prologue if
18044         is it loaded into register.
18045
18046 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18047
18048          PR middle-end/13779
18049          * expr.c (emit_group_load): split constant
18050          correctly into register components of PARALLEL insn.
18051
18052 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18053
18054         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
18055         Use adjust_address_nv directly with appropriate mode.
18056         (restore_stack_nonlocal): Ditto.
18057
18058 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18059
18060         * config/xtensa/xtensa-protos.h: Remove the prototype for
18061         xtensa_builtin_saveregs.
18062         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18063         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18064         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18065         (TARGET_STRUCT_VALUE_RTX): Likewise.
18066         (TARGET_RETURN_IN_MEMORY): Likewise.
18067         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18068         (xtensa_builtin_saveregs): Make it static.
18069         (xtensa_return_in_memory): New.
18070         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
18071         (PROMOTE_FUNCTION_RETURN): Likewise.
18072         (PROMOTE_PROTOTYPES): Likewise.
18073         (STRUCT_VALUE): Likewise.
18074         (RETURN_IN_MEMORY): Likewise.
18075         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18076
18077 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18078
18079         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
18080         (arm_setup_incoming_varargs): Likewise.
18081         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
18082
18083 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18084
18085         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
18086         (cris_setup_incoming_varargs): Likewise.
18087         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
18088
18089 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18090
18091         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
18092         (ns32k_struct_value_rtx): Likewise.
18093         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
18094         NS32K_STRUCT_VALUE_REGNUM.
18095
18096 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18097
18098         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18099         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18100         (TARGET_STRUCT_VALUE_RTX): Likewise.
18101         (arm_struct_value_rtx): Likewise.
18102         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
18103         (STRUCT_VALUE): Likewise.
18104         (STRUCT_VALUE_REGNUM): Likewise.
18105         (PROMOTE_PROTOTYPES): Likewise.
18106
18107 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18108
18109         * config/ia64/ia64-protos.h: Remove the prototype for
18110         ia64_setup_incoming_varargs and ia64_return_in_memory.
18111         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
18112         (TARGET_RETURN_IN_MEMORY): Likewise.
18113         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18114         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18115         (ia64_setup_incoming_varargs): Adjust the arguments to meet
18116         the requirement of TARGET_SETUP_INCOMING_VARARGS.
18117         (ia64_return_in_memory): Make it static.  Change the return
18118         type to bool from int.  Add an argument.
18119         (ia64_struct_value_rtx): New.
18120         * config/ia64/ia64.h: Remove commented-out definitions of
18121         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
18122         PROMOTE_PROTOTYPES.
18123         (RETURN_IN_MEMORY): Remove.
18124         (STRUCT_VALUE_REGNUM): Likewise.
18125         (STRICT_ARGUMENT_NAMING): Likewise.
18126
18127 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
18128
18129         PR target/13666
18130         * config/sparc/sparc.c (function_arg_union_value): New function.
18131         (function_arg): Use it to deal with unions.
18132         (function_value): Likewise.  Define 'regbase' only for ARCH64.
18133         Replace a conditional statement by a simpler one.
18134
18135 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
18136
18137         * config/mips/mips.c (mips16_optimize_gp): Delete.
18138         (mips_reorg): Don't call it.
18139
18140 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18141
18142         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
18143         (floatunsqihf2): Remove operand 6.
18144         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
18145         fix patterns.
18146         (ldi_conditional, ldf_conditional): Validate operands.
18147
18148 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18149
18150         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
18151         (HAVE_GAS_HIDDEN): Undefine as interim measure.
18152
18153 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18154
18155         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
18156         memory references if TARGET_EXPOSE_LDP nonzero.
18157
18158 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18159
18160         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
18161
18162 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18163
18164         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
18165         invalid operand combinations.
18166
18167 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18168
18169         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
18170         c4x_legitimate_address_p.  Fix post_modify check.
18171
18172         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
18173         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
18174
18175 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18176
18177         * config/pa/pa-protos.h: Remove the prototype for
18178         hppa_builtin_saveregs.  Add a prototype for
18179         pa_return_in_memory.
18180         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
18181         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18182         (TARGET_STRUCT_VALUE_RTX): Likewise.
18183         (TARGET_RETURN_IN_MEMORY): Likewise.
18184         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18185         (pa_struct_value_rtx): Likewise.
18186         (pa_return_in_memory): Likewise.
18187         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
18188         PA_STRUCT_VALUE_REGNUM.
18189         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
18190         (EXPAND_BUILTIN_SAVEREGS): Remove.
18191         (PROMOTE_PROTOTYPES): Likewise.
18192         (PROMOTE_FUNCTION_RETURN): Likewise.
18193
18194 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18195
18196         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
18197         (TARGET_STRUCT_VALUE_RTX): Likewise.
18198         (vax_struct_value_rtx): Likewise.
18199         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
18200         VAX_STRUCT_VALUE_REGNUM.
18201         (PROMOTE_PROTOTYPES): Remove.
18202
18203 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18204
18205         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
18206
18207 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
18208
18209         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
18210         and MIPS64 have HI/LO interlocks.  Update comment.
18211
18212 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18213
18214         * config/stormy16/stormy16-protos.h: Remove the prototype for
18215         xstormy16_setup_incoming_varargs.
18216         * config/stormy16/stormy16.c
18217         (xstormy16_setup_incoming_varargs): Remove.
18218         (xstormy16_return_in_memory): New.
18219         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
18220         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18221         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18222         (TARGET_STRUCT_VALUE_RTX): Likewise.
18223         (TARGET_RETURN_IN_MEMORY): Likewise.
18224         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
18225         (PROMOTE_FUNCTION_RETURN): Likewise
18226         (PROMOTE_PROTOTYPES): Likewise
18227         (RETURN_IN_MEMORY): Likewise
18228         (STRUCT_VALUE): Likewise
18229         (SETUP_INCOMING_VARARGS): Likewise
18230
18231 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18232
18233         * config/mips/mips.c (mips_offset_within_object_p): New function.
18234         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
18235         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
18236         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
18237
18238 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18239
18240         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
18241         (PROMOTE_FUNCTION_RETURN): Likewise.
18242
18243 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18244
18245         * config/mn10300/mn10300-protos.h: Remove the prototype for
18246         mn10300_builtin_saveregs.
18247         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
18248         (TARGET_STRUCT_VALUE_RTX): Likewise.
18249         (TARGET_RETURN_IN_MEMORY): Likewise.
18250         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18251         (mn10300_return_in_memory): Likewise.
18252         (mn10300_builtin_saveregs): Make it static.
18253         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
18254         (RETURN_IN_MEMORY): Likewise.
18255         (STRUCT_VALUE): Likewise.
18256         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18257
18258 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
18259
18260         PR bootstrap/13853
18261         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
18262
18263 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18264
18265         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
18266         using ccr.
18267
18268 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18269
18270         * config/i860/i860-protos.h: Remove the prototype for
18271         i860_saveregs.
18272         * config/i860/i860.c (i860_saveregs): Make it static.
18273         (i860_struct_value_rtx): New.
18274         (TARGET_STRUCT_VALUE_RTX): Likewise.
18275         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18276         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
18277         I860_STRUCT_VALUE_REGNUM.
18278         (EXPAND_BUILTIN_SAVEREGS): Remove.
18279
18280 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18281
18282         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
18283         (TARGET_RETURN_IN_MEMORY): Likewise.
18284         (m68hc11_struct_value_rtx): Likewise.
18285         (m68hc11_return_in_memory): Likewise.
18286         * config/m68hc11/m68hc11.h: Remove a commented-out definition
18287         of PROMOTE_PROTOTYPES.
18288         (RETURN_IN_MEMORY): Remove.
18289         (STRUCT_VALUE_REGNUM): Likewise.
18290
18291 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18292
18293         * config/mmix/mmix-protos.h: Remove the prototype for
18294         mmix_setup_incoming_varargs.
18295         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18296         (TARGET_STRUCT_VALUE_RTX): Likewise.
18297         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18298         (mmix_setup_incoming_varargs): Make it static.
18299         (mmix_struct_value_rtx): New.
18300         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
18301         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
18302         (STRUCT_VALUE_REGNUM): Remove.
18303         (SETUP_INCOMING_VARARGS): Likewise.
18304
18305 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18306
18307         * config/mips/mips-protos.h: Remove the prototypes for
18308         mips_setup_incoming_varargs and mips_return_in_memory.
18309         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18310         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18311         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18312         (TARGET_STRUCT_VALUE_RTX): Likewise.
18313         (TARGET_RETURN_IN_MEMORY): Likewise.
18314         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18315         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18316         (mips_setup_incoming_varargs): Match the prototype for
18317         TARGET_SETUP_INCOMING_VARARGS.
18318         (mips_return_in_memory): Make it static.  Add argument fntype.
18319         (mips_strict_argument_naming): New.
18320         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
18321         (PROMOTE_FUNCTION_ARGS): Likewise.
18322         (PROMOTE_FUNCTION_RETURN): Likewise.
18323         (STRUCT_VALUE): Likewise.
18324         (RETURN_IN_MEMORY): Likewise.
18325         (SETUP_INCOMING_VARARGS): Likewise.
18326         (STRICT_ARGUMENT_NAMING): Likewise.
18327
18328 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18329
18330         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
18331         (TARGET_RETURN_IN_MEMORY): Likewise.
18332         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18333         (ip2k_return_in_memory): Likewise.
18334         (ip2k_setup_incoming_varargs): Likewise.
18335         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
18336         (STRUCT_VALUE): Likewise.
18337         (STRUCT_VALUE_INCOMING): Likewise.
18338         (SETUP_INCOMING_VARARGS): Likewise.
18339
18340 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18341
18342         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
18343         (TARGET_RETURN_IN_MEMORY): Likewise.
18344         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18345         (avr_return_in_memory): Remove.
18346         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
18347         (STRUCT_VALUE): Likewise.
18348         (STRUCT_VALUE_INCOMING): Likewise.
18349         (STRICT_ARGUMENT_NAMING): Likewise.
18350
18351 2004-01-25  Jan Hubicka  <jh@suse.cz>
18352
18353         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
18354
18355 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18356
18357         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
18358         (mips_regno_mode_ok_for_base_p): Declare.
18359         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
18360         (FRAME_POINTER_REGNUM): Renumber to 78.
18361         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
18362         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
18363         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
18364         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
18365         (REG_MODE_OK_FOR_BASE_P): Likewise.
18366         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
18367         entry for 77 to "$arg" and entry for 78 to "$frame".
18368         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
18369         (mips_reg_mode_ok_for_base_p): Remove.
18370         (mips_regno_mode_ok_for_base_p): New function, derived from old
18371         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
18372         restrictions unless we're being strict.
18373         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
18374
18375 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18376
18377         * c-common.h: Fix comment typos.
18378         * c-decl.c: Likewise.
18379         * cgraphunit.c: Likewise.
18380         * combine.c: Likewise.
18381         * et-forest.c: Likewise.
18382         * flow.c: Likewise.
18383         * function.c: Likewise.
18384         * ifcvt.c: Likewise.
18385         * integrate.c: Likewise.
18386         * jump.c: Likewise.
18387         * postreload.c: Likewise.
18388         * varray.c: Likewise.
18389
18390 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18391
18392         * doc/frontends.texi: Update copyright.
18393         * doc/gcov.texi: Likewise.
18394         * doc/gty.texi: Likewise.
18395         * doc/sourcebuild.texi: Likewise.
18396         * doc/standards.texi: Likewise.
18397
18398 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
18399
18400         PR target/12978
18401         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
18402         Remove movstrqi_small because it conflicts with movstrqi_large.
18403
18404 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18405
18406         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18407         (TARGET_STRUCT_VALUE_RTX): Likewise.
18408         (cris_struct_value_rtx): Likewise.
18409         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
18410         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
18411         STRUCT_VALUE_REGNUM.
18412         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
18413
18414 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
18415
18416         PR bootstrap/13848
18417         * cse.c (cse_cc_succs): Change the mode of the source expression
18418         as soon as decide we need a new mode.  Don't permit changing modes
18419         if we found a match in a successor block.
18420         (cse_condition_code_reg): Save original mode of source expression
18421         so that we know whether we have to change the mode in other
18422         insns.
18423
18424 2004-01-24  Jan Hubicka  <jh@suse.cz>
18425
18426         * emit-rtl.c (change_address, adjust_address_1, offset_address,
18427         widen_memory_access):  Return early when there is nothing to change.
18428
18429 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
18430
18431         * simplify-rtx.c (simplify_relational_operation): Don't
18432         simplify address == constant into address + -constant == 0.
18433
18434 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18435
18436         * gcc.c (process_command): Don't internationalize the
18437         Copyright message.
18438         * mips-tfile.c (main): Likewise.
18439
18440 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
18441
18442         * cse.c: (cse_cc_succs) Fix comparison warning.
18443
18444 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18445
18446         * config/h8300/h8300.md: Remove extraneous USE in expanders.
18447
18448 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18449
18450         * config/h8300/h8300-protos.h: Provide prototypes for
18451         h8300_legitimate_constant_p and h8300_legitimate_address_p.
18452         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
18453         (h8300_rtx_ok_for_base_p): Likewise.
18454         (h8300_legitimate_address_p): Likewise.
18455         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
18456         h8300_legitimate_constant_p.
18457         (RTX_OK_FOR_BASE_P): Remove.
18458         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
18459
18460 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18461
18462         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
18463         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
18464         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
18465         (REG_OK_FOR_BASE_STRICT_P): Likewise.
18466         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
18467         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
18468         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
18469         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
18470
18471 2004-01-24  Jan Hubicka  <jh@suse.cz>
18472
18473         * cselib.c (remove_useless_values):  Do not access discarded values.
18474
18475 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
18476
18477         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
18478         arrays.
18479
18480 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18481
18482         * recog.c: Fix a typo in copyright.
18483
18484 2004-01-23  Andrew Pinski  <apinski@apple.com>
18485
18486         * config/rs6000/rs6000.md (call): Fix misappiled patch.
18487         (call_value): Likewise.
18488
18489 2004-01-23  Richard Henderson  <rth@redhat.com>
18490
18491         PR opt/12941
18492         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
18493         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
18494         if SHIFT_COUNT_TRUNCATED is set.
18495
18496 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
18497
18498         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
18499         separate real and imaginary parts.
18500         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
18501
18502 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
18503
18504         PR target/13674
18505         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
18506         loading into GPR.
18507
18508 2004-01-23  Jan Hubicka  <jh@suse.cz>
18509
18510         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
18511         change.
18512
18513         * alloc-pool.c (align_four): Kill.
18514         (create_alloc_pool): Align size to eight.
18515         (free_alloc_pool, free_pool): Invalidate deallocated data.
18516
18517 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
18518
18519         PR gcc/1532
18520         * cse.c (cse_change_cc_mode): New static function.
18521         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
18522         (cse_condition_code_reg): New function.
18523         * rtl.h (cse_condition_code_reg): Declare.
18524         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
18525         * target.h (struct gcc_target): Add fixed_condition_code_regs and
18526         cc_modes_compatible.
18527         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18528         (TARGET_CC_MODES_COMPATIBLE): Define.
18529         (TARGET_INITIALIZER): Add new initializers.
18530         * targhooks.c (default_cc_modes_compatible): New function.
18531         * targhooks.c (default_cc_modes_compatible): Declare.
18532         * hooks.c (hook_bool_intp_intp_false): New function.
18533         * hooks.h (hook_bool_intp_intp_false): Declare.
18534         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18535         (TARGET_CC_MODES_COMPATIBLE): Define.
18536         (ix86_fixed_condition_code_regs): New static function.
18537         (ix86_cc_modes_compatible): Likewise.
18538         * doc/tm.texi (Condition Code): Document new hooks.
18539
18540 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18541
18542         * fixinc/inclhack.def (bad_lval): Renamed to ...
18543         (alpha_bad_lval): ... this.
18544         Removed file list.
18545         Restrict to alpha*-dec-osf*.
18546         * fixinc/fixincl.x: Regenerate.
18547         * fixinc/tests/base/dirent.h: Remove, moving test ...
18548         * fixinc/tests/base/testing.h: ... here, reflecting new name.
18549
18550 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
18551
18552         PR c/13814
18553         * c-decl.c (diagnose_mismatched_decls): Also discard a
18554         built-in if we encounter an old-style definition with the
18555         same name.
18556
18557 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
18558
18559         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
18560         set to default{32,64}.
18561
18562 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18563
18564         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
18565         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
18566
18567 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
18568             Olivier Hainque  <hainque@act-europe.fr>
18569
18570         * fold-const.c (fold_binary_op_with_conditional_arg): Only
18571         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
18572
18573 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
18574
18575         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
18576         size for minipool references.
18577
18578 2004-01-23  Roger Sayle  <roger@eyesopen.com>
18579
18580         * real.c (real_floor, real_ceil): Tweak to allow input and output
18581         arguments to overlap.
18582         (real_round): New function to implement round(3m) semantics.
18583         * real.h (real_round): Prototype here.
18584         * builtins.c (fold_builtin_round): New function to constant fold
18585         round, roundf and roundl.
18586         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
18587
18588 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
18589
18590         PR optimization/13819
18591         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
18592         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
18593         (sh_handle_sp_switch_attribute): Remove warning.
18594
18595 2004-01-23  Jan Hubicka  <jh@suse.cz>
18596
18597         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
18598
18599 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
18600
18601         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
18602         may or may not return non-NIL.
18603         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
18604         check CANNOT_CHANGE_MODE_CLASS
18605
18606 2004-01-23  Jan Hubicka  <jh@suse.cz>
18607
18608         * basic-block.h (PROP_POSTRELOAD): New macro.
18609         (CLEANUP_LOG_LINKS): New.
18610         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
18611         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
18612
18613         * cselib.c (value_pool): New.
18614         (new_cselib_val): Use pool.
18615         (cselib_init): Initialize value_pool
18616         (cselib_finish): Free pool.
18617
18618 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
18619
18620         * config/sparc/sparc.c (scan_record_type): New function.
18621         (function_arg_slotno): Use it to determine which kinds of
18622         registers the record can be passed in.
18623
18624 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
18625
18626         * config/pa/fptr.c: Fix old-style definition.
18627
18628 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
18629
18630         PR optimization/13724
18631         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
18632         represents the zero bits produced by a ZERO_EXTEND operation.
18633
18634 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18635
18636         PR optimization/13821
18637         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
18638         correctly calculate the lowpart offset of the contracted subreg.
18639
18640 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
18641
18642         * doc/invoke.texi (Optimize Options): Note that --param arguments
18643         are subject to change without notice.
18644
18645 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18646
18647         * config.gcc (mips-sgi-irix6*o32): Removed.
18648         * config/mips/iris6-o32-as.h: Likewise.
18649         * config/mips/iris6-o32-gas.h: Likewise.
18650         * config/mips/iris6-o32.h: Likewise.
18651
18652 2004-01-22  Jan Hubicka  <jh@suse.cz>
18653
18654         * cfgcleanup.c (first_pass): New static variable.
18655         (try_forward_edges):  Add work limiting check for threading.
18656         (try_crossjump_bb):  Add work limiting check for crossjumping.
18657         (try_optimize_cfg):  Maintain first pass variable.
18658
18659 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
18660
18661         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
18662         handles complex and vector modes.
18663
18664 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18665
18666         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
18667         (REG_OK_FOR_BASE_P_STRICT): Likewise.
18668         (STRICT): Likewise.
18669
18670 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18671
18672         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
18673         (genrtl_for_stmt): Remove emit_nop calls.
18674
18675 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18676
18677         PR target/13713
18678         PR target/13324
18679         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
18680         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
18681         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
18682
18683 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18684
18685         * config/arm/arm.c: Include "debug.h".
18686         (thumb_pushpop): Take two new arguments.  Add some commentary.
18687         Output frame information when pushing.
18688         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
18689         thumb_pushpop.
18690         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
18691         offset, and pass it to thumb_pushpop.  Output CFI information.
18692         (thumb_expand_prologue): Add some frame-related markers and notes.
18693
18694 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
18695
18696         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
18697         for TARGET_64BIT.
18698         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
18699         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
18700
18701 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18702             Paolo Bonzini  <bonzini@gnu.org>
18703
18704         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
18705         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
18706         * rtl.h (subreg_lsb_1): Prototype here.
18707         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
18708         sign extensions.
18709
18710 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18711
18712         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
18713         macro need not be defined if jump-tables should contain
18714         relative addresses only when -fPIC or -fPIC is in effect.
18715
18716 2004-01-22  Jan Hubicka  <jh@suse.cz>
18717
18718         * alias.c (reg_base_value): Turn into varray.
18719         (reg_base_value_size): Kill.
18720         (old_reg_base_value): New deletable varray.
18721         (alias_invariant_size): New variable.
18722         (REG_BASE_VALUE): Update to use varray.
18723         (find_base_value): Likewise.
18724         (record_set): Likewise.
18725         (record_base_value): Likewise.
18726         (memrefs_conflict_p): Likewise.
18727         (record_set): Likewise
18728         (record_base_value): Likewise.
18729         (memrefs_conflict_p): Use alias_invariant_size.
18730         (init_alias_analysis): Use varray; set alias_invariant_size;
18731         rescale other arrays to be sized by maxreg.
18732         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
18733
18734 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18735
18736         * config/sparc/sparc.c (function_arg_slotno): Use
18737         FLOAT_TYPE_P to detect FP fields in structures.
18738         (function_arg_record_value_1): Likewise.
18739         (function_arg_record_value_2): Likewise.
18740
18741 2004-01-22  Jan Hubicka  <jh@suse.cz>
18742
18743         * function.c (allocate_struct_function): Do not initialize expr, emit
18744         and varasm.
18745         (prepare_function_start): Do it here.
18746         * c-parse.in (maybe_type_qual): Do not produce line number notes.
18747
18748 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18749
18750         PR target/13559
18751         * config/sparc/sparc.c (function_arg_record_value_3): Revert
18752         to 'word_mode' once the first slot has been filled.
18753
18754 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
18755
18756         * config/sparc/sparc.c (function_arg_record_value_1): Fix
18757         computation of the number of integer registers required.
18758
18759 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18760
18761         * config/i386/i386.md: Simplify certain comparisons of
18762         const_int.
18763
18764 2004-01-21  Andrew Pinski  <apinski@apple.com>
18765
18766         PR target/13785
18767         * config/rs6000/rs6000.md (call_value): Force operand
18768         1 not operand 0 into a register.
18769
18770 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18771
18772         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
18773         unwind-dw2-fde.h: Update copyright.
18774
18775 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18776
18777         * pa-protos.h: Update copyright.
18778         * pa.h: Likewise.
18779         * pa.md: Likewise.
18780
18781 2004-01-21  Caroline Tice  <ctice@apple.com>
18782
18783         PR target/12308
18784         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
18785         flags register.
18786         (fix_truncdfdi2): Likewise.
18787         (fix_truncsfdi2): Likewise.
18788         (*fix_truncdi_1): Likewise.
18789         (fix_truncxfsi2): Likewise.
18790         (fix_truncdfsi2): Likewise.
18791         (fix_truncsfsi2): Likewise.
18792         (*fix_truncsi_1): Likewise.
18793         (fix_truncxfhi2): Likewise.
18794         (fix_truncdfhi2): Likewise.
18795         (fix_truncsfhi2): Likewise.
18796         (*fix_trunchi_1): Likewise.
18797
18798 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18799
18800         * alias.c, basic-block.h, c-common.c, c-common.h,
18801         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
18802         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
18803         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
18804         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
18805         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
18806         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
18807         genautomata.c, genconditions.c, genemit.c, genflags.c,
18808         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
18809         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
18810         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
18811         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
18812         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
18813         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
18814         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
18815         unwind.h, varray.c, varray.h: Update copyright.
18816
18817 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18818
18819         * config/h8300/coff.h: Update copyright.
18820         * config/h8300/elf.h: Likewise.
18821         * config/h8300/h8300-protos.h: Likewise.
18822         * config/h8300/h8300.c: Likewise.
18823         * config/h8300/h8300.h: Likewise.
18824         * config/h8300/h8300.md: Likewise.
18825
18826 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18827
18828         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
18829         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
18830         ultrix_unistd): New hacks.
18831         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
18832         ULTRIX_CONST2_CHECK): Add checks.
18833         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
18834         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
18835         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
18836         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
18837         * fixinc/tests/base/locale.h: New file.
18838         * fixinc/fixincl.x: Rebuilt.
18839
18840 2004-01-21  Andreas Jaeger  <aj@suse.de>
18841             Michael Matz  <matz@suse.de>
18842
18843         * doc/extend.texi (Extended Asm): Clarify memory clobber.
18844
18845 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18846
18847         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
18848         _Jv_RegisterClasses through a function pointer.
18849
18850 2004-01-21  Falk Hueffner  <falk@debian.org>
18851
18852         PR target/12898
18853         * config/alpha/alpha.c (alpha_emit_set_const_1): If
18854         no_new_pseudos, use gen_rtx_SET directly for SImode constants
18855         which need multiple instructions to emit.
18856
18857 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
18858
18859         * config/m32r/m32r.h (CPP_SPEC): Define.
18860
18861 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
18862
18863         * c-decl.c (merge_decls): Kill different_binding_level and
18864         different_tu arguments; simplify throughout.
18865         (duplicate_decls): Likewise.
18866         (pushdecl, merge_translation_unit_decls): Update calls to
18867         duplicate_decls.
18868
18869 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18870
18871         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
18872         $(SYSTEM_H).
18873         (print-rtl1.o): Depend on $(SYSTEM_H).
18874
18875 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18876
18877         PR bootstrap/12730
18878         * configure.ac: Delete definition and subsitution of docdir.
18879         Add info, man, srcman and srcinfo to target hooks. Create doc/
18880         directory.
18881         * configure: Regenerate.
18882         * Makefile.in: Don't substitute docdir and delete all references
18883         throughout.
18884         (MAKEINFOFLAGS): Define.
18885         (stmp-docobjdir): Delete.
18886         (INFOFILES, MANFILES): Define.
18887         (info): Call lang.info, srcinfo and lang.srcinfo.
18888         (generated-manpages): Call lang.man, srcman and lang.srcman.
18889         (srcinfo, srcman): New rules to copy back files to source directory.
18890         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
18891         (install-man): Revamp rule.
18892         (clean): Update dvi directory.
18893         (distclean): Delete TAGS from front end directorys.
18894         (maintainer-clean): Delete all document files in source directory.
18895
18896         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
18897         (objc.srcman, objc.srcinfo): Likewise.
18898
18899 2004-01-20  Bruce Korb  <bkorb@gnu.org>
18900
18901         * fixinc/inclhack.def(math_exception): bypass only for glibc.
18902         (matherr_decl): rename & relocate as exception_structure.
18903         This fix must precede the math_exception fix.
18904
18905 2004-01-20  Roger Sayle  <roger@eyesopen.com>
18906
18907         * fold-const.c (fold_convert): Rename to fold_convert_const.
18908         (fold_convert_const): Change arguments to take a tree_code,
18909         a type and the operand/expression to be converted.  Return
18910         NULL_TREE if no simplification is possible.  Add support for
18911         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
18912         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
18913         Adjust call to fold_convert to match new fold_convert_const.
18914         Avoid modifying the tree passed to fold in-place.
18915
18916 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
18917
18918         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
18919         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
18920         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
18921
18922 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18923
18924         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
18925         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
18926         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
18927         (emit_move_sequence): Check scratch_reg first in various if statements.
18928         Extend source simplification to handle all 64-bit CONST_INTs.
18929         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
18930         frame size.
18931         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
18932         frame offset calculations.
18933         * pa.h (NEW_HP_ASSEMBLER): Add comment.
18934         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
18935         LEGITIMATE_64BIT_CONST_INT_P): Define.
18936         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
18937         any CONST_INT as legitimate during and after reload.
18938         (VAL_32_BITS_P, INT_32_BITS): Define.
18939         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
18940
18941 2004-01-20  Jan Hubicka  <jh@suse.cz>
18942
18943         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
18944         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
18945         containing hard regs are shared.
18946         (gen_hard_reg_clobber): New function.
18947         (hard_reg_clobbers): New array.
18948         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
18949         (copy_rtx): Do not copy clobbers containing hard regs.
18950         * rtl.h (gen_hard_reg_clobber): Declare.
18951
18952 2004-01-20  Jan Hubicka  <jh@suse.cz>
18953
18954         * varray.c:  Include hashtab.h
18955         (varray_descriptor): New structure.
18956         (hash_descriptor, eq_descriptor, varray_descriptor,
18957         print_statistics): New static functions
18958         (varray_init, varray_grow): Update statistics
18959         (dump_varray_statistics): New function.
18960         * varray.h (dump_varray_statistics): Declare.
18961         * toplev.c (finalize): Call it.
18962         * Makefile.in (varray.o): Add dependency.
18963
18964 2004-01-20  Jan Hubicka  <jh@suse.cz>
18965
18966         * cselib.c: Include alloc-pool.h
18967         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
18968         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
18969         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
18970         unchain_one_elt_loc_list_pool, unchain_one_value,
18971         new_cselib_val): Simplify using allocpool.
18972         (cselib_init): Initialize allocpools.
18973         (cselib_finish): Finish allocpools.
18974         * Makefile.in (cselib.o): Depend on alloc-pool.h
18975
18976 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
18977
18978         * config/mips/mips.c (mips_load_call_address): Make the call insn
18979         use $gp if it could be calling a lazy binding stub.
18980
18981 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18982
18983         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
18984         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18985         (TARGET_STRUCT_VALUE_RTX): Likewise.
18986         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
18987         (PROMOTE_FUNCTION_RETURN): Remove.
18988         (STRUCT_VALUE): Remove.
18989
18990 2004-01-20  Denis Chertykov  <denisc@overta.ru>
18991
18992         PR bootstrap/13735
18993         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
18994         register as pointer after reload.
18995
18996 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18997
18998         PR optimization/12440
18999         * loop.c: Include ggc.h.
19000         (loop_optimize): Run garbage collector between optimization of loops.
19001         * Makefile.in (loop.o): Add GGC_H dependency.
19002
19003 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
19004
19005         * gcc/config/rs6000/rs6000.c (function_arg) Handle
19006         vector register special in function without prototype.
19007         (function_arg_advance): Vector parameters get always
19008         GPRs allocated for the linux64 target.
19009
19010 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19011
19012         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
19013         not TARGET_M32RX_MASK.
19014
19015 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
19016
19017         PR target/13557
19018         * config/sparc/sparc.c (function_arg): Reorder the cases.
19019
19020 2004-01-19  Per Bothner  <per@bothner.com>
19021
19022         Move cpp_reader's line_maps field to a shared global.
19023         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
19024         and change the type to a pointer rather than a struct.
19025         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
19026         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
19027         Likewise.
19028         * cppfiles.c (validate_pch):  Likewise.
19029         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
19030         Likewise.
19031         * cpperror.c (print_location):  Likewise.
19032         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
19033         * cppinit.c (cpp_create_reader):  Handle new parameter.
19034         (cpp_destroy):  Don't free line_maps - that's no longer our job.
19035         * input.h (line_table):  New variable.
19036         * toplev.c (line_table):  Declare variable.
19037         (general_init):  Initialize line_table.
19038         * c-opts.c (c_common_init_options):  Pass line_table to
19039         cpp_create_reader.
19040         * fix-header.c (read_scan_file):  New local variable line_table.
19041         Initialize, and pass it to cpp_create_reader.
19042         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
19043         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
19044
19045 2004-01-19  Per Bothner  <per@bothner.com>
19046
19047         Implement a cache for linemap_lookup.
19048         * line-map.h (struct_line_maps):  Add cache field.
19049         * line-map.c (linemap_init):  Zero cache field.
19050         (linemap_add):  Set cache field to offset of newly allocated map.
19051         (linemap_lookup):  Use and set cache field.
19052
19053 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19054
19055         PR optimization/13567
19056         * cse.c (cse_basic_block): Call cse_insn with a non-null
19057         libcall_insn for the last SET insn of a no-confilict block.
19058
19059 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
19060
19061         * Makefile.in (target_noncanonical, program_transform_name): Use
19062         immediate define instead of deferred.
19063         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
19064         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
19065         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
19066         deferred backquote.
19067
19068 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
19069
19070         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
19071         true unconditionally.
19072         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
19073         Remove.
19074         (build_unary_op, build_modify_expr): Don't handle extended
19075         lvalues.
19076         (build_component_ref, build_conditional_expr): Call non_lvalue
19077         instead of pedantic_non_lvalue.
19078         (build_c_cast): Don't condition use of non_lvalue on pedantic.
19079         * fold-const.c (fold): Don't check pedantic directly for
19080         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
19081         passed to pedantic_non_lvalue.
19082         * doc/extend.texi: Remove documentation of extended lvalues.
19083
19084 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19085
19086         PR optimization/5263
19087         * simplify-rtx.c (associative_constant_p): Delete.
19088         (simplify_associative_operation): Rewrite to linearize terms, and
19089         attempt to simplify new term against both left and right subterms.
19090         (simplify_binary_operation): Call swap_commutative_operands_p on
19091         op0 and op1, not trueop0 and trueop1.  Move the initialization of
19092         trueop0 and trueop1 down to where first needed.
19093         (simplify_relational_operation): Likewise.
19094         * rtlanal.c (commutative_operand_precedence): Also order constant
19095         operands using avoid_constant_pool_reference.
19096
19097 2004-01-19  Richard Henderson  <rth@redhat.com>
19098
19099         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
19100         don't check memory mode.
19101         (unaligned_memory_operand): Likewise.
19102         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
19103         abort for op0 not MEM.
19104
19105         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
19106         is not a reg, copy to a scratch first.
19107         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
19108         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
19109         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
19110         (reload_inqi, reload_inhi): Fix mode of op0.
19111         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
19112         reload_outhi_help): Likewise.  Use define_insn_and_split.
19113
19114         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
19115         as well as $29 dead.
19116
19117 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
19118
19119         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
19120         "tls_object" for thread-local objects.
19121         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
19122         "#tls" for thread-local sections.
19123         * configure.ac (thread-local checks): Specify --fatal-warnings in
19124         every binutils-specific checks.  For sparc*-*-*, test whether the
19125         OS is Solaris and the tools are native and act accordingly.
19126         * configure: Rebuild.
19127
19128 2004-01-19  Jeff Law  <law@redhat.com>
19129
19130         * contrib.texi: Update Paolo Carlini's entry.  New entries for
19131         Jerry Quinn and Petur Runolfsson.
19132
19133 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19134
19135         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
19136         size, don't use the larger zero-extending loads.
19137
19138 2004-01-19  Richard Henderson  <rth@redhat.com>
19139
19140         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
19141         * alpha.md (UNSPEC_NT_LDA): Remove.
19142         (UNSPEC_CVTLQ, cvtlq): New.
19143         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
19144         (extendsidi2_fix): Remove.
19145         (extendsidi2 splitter): Use cvtlq.
19146         (extendsidi2 fp peepholes): Remove.
19147         (cvtql): Use SFmode instead of SImode.
19148         (fix_trunc?fsi): Update to match.
19149         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
19150         (movsi): Rename from movsi_nofix, remove f alternatives.
19151         (movsi_nt_vms): Similarly.
19152         (movsi_fix, movsi_nt_vms_fix): Remove.
19153         (nt_lda): Remove.
19154         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
19155
19156 2004-01-19  Jan Hubicka  <jh@suse.cz>
19157
19158         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
19159         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
19160         list.
19161         (cgraph_remove_unreachable_nodes): New function
19162         (cgraph_decide_inlining_of_small_function): Fix pasto.
19163         (cgraph_decide_inlining_incrementally): Fix pasto.
19164         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
19165
19166 2004-01-19  Steven Bosscher  <stevenb@suse.de>
19167
19168         * gengtype.c (header_file): Make it static.
19169         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
19170         * gengtype.h (header_file): No longer extern.
19171
19172 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19173
19174         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
19175         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
19176         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
19177
19178 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19179
19180         * stmt.c (HAVE_casesi): Define it not already defined.
19181         (HAVE_tablejump): Likewise.
19182         (expand_end_case_type): Resort to the binary tree method if
19183         neither casesi or tablejump is available.
19184
19185 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
19186
19187         * final.c (final_scan_insn): Make non-static again.
19188         * output.h (final_scan_insn): Re-add prototype.
19189         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
19190         to final_scan_insn call.
19191         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
19192         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
19193         * config/pa/pa.c (output_lbranch, output_call): Likewise.
19194         * config/sh/sh.c (print_slot): Likewise.
19195         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
19196         (output_sibcall, sparc_flat_function_epilogue): Likewise.
19197
19198 2004-01-18  Jan Hubicka  <jh@suse.cz>
19199
19200         * basic-block.h (try_redirect_by_replacing_jump): Declare.
19201         * cfgcleanup.c (try_optimize_cfg): Use it.
19202         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
19203         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
19204         Kill hack.
19205         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
19206
19207         Revert:
19208         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19209
19210                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19211                 even after reload, just don't remove the actual jump tables.
19212
19213 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19214
19215         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
19216
19217 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19218
19219         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
19220         the size of a pointer in bytes.
19221
19222 2004-01-18  Roger Sayle  <roger@eyesopen.com>
19223
19224         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
19225         live "next" variable, which could lead to an infinite loop.
19226
19227 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
19228
19229         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
19230         block.
19231
19232         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19233         Check for NULL in the chain and remove repeated code.
19234
19235 2004-01-18  Jan Hubicka  <jh@suse.cz>
19236
19237         * coverage.c (checksum_string): Rename to ...
19238         (coverage_checksum_string): ... this one, Use crc32_string; recognize
19239         names containing random number and zero the number out in order to get
19240         match.
19241
19242 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19243
19244         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
19245
19246 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19247
19248         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
19249         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
19250         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
19251         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
19252         doc/trouble.texi: Remove trailing whitespace.
19253
19254 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19255
19256         PR target/7618
19257         * config/mips/mips.c: Include cfglayout.h.
19258         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
19259         (mips_unspec_offset_high): Add temporary register argument.
19260         (mips_load_call_address): New function, split out from...
19261         (mips_expand_call): ...here.
19262         (mips_output_cplocal): New function.
19263         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
19264         (mips_emit_loadgp): New function, split out from...
19265         (mips_expand_prologue): ...here.
19266         (mips_output_mi_thunk): New function.
19267
19268 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
19269
19270         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
19271         mcpu32): Remove redundant checks for implied target predefines.
19272
19273 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
19274
19275         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19276         Return type is unsigned int not int.
19277         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19278         Likewise.
19279
19280 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19281
19282         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
19283         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
19284         "GNU/Linux" and "Microsoft Windows" terminology.
19285
19286 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19287
19288         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
19289         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
19290         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
19291         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
19292         @smallexample instead of @example.
19293
19294 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
19295
19296         * objc/objc-act.c (build_objc_method_call): Use target
19297         hooks instead of macros to determine if ..._stret
19298         dispatchers should be used (NeXT runtime only).
19299
19300 2004-01-17  Roger Sayle  <roger@eyesopen.com>
19301
19302         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
19303         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
19304
19305 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19306
19307         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
19308         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
19309         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
19310         macros.
19311         * reload1.c (emit_reload_insns): Use them.
19312         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
19313         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
19314         for NULL PATTERN.
19315
19316 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19317
19318         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
19319         (final_scan_insn): Update to take an additional SEEN argument.  Emit
19320         a line note after the prologue.  Make static.
19321         (line_note_exists): Remove.
19322         (final): Don't initialize line_note_exists.  Update call to
19323         final_scan_insn.
19324         * output.h (final_scan_insn): Remove prologue.
19325         * function.c (set_insn_locators): Update comment.
19326         (thread_prologue_and_epilogue_insns): Add a comment.
19327
19328 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
19329
19330         PR target/10781
19331         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19332         Prototype.
19333         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19334         New function.
19335         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
19336         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
19337         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
19338
19339 2004-01-17  Jan Hubicka  <jh@suse.cz>
19340
19341         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
19342         commit.
19343
19344         * toplev.c (HAVE_conditional_execution): Provide default.
19345         (rest_of_handle_reorder_blocks): For conditional_execution target
19346         update liveness once after all transformations
19347         (rest_of_compilation): Do crossjumping before ce3.
19348
19349 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
19350
19351         * alias.c (new_alias_set): Mark last_alias_set for PCH.
19352         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
19353         for PCH.
19354         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
19355         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
19356         (get_TOC_alias_set): Mark 'set' for PCH.
19357
19358 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19359
19360         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19361         even after reload, just don't remove the actual jump tables.
19362
19363 2004-01-17  J. Brobecker  <brobecker@gnat.com>
19364
19365         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
19366         Remove checks for is_ada() and TREE_UNSIGNED.
19367         (subrange_type_die): Emit a byte_size attribute if the subrange
19368         type size is different from the base type size.
19369         (modified_type_die): Replace call to is_ada_subrange_type() by
19370         call to is_subrange_type().
19371
19372 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
19373
19374         * config/sh/sh.c: Include ggc.h.
19375
19376 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19377
19378         * Makefile.in (MD5_H): New.
19379         (fold-const.o): Depend on md5.h.
19380         (dwarf2out.o): Likewise.
19381         (cppfiles.o): Likewise.
19382         * cppfiles.c: Include md5.h.
19383         (should_stack_file): Check against list read from PCH file.
19384         (struct pchf_data): New.
19385         (pchf): New variable.
19386         (struct pchf_adder_info): New.
19387         (pchf_adder): New.
19388         (pchf_save_compare): New.
19389         (_cpp_save_file_entries): New.
19390         (_cpp_read_file_entries): New.
19391         (struct pchf_compare_data): New.
19392         (pchf_compare): New.
19393         (check_file_against_entries): New.
19394         * cpphash.h (_cpp_save_file_entries): Prototype.
19395         (_cpp_read_file_entries): Prototype.
19396         * cpppch.c (cpp_write_pch_state): Write the list of headers.
19397         (cpp_read_state): Read the list of headers.
19398
19399 2004-01-17  Jan Hubicka  <jh@suse.cz>
19400
19401         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
19402         builtin_expect specially.
19403         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
19404         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
19405         * invoke.texi (max-inline-insns-single): Set to 100.
19406         (large-function-insns): Set to 3000.
19407
19408 2004-01-16  Eric Christopher  <echristo@redhat.com>
19409             Chandrakala Chavva <cchavva@redhat.com>
19410
19411         * cppcharset.c (one_iso88591_to_utf8): New function.
19412         (convert_iso88591_utf8): Ditto. Use.
19413         (conversion_tab): Use.
19414         (_cpp_input_to_utf8): New function.
19415         (_cpp_init_iconv_buffer): Ditto.
19416         (_cpp_close_iconv_buffer): Ditto.
19417         * cpphash.h: Prototype new functions.
19418         (cpp_buffer): Add input_cset_desc.
19419         * cppinit.c: Add input_charset default.
19420         * cpplib.c (cpp_push_buffer): Support init and
19421         close of iconv.
19422         * cpplib.h (cpp_options): Add input_charset.
19423
19424 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19425
19426         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
19427         * config/alpha/unicosmk.h: Remove a commented-out definition
19428         of ASM_OUTPUT_SECTION_NAME.
19429         * config/stormy16/stormy16.h: Likewise.
19430
19431 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19432
19433         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
19434         (alpha___extern_prefix_sys_stat): ... this.
19435         Apply to <sys/mount.h>, too.
19436         Tweak to match more variations.
19437         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
19438
19439         * fixinc/inclhack.def (alpha___extern_prefix,
19440         alpha___extern_prefix_standards): New hacks to obey
19441         __PRAGMA_EXTERN_PREFIX.
19442         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
19443         test.
19444         * fixinc/tests/base/standards.h: Likewise.
19445
19446         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
19447         variations.
19448         New testcase.
19449         * fixinc/tests/base/pthread.h: Handle it.
19450
19451         * fixincl/inclhack.def (bad_lval): Sort file list.
19452         Add many missing files up to Tru64 UNIX V5.1B.
19453         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
19454         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
19455         order.
19456
19457         * fixinc/fixincl.x: Regenerate.
19458
19459 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
19460
19461         * version.c (version_string): Change to 3.5.0.
19462         * doc/include/gcc-common.texi (version-GCC): Likewise.
19463
19464 2004-01-16  Jan Hubicka  <jh@suse.cz>
19465
19466         * i386.md (load_tp_di): Fix pasto.
19467
19468         PR opt/13608
19469         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
19470
19471         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
19472         pp_c_character_constant, pp_c_floating_constant,
19473         pp_c_additive_expression, pp_c_shift_expression,
19474         pp_c_equality_expression, pp_c_and_expression,
19475         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
19476         pp_c_logical_and_expression): Remove inline modifier.
19477         * dwarf2out.c (get_AT): Likewise.
19478         * et-forest.c (et_splay): Likewise.
19479         * ra.h (ra_alloc, ra_calloc): Likewise
19480
19481 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19482
19483         * config/frv/frv-protos.h: Fix comment formatting.
19484         * config/frv/frv.c: Likewise.
19485         * config/frv/frv.h: Likewise.
19486         * config/frv/frv.md: Likewise.
19487         * config/frv/frvbegin.c: Likewise.
19488         * config/frv/frvend.c: Likewise.
19489
19490 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19491
19492         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
19493         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
19494         LINKER_DOES_NOT_WORK_WITH_DWARF2.
19495         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
19496
19497 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
19498
19499         PR 11864
19500         * postreload.c (reload_cse_simplify_operands): Don't remove
19501         implicit extension from LOAD_EXTEND_OP.
19502
19503 2004-01-16  Jan Hubicka  <jh@suse.cz>
19504
19505         PR opt/11350
19506         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
19507         after reload.
19508         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
19509         rtl_try_redirect_by_replacing_branch): Likewise.
19510
19511 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
19512
19513         PR pch/13689
19514         * alias.c (struct alias_set_entry): Mark for GC.
19515         (alias_sets): Make static, mark for GC.
19516         (record_alias_subset): Use GC to allocate alias structures.
19517         * varray.c (element): Make generic varrays GCed.
19518
19519         PR pch/13361
19520         * c-typeck.c (constructor_asmspec): Delete.
19521         (struct initializer_stack): Delete field 'asmspec'.
19522         (start_init): Delete saving of asmspec.
19523         (finish_init): Don't update constructor_asmspec.
19524         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
19525         * stmt.c (expand_asm): Duplicate strings from tree.
19526         (expand_asm_operands): Likewise.
19527         * tree.c (tree_size): Update computation of size of STRING_CST.
19528         (make_node): Don't make STRING_CST nodes.
19529         (build_string): Allocate string with tree node.
19530         * tree.def (STRING_CST): Update comment.
19531         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
19532         (tree_string): Place contents of string in tree node.
19533         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
19534         from tree.
19535
19536         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
19537         altivec operands.
19538
19539 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19540
19541         * c-common.h: Fix comment formatting.
19542         * c-cppbuiltin.c: Likewise.
19543         * c-pragma.c: Likewise.
19544         * calls.c: Likewise.
19545         * collect2.c: Likewise.
19546         * cppcharset.c: Likewise.
19547         * cpptrad.c: Likewise.
19548         * dbxout.c: Likewise.
19549         * defaults.h: Likewise.
19550         * dwarf2out.c: Likewise.
19551         * fold-const.c: Likewise.
19552         * genautomata.c: Likewise.
19553         * genconditions.c: Likewise.
19554         * genflags.c: Likewise.
19555         * gengtype.c: Likewise.
19556         * integrate.c: Likewise.
19557         * loop.c: Likewise.
19558         * predict.c: Likewise.
19559         * sdbout.c: Likewise.
19560
19561 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
19562
19563         * config/ia64/ia64.md (*movti_internal): C output template
19564         extracted to ia64.c.
19565         (*movti_internal_reg): Delete.
19566         (reload_inti, reload_outti): Use the correct mode on operand 2
19567         in the first place, don't fix it up in the output template.
19568         (movtf, reload_ointf, reload_outtf): New expanders.
19569         (*movtf_internal): New define_insn_and_split.
19570         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
19571         make static; do not hand TFmode CONST_DOUBLEs to split_double.
19572         (ia64_split_tmode_move): New function, body mostly pulled
19573         from ia64.md:*movti_internal.
19574         (ia64_function_arg_words): New function, extracted common
19575         logic from ia64_function_arg et seq.
19576         (ia64_function_arg_offset): Likewise.  Handle correctly the
19577         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
19578         (ia64_function_arg, ia64_function_arg_partial_nregs)
19579         (ia64_function_arg_advance): Use ia64_function_arg_words and
19580         ia64_function_arg_offset.
19581         (ia64_function_value): TCmode does not go in float regs.
19582         (ia64_secondary_reload_class): Also handle TFmode.
19583         * config/ia64/ia64-protos.h: Remove prototype for
19584         ia64_split_timode; add prototype for ia64_split_tmode_move.
19585
19586 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19587
19588         * Makefile.in (MAINT): Make it an immediate assignment.
19589
19590 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19591
19592         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
19593
19594 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19595
19596         * config/h8300/coff.h: Replace Hitachi with Renesas.
19597         * config/h8300/elf.h: Likewise.
19598         * config/h8300/h8300-protos.h: Likewise.
19599         * config/h8300/h8300.c: Likewise.
19600         * config/h8300/h8300.h: Likewise.
19601         * config/h8300/h8300.md: Likewise.
19602         * config/h8300/lib1funcs.asm: Likewise.
19603
19604 2004-01-15  Andrew Pinski  <apinski@apple.com>
19605
19606         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
19607         around it.
19608
19609 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19610
19611         * config/h8300/h8300.c (h8300_return_in_memory): New.
19612         (TARGET_STRUCT_VALUE_RTX): Likewise.
19613         (TARGET_RETURN_IN_MEMORY): Likewise.
19614         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
19615         (RETURN_IN_MEMORY): Likewise.
19616
19617 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19618
19619         PR optimization/13375
19620         * gcse.c (handle_avail_expr): Just return if the source is not a
19621         single set.
19622
19623 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19624             Daniel Jacobowitz  <drow@mvista.com>
19625
19626         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
19627         (EQUIV): Define.
19628         (ARM_FUNC_ALIAS): New macro.
19629         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
19630         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
19631
19632 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19633
19634         PR optimization/12372
19635         * calls.c (expand_call): Add call_fusage data for stack arguments in
19636         constant calls.
19637
19638 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
19639
19640         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
19641         (rs6000_elf_declare_function_name): Formatting.
19642         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
19643
19644 2004-01-15  Jan Hubicka  <jh@suse.cz>
19645
19646         PR bootstrap/13692
19647         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
19648         previous patch.
19649
19650 2004-01-15  Richard Henderson  <rth@redhat.com>
19651
19652         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
19653         integer regs of the same call-savedness.
19654
19655 2004-01-15  Andreas Schwab  <schwab@suse.de>
19656
19657         PR bootstrap/13562
19658         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
19659         status for NOTB/NOTW/NEGW methods.
19660
19661 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19662
19663         * doc/invoke.texi: Update dump file names.  Fix a typo.
19664
19665 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19666
19667         * builtins.c (expand_builtin_va_end): Don't use
19668         EXPAND_BUILTIN_VA_END.
19669         * system.h (EXPAND_BUILTIN_VA_END): Poison.
19670         * config/d30v/d30v.h: Remove a commented-out definition of
19671         EXPAND_BUILTIN_VA_END.
19672         * config/stormy16/stormy16.h: Likewise.
19673
19674 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19675
19676         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
19677         * targhooks.c (default_struct_value_rtx): Don't use
19678         STRUCT_VALUE_INCOMING_REGNUM.
19679
19680 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19681
19682         PR bootstrap/12744
19683         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
19684         GENINSRC and not parsedir.  Define srcextra as a langhook.
19685         * configure: Regenerate.
19686         * Makefile.in: Suppress default .l.c rule.  Don't substitute
19687         parsedir and delete all references throughout.  Conditionally define
19688         rule for srcextra dependent on GENINSRC.
19689         (stmp-docobjdir): Delete.
19690         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
19691         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
19692         and gengtype-yacc.h back to source directory.
19693         (maintainer-clean): Delete all parse files in source directory.
19694         (distclean): Delete generated files.
19695
19696         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
19697         (objc-parse.c, objc-parse.y): Don't use parsedir.
19698         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
19699         directory if requested.
19700         (po-generated): Don't use parsedir.
19701         (objc.maintainer-clean): Delete above files from source directory.
19702
19703 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19704
19705         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
19706
19707 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19708
19709         * doc/tm.texi: Replace RETURN_IN_MEMORY with
19710         TARGET_RETURN_IN_MEMORY.
19711
19712 2004-01-15  Jan Hubicka  <jh@suse.cz>
19713
19714         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
19715         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
19716         functions accepting SSE arguments
19717         (function_arg): Warn only when asked to warn.
19718         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
19719
19720 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
19721
19722         * c-parse.in (stmts_and_decls): Make label at end of compound
19723         statement a hard error.
19724
19725 2004-01-14  Jan Hubicka  <jh@suse.cz>
19726
19727         * cgraph.c (create_edge): Use local.redefined_extern_inline.
19728         * cgraph.h (cgraph_local_info): Sort fields by size; add
19729         redefined_extern_inline
19730         (cgraph_global_info): Sort fields by size.
19731         (cgraph_node): Likewise.
19732         * cgraphunit.c (cgraph_finalize_function): Se
19733         local.redefined_extern_inline on redefinition.
19734         (cgraph_analyze_function): Use it; fix formating.
19735
19736 2004-01-14  Jan Hubicka  <jh@suse.cz>
19737
19738         PR c++/10776
19739         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
19740         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
19741         bitmaps
19742         (cache_size): New variable
19743         (add_dependence): Update use; canonize early memory locations
19744         (sched_analyze_1): Likewise.
19745         (sched_analyze_2): Likewise.
19746         (init_dependency_caches): Initialize bitmaps.
19747         (free_dependency_caches): Free bitmaps
19748
19749 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19750
19751         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
19752         targetm.calls.strict_argument_naming().
19753         * target.h: Likewise.
19754
19755 2004-01-14  Richard Henderson  <rth@redhat.com>
19756
19757         PR debug/13231
19758         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
19759         instructions.
19760
19761 2004-01-14  Richard Henderson  <rth@redhat.com>
19762
19763         PR c++/12491
19764         * except.c (struct eh_region): Add u.fixup.resolved.
19765         (resolve_one_fixup_region): Split out from ...
19766         (resolve_fixup_regions): ... here.
19767
19768 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19769
19770         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
19771
19772 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19773
19774         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
19775         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
19776         (STRUCT_VALUE): Remove.
19777
19778 2004-01-14  Steven Bosscher  <stevenb@suse.de>
19779
19780         * system.h: Poison PROMOTED_MODE
19781         * integrate.c (expand_inline_function): Don't mention the
19782         PROMOTED_MODE.
19783         * loop.c (update_giv_derive): Same.
19784         * tree.h (DECL_RTL): Same.
19785
19786 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
19787
19788         PR target/9365
19789         * sh.c (gen_block_redirect): Add special handling of RETURN.
19790         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
19791         far branch target (i.e. it's a return).
19792
19793 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19794
19795         * regrename.c (find_oldest_value_reg): Fix a warning.
19796
19797 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19798
19799         PR bootstrap/12527
19800         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
19801         Move linux-gas.h and linux-elf.h before aout.h.
19802         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
19803         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
19804
19805 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19806
19807         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
19808         (CONST_INT, VOIDmode, ...).
19809
19810 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19811
19812         * regrename.c (find_oldest_value_reg): If the replacement uses
19813         multiple hard registers, check that all of them are in CLASS.
19814
19815 2004-01-14  Jan Hubicka  <jh@suse.cz>
19816
19817         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
19818         impossible.
19819
19820 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
19821
19822         * Makefile.in: Define MAINT from --enable-maintainer-mode.
19823
19824 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19825
19826         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
19827         Calculate always vrsave_mask if TARGET_ALTIVEC.
19828         (rs6000_emit_prologue): Emit code for vrsave
19829         only if TARGET_ALTIVEC_VRSAVE.
19830         (rs6000_emit_epilogue): Likewise.
19831
19832 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
19833
19834         * config/sparc/sparc.md (tie_add32): Fix pasto.
19835         (tie_add64): Likewise.
19836
19837 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19838
19839         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
19840
19841 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19842
19843         * config/iq2000/iq2000-protos.h: Fix comment formatting.
19844         * config/iq2000/iq2000.c: Likewise.
19845         * config/iq2000/iq2000.md: Likewise.
19846
19847 2004-01-14  J. Brobecker  <brobecker@gnat.com>
19848
19849         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
19850         (subrange_type_die): Add handle for nameless subrange types.
19851
19852 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19853
19854         * config/h8300/h8300-protos.h: Replace do_movsi with
19855         h8300_expand_movsi.
19856         * config/h8300/h8300.c (do_movsi): Change to
19857         h8300_expand_movsi.
19858         * config/h8300/h8300.md (movsi): Replace do_movsi with
19859         h8300_expand_movsi.
19860         (movsf): Likewise.
19861
19862 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19863
19864         * config/h8300/h8300.c (dosize): Change to
19865         h8300_emit_stack_adjustment.  Update callers.
19866
19867 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19868
19869         * config/h8300/h8300.md (movstrictqi): Add an alternative with
19870         the source being post_inc.  Tighten the predicate for the
19871         destination to register_operand.
19872         (movstricthi): Likewise.
19873
19874 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19875
19876         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
19877         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
19878         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
19879
19880 2004-01-14  Jan Hubicka  <jh@suse.cz>
19881
19882         Partial fix PR c++/12850
19883         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
19884         at zero nest level.
19885
19886 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
19887
19888         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
19889         pseudo-register.
19890
19891 2004-01-13  Devang Patel <dpatel@apple.com
19892
19893         PR debug/7078
19894         * dbxout.c (dbxout_symbol_name): Emit mangled names for
19895         NAMESPACE_DECL memebers.
19896
19897 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
19898
19899         PR c++/12709
19900         * c-common.c (finish_fname_decls): Use the chain only if the
19901         tree is an expr_stmt.
19902
19903 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19904
19905         * rtl.def: Add comment about new option in automata_option.
19906
19907         * genautomata.c (PROGRESS_OPTION): New macro.
19908         (progress_flag): New global variable.
19909         (gen_automata_option): Process `progress'.
19910         (transform_insn_regexps, check_unit_distributions_to_automata,
19911         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
19912         expand_automata, write_automata): Print about the progress only if
19913         progress_flag.  Remove fflush.
19914         (initiate_automaton_gen): Process command line flag `-progress'.
19915
19916         * doc/md.texi: Describe the new option.
19917
19918 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19919
19920         * cfg.c (dump_bb): Dump entry edges.
19921
19922 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
19923
19924         * arm.c (thumb_legitimate_address_p): Only allow constant pool
19925         references from SImode.
19926         * arm.md (thumb_movhi_insn): Don't allow minipool references.
19927
19928 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19929
19930         * system.h (TEXT_SECTION): Poison.
19931         * varasm.c (text_section): Don't use TEXT_SECTION.
19932         * config/sh/sh.c (sh_file_start): Fix a comment typo.
19933         * doc/tm.texi (TEXT_SECTION): Remove.
19934
19935 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
19936
19937         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
19938
19939 2004-01-12  James E Wilson  <wilson@specifixinc.com>
19940
19941         * unwind-libunwind.c: Delete.
19942
19943 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19944
19945         PR 13656
19946         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
19947         oldtype is set, set *newtypep or *oldtypep too.  Do not set
19948         them at the very end.
19949         (validate_proto_after_old_defn): Restructure for comprehensibility;
19950         make error messages clearer.
19951
19952 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19953
19954         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
19955         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
19956         * varray.c: No need to prototype error.
19957         (varray_check_failed): Wrap long string onto two lines.
19958         (varray_underflow): New function.
19959
19960 2004-01-13  Steven Bosscher  <stevenb@suse.de>
19961
19962         PR c++/13376
19963         * function.h (struct function): Kill `name' field.
19964         (current_function_name): Make it an extern function.
19965         * function.c (current_function_name): New function.
19966         * graph.c: Update all uses of current_function_name.
19967         * gcse.c: Likewise.
19968         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
19969         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
19970         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
19971         instead of a strcmp with "main".
19972
19973 2004-01-13  Jan Hubicka  <jh@suse.cz>
19974
19975         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
19976
19977         * cgraphunit.c (cgraph_optimize_function):  Always do
19978         optimize_inline_calls when there is always_inline callee.
19979         (cgraph_decide_inlining): Fix formating.
19980         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
19981         functions.
19982         (expand_call_inline): Likewise.
19983         * toplev.h (sorry): Fix prototype.
19984
19985 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19986
19987         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
19988         conditional jumps that drop through to unconditional jumps or the
19989         end of the sequence.
19990
19991 2004-01-13  Jan Hubicka  <jh@suse.cz>
19992
19993         * alias.c (new_alias_set): Construct the alias_set varray.
19994         (init_alias_once): Don't do it here.
19995
19996 2004-01-12  Marc Espie <espie@openbsd.org>
19997
19998         * system.h: handle YYBYACC like YYBISON.
19999
20000 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
20001
20002         PR target/10847
20003         * config.gcc: No longer includes conflicting header sparc/sol2.h when
20004         building on sparc64-*-openbsd*.
20005
20006 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
20007
20008         PR debug/13539
20009         * dbxout.c (dbxout_type): Protected inheritance is not
20010         private but protected.
20011
20012 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
20013
20014         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
20015
20016 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
20017
20018         PR optimization/12508.
20019         * combine.c (try_combine): Remove a dead set in a parallel
20020         even if its destination is a subreg.
20021
20022         Revert:
20023         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
20024         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
20025         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
20026
20027 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
20028
20029         * real.c: Update copyright date.
20030         * emit-rtl.c: Likewise.
20031         * rtl.h: Likewise.
20032         * dwarf2out.c: Likewise.
20033         * config/rs6000/darwin-ldouble.c: Likewise.
20034         * config/rs6000/rs6000.md: Likewise.
20035
20036 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
20037
20038         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
20039         TFmode to SImode libfuncs.
20040
20041 2004-01-12  Roger Sayle  <roger@eyesopen.com>
20042
20043         PR middle-end/11397
20044         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
20045
20046 2004-01-12  Jan Hubicka  <jh@suse.cz>
20047
20048         PR opt/12826
20049         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
20050         stored.
20051
20052         PR opt/12863
20053         * cfgcleanup.c (label_is_jump_target_p): Move to...
20054         * rtlanal.c (label_is_jump_target_p): ... here.
20055         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
20056         edges unified with branch edges.
20057
20058 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
20059
20060         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
20061         high word of an integral CONST_DOUBLE.
20062
20063 2004-01-12  Paul Brook  <paul@codesourcery.com>
20064
20065         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
20066
20067 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
20068
20069         PR target/13585
20070         * sh-protos.h (check_use_sfunc_addr): Declare.
20071         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
20072         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
20073
20074 2004-01-12  Jan Hubicka  <jh@suse.cz>
20075
20076         * alias.c:  Invlude varray.h
20077         (alias_sets): Turn into varray.
20078         (get_alias_set_entry): Use VARRAY; mark inline.
20079         (mems_in_disjoint_alias_sets_p): Mark inline.
20080         (record_alias_subset): Use varray.
20081         (init_alias_once): Initialize varray.
20082         (new_alias_set): Grow array.
20083         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
20084
20085 2004-01-12  Jan Hubicka  <jh@suse.cz>
20086
20087         Partial fix for PR opt/10776 II
20088         * cselib.c: Include params.h
20089         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
20090         locations.
20091         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
20092         * Makefile.in (cselib.o): Depend on params.h
20093
20094 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
20095
20096         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
20097         simplify_unary_operation if the operand has a known mode.
20098
20099 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
20100
20101         PR target/13534
20102         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
20103         predicate to handle 'ld' conform addresses.
20104         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
20105         contraint.
20106         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
20107         are memory contraints.
20108         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
20109         New prototype.
20110         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
20111         Change 'o' to 'Y' constraint.
20112         (*movdf_softfloat64): Ditto.
20113
20114 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
20115
20116         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
20117         brace-enclosed syntax in all C output statements.
20118
20119 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
20120
20121         PR target/13401
20122         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
20123         Objective-C language type value is 14.
20124
20125 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
20126
20127         PR c/12148
20128         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
20129         `int' in a number of places to make sure we always have a SImode
20130         and not a HImode.  Add a 'L' suffix to a number of constants.
20131
20132 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20133
20134         * pa.c: Don't include obstack.h.
20135
20136         * pa.md: Correct constraint in pattern for loading PIC label address.
20137
20138 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20139
20140         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
20141          before defining.
20142
20143 2004-01-11  Steven Bosscher  <stevenb@suse.de>
20144
20145         PR fortran/9972
20146         * toplev.c (rest_of_handle_inline): Also consider functions
20147         for deferral if the language is GNU F77.
20148
20149 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
20150
20151         * c-decl.c (diagnose_arglist_conflict): Add missing space to
20152         diagnostic messages.
20153
20154 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
20155
20156         PR middle-end/13392
20157         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
20158         to drop through label.  Don't fall back to SCC even when conditional
20159         jump has not been found.
20160
20161 2004-01-11  Jan Hubicka  <jh@suse.cz>
20162
20163         * invoke.texi: Fix syntax error in previous patch.
20164
20165         Partial fix for PR opt/10776
20166         * Makefile.in (reload.o): Include param.h
20167         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
20168         * reload.c: Include params.h.
20169         (find_equiv_reg): Work limiting check.
20170         * invoke.texi: Document.
20171
20172 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20173
20174         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
20175         out-of-bounds accesses to string constants.  Simplify mips16
20176         case accordingly.
20177
20178 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20179
20180         PR optimization/13469
20181         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
20182         reload_cse_regs (-fnon-call-exceptions only).
20183
20184 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
20185
20186         * config/mcore/lib1.asm: Fix comment formatting.
20187         * config/mcore/mcore-elf.h: Likewise.
20188         * config/mcore/mcore.c: Likewise.
20189         * config/mcore/mcore.h: Likewise.
20190         * config/mcore/mcore.md: Likewise.
20191
20192 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20193
20194         * c-decl.c (duplicate_decls): Break apart into...
20195         (diagnose_arglist_conflict, validate_proto_after_old_defn)
20196         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
20197         ... these new functions.  Restructure for comprehensibility.
20198         Remove various archaic special cases.  Always report the
20199         location of the previous declaration when a diagnostic is issued.
20200         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
20201         (match_builtin_function_types): Delete unnecessary forward declaration.
20202
20203 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20204
20205         * genautomata.c (make_automaton, NDFA_to_DFA):
20206         Print progress bars with '.' characters instead of '*'.
20207         (build_automaton): Change notes to match.
20208
20209 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20210
20211         * config/m32r/m32r.md: Use define_constants for unspec and
20212         unspec_volatile.
20213
20214 2004-01-10  Jan Hubicka  <jh@suse.cz>
20215
20216         PR opt/11635
20217         * expr.c (expand_expr_real):  More curefully expand union casts.
20218
20219 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20220
20221         * config/m32r/m32r.md (flush_icache): Use 1 for
20222         unspec_volatile.
20223
20224 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
20225             James E Wilson  <wilson@specifixinc.com>
20226
20227         PR debug/12860
20228         * dbxout.c (dbxout_symbol): Remove initialization of
20229         current_sym_code, current_sym_value, and current_sym_addr.
20230         (dbxout_symbol_location): Same.
20231         (dbxout_prepare_symbol): Zero current_sym_code,
20232         current_sym_value, and current_sym_addr.
20233
20234 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
20235
20236         * tree.c (get_unwidened): Reorder conditions so that the null pointer
20237         check is done first.
20238
20239 2004-01-09  Eric Christopher  <echristo@redhat.com>
20240
20241         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
20242         if we're running mark_constant_function.
20243
20244 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
20245
20246         PR target/12561
20247         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
20248
20249 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
20250
20251         PR debug/11231
20252         * dbxout.c (dbxout_type_fields): Return if any item is
20253         error_mark_node or the type is error_mark_node.
20254
20255 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
20256
20257         * config/rs6000/darwin-ldouble.c: Add big comment explaining
20258         exactly what is expected as a 'long double'.
20259         (_xlqadd): When a value to be returned is representable as a
20260         'double', just return it directly, do not construct it using a union.
20261         Also, correct final fixup.
20262         (_xlqmul): Likewise.
20263         (_xlqdiv): Likewise.
20264         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
20265
20266         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
20267
20268 2004-01-09  Richard Henderson  <rth@redhat.com>
20269
20270         * recog.c (constrain_operands): Validate mem operands.
20271
20272 2004-01-09   James E Wilson  <wilson@specifixinc.com>
20273
20274         * gcc.c (init_spec): Remove -lunwind from shared case.
20275         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
20276
20277 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
20278
20279         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
20280         * configure: Regenerate
20281
20282 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
20283
20284         PR c/11234
20285         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
20286         between function and object pointers.
20287         (digest_init): When comparing a pointer to function type to the
20288         target type, only apply TREE_TYPE once to the pointer to function
20289         type.
20290         * except.c (for_each_eh_label_1): Treat data as a pointer to a
20291         function pointer rather than casting it to a function pointer.
20292         (for_each_eh_label): Update caller.
20293         * recog.h (struct insn_data): Use a struct or union for output.
20294         * genoutput.c (output_insn_data): Update.
20295         * final.c (get_insn_template): Update.
20296
20297 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20298
20299         * expr.h (expand_expr): Make it a macro, not a function.
20300         (expand_expr_real): New function.
20301         * expr.c (store_expr): Adjust logic for deciding whether or not to
20302         copy the value returned by expand_expr.
20303         (expand_expr): Rename to ...
20304         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
20305         calls to language hooks.
20306         * c-common.h (c_expand_expr): Adjust prototype.
20307         * c-common.c (c_expand_expr): Add alt_rtl parameter.
20308         * langhooks-def.h (lhd_expand_expr): Change prototype.
20309         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
20310         * langhooks.h (lang_hooks): Change type of expand_expr.
20311         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
20312         (last_expr_alt_rtl): Likewise.
20313         (expand_expr_stmt_value): Set last_expr_alt_rtl.
20314         (clear_last_expr): Clear it.
20315         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
20316         (expand_end_bindings): Save and restor last_expr_alt_rtl.
20317         * tree.def (RTL_EXPR): Give it an additional operand.
20318         * tree.h (RTL_EXPR_ALT_RTL): New macro.
20319
20320 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20321
20322         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
20323         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
20324
20325 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20326
20327         PR target/13380.
20328         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
20329         or (ne:SI (reg:CC 17) (const_int 0)).
20330         Be specific about modes wherever possible.
20331
20332 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20333
20334         * config/m32r/m32r.c (m32r_expand_block_move): Call
20335         gen_movestrsi_internal with two more arguments.
20336         (m32r_output_block_move): Adjust operand numbers.
20337         Properly update the source and destination pointers.
20338         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
20339         'r+'.  Change the set detinations to match_operand.
20340
20341 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20342
20343         * final.c (FIRST_INSN_ADDRESS): Remove.
20344         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
20345         * system.h (FIRST_INSN_ADDRESS): Poison.
20346         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
20347         * config/m32r/m32r-protos.h: Remove the prototype for
20348         m32r_first_insn_address.
20349         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
20350         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
20351         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
20352
20353 2004-01-09  J. Brobecker  <brobecker@gnat.com>
20354
20355         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
20356         we just created.
20357         (is_ada_subrange_type): DIEs for enumeration subtypes should be
20358         emitted as subrange types too.
20359         (subrange_type_die): Add handling of enumeration subtypes.
20360
20361 2004-01-08  Richard Henderson  <rth@redhat.com>
20362
20363         PR opt/12441
20364         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
20365         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
20366         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
20367         (ix86_address_cost): Be prepared for SUBREGed registers.
20368         (legitimate_address_p): Accept SUBREGed registers.
20369
20370 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
20371
20372         * Makefile.in: Rename configure.in to configure.ac
20373         * doc/sourcebuild.texi: Likewise.
20374         * configure: Regenerate.
20375         * config.in: Regenerate.
20376
20377 2004-01-08  Stuart Hastings  <stuart@apple.com>
20378
20379         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
20380
20381 2004-01-08  Jan Hubicka  <jh@suse.cz>
20382
20383         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
20384
20385 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
20386
20387         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
20388         (UNSPEC_FIX_TRUNC_TF): New constant.
20389         (movtf_internal): Make splitter active only when insn is active.
20390         (extenddftf2): Rewrite to properly load zero into low part.
20391         (extenddftf2_internal): New.
20392         (extendsftf2): Rewrite.
20393         (truncdftf2): Correct length.
20394         (floatditf2): Delete.
20395         (fix_trunc_helper): New.
20396         (fix_trunctfdi2): Use fix_trunc_helper.
20397         (fix_trunctfsi2): Likewise.fix_trunc
20398         (fix_trunctfsi2_internal): New.
20399
20400         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
20401         addresses are legitimate on Darwin even when flag_pic.
20402         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
20403         non-offsettable addresses for loads of TFmode constants.
20404
20405 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20406
20407         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
20408         variables in the appropriate bss section.
20409
20410 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
20411
20412         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
20413         target_flags has MASK_POWERPC64 when -m64.
20414         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
20415         to 620, 630, power3, power4 and rs64a entries.
20416         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
20417
20418 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
20419
20420         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
20421         floating-point constants.
20422
20423 2004-01-08  J. Brobecker  <brobecker@gnat.com>
20424
20425         * dwarf2out.c (subrange_type_die): Add context_die parameter.
20426         Create the subrange_type DIE using the given context DIE.
20427         (modified_type_die): Update call to subrange_type_die.
20428
20429 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
20430
20431         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
20432         Add multiple-include guard.
20433
20434 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
20435
20436         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
20437         all vector constant loadable by vsplt*.
20438         (output_vec_const_move): Likewise.
20439
20440 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20441
20442         PR c/6024
20443         * c-typeck.c (comptypes): Only treat enumerated types in the same
20444         translation unit as compatible with each other when they are the
20445         same type.
20446         * doc/extend.texi: Update.
20447
20448 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20449
20450         PR c/12165
20451         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
20452         array type from the array element type.
20453
20454 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
20455
20456         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
20457         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
20458         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
20459         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
20460         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
20461
20462 2004-01-06  Eric Christopher  <echristo@redhat.com>
20463
20464         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
20465         (DWARF2_DEBUGGING_INFO): Define.
20466         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
20467         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
20468         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
20469         for irix as.
20470         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
20471         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
20472         * config/mips/iris5gas.h: Ditto.
20473         (DBX_DEBUGGING_INFO): Remove.
20474         (DWARF2_DEBUGGING_INFO): Ditto.
20475         (MIPS_DEBUGGING_INFO): Ditto.
20476         (PREFERRED_DEBUGGING_TYPE): Ditto.
20477         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
20478         (PREFERRED_DEBUGGING_TYPE): Ditto.
20479         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
20480         * config/mips/elf64.h: Ditto.
20481
20482 2004-01-06  Jan Hubicka  <jh@suse.cz>
20483
20484         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
20485         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
20486
20487 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
20488
20489         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
20490         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
20491         * config/rs6000/darwin-ldouble.c: New.
20492
20493         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
20494         for constants.
20495         (constant_subword): Delete.
20496         * rtl.h (constant_subword): Delete prototype.
20497         (immed_double_const): Is not in varasm.c.
20498         * simplify-rtx.c (simplify_immed_subreg): New.
20499         (simplify_subreg): Use simplify_immed_subreg.
20500
20501         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
20502         than trying to generate RTL directly.
20503         (fix_trunctfsi2): Use expand_fix rather than trying to generate
20504         RTL directly.
20505
20506         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
20507
20508 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
20509
20510         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
20511         function into a separate macro.
20512         (read_only_data_section): Add void argument.
20513         (private_data_section): Same.
20514         (read_only_private_data_section): Same.
20515         (toc_section): Same.
20516
20517 2004-01-06  Jan Hubicka  <jh@suse.cz>
20518
20519         * invoke.texi:  Remove typo in last change.
20520
20521         PR target/10301
20522         * config.gcc: Accept opteron and athlon-64 as variants
20523         of k8.
20524         * i386.c (override_options): Likewise.
20525         * invoke.texi (i386 -mtune): Expand documentation.
20526
20527 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20528
20529         * alias.c: Fix comment typos.
20530         * builtins.c: Likewise.
20531         * cfg.c: Likewise.
20532         * df.c: Likewise.
20533         * dominance.c: Likewise.
20534         * dwarf2out.c: Likewise.
20535         * emit-rtl.c: Likewise.
20536         * expr.c: Likewise.
20537         * final.c: Likewise.
20538         * fold-const.c: Likewise.
20539         * gcse.c: Likewise.
20540         * genattrtab.c: Likewise.
20541         * genrecog.c: Likewise.
20542         * gensupport.c: Likewise.
20543         * ggc-zone.c: Likewise.
20544         * integrate.c: Likewise.
20545         * local-alloc.c: Likewise.
20546         * loop.c: Likewise.
20547         * recog.c: Likewise.
20548         * regmove.c: Likewise.
20549         * reg-stack.c: Likewise.
20550         * reorg.c: Likewise.
20551         * rtlanal.c: Likewise.
20552         * rtl.h: Likewise.
20553         * sched-ebb.c: Likewise.
20554         * simplify-rtx.c: Likewise.
20555         * toplev.c: Likewise.
20556         * varasm.c: Likewise.
20557
20558 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20559
20560         * doc/install.texi: Fix typos.
20561         * doc/invoke.texi: Likewise.
20562         * doc/md.texi: Likewise.
20563
20564 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20565
20566         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
20567
20568 2004-01-06  Jan Hubicka  <jh@suse.cz>
20569
20570         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
20571         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
20572         of MMX_REGPARM.
20573         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
20574         add MMX_REGPARM.
20575         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
20576         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
20577         (MMX_REGPARM_MAX): Similarly for -mmmx.
20578
20579 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20580
20581         * config/sh/linux.h: Fix comment formatting.
20582         * config/sh/netbsd-elf.h: Likewise.
20583         * config/sh/sh.c: Likewise.
20584         * config/sh/sh.h: Likewise.
20585         * config/sh/vxworks.h: Likewise.
20586
20587 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20588
20589         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
20590         * toplev.c (output_file_directive): Don't use
20591         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
20592
20593 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
20594
20595         * toplev.c: Fix broken checkin of 2003-12-30.
20596
20597 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
20598
20599         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
20600         (USING_MMAP): We don't support non-mmap.
20601         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
20602         large objects.
20603         (struct page_entry): Remove bytes_free.
20604         (struct page_table_chain): Remove.
20605         (struct globals): Remove page_table member.
20606         (loookup_page_table_entry): Function deleted.
20607         (set_page_table_entry): Ditto.
20608         (ggc_allocated_p): No longer need page table lookups.
20609         (ggc_marked_p): Ditto.
20610         (alloc_small_page): Don't care about bytes_free anymore.
20611         (alloc_large_page): Round up size.
20612         (ggc_alloc_zone_1): Mark large objects as such, and calculate
20613         their size the new way.
20614         Remove page table lookups and setting.
20615         (ggc_get_size): Calculate large object size the new way.
20616         (sweep_pages): Redo to account for fact that we no longer have
20617         bytes_free.
20618         (ggc_collect): No longer need to reincrement bytes_free.
20619         (ggc_pch_alloc_object): Handle new large objects properly.
20620         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
20621
20622 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20623
20624         * doc/invoke.texi: Remove a page break.
20625
20626 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20627
20628         * config/avr/avr.c (avr_output_function_prologue): Remove an
20629         extra pair of curly braces.
20630
20631 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20632
20633         * config/mn10300/mn10300.c: Fix comment formatting.
20634         * config/mn10300/mn10300.h: Likewise.
20635
20636 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20637
20638         * tree.h: Update documentation on nothrow_flag.
20639         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
20640         types.
20641
20642 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20643
20644         * doc/invoke.texi: Remove traces of dead ports.
20645
20646 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20647
20648         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
20649         option.
20650
20651 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20652
20653         PR target/12945
20654         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
20655         counter labels.
20656         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
20657         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
20658         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
20659         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
20660         (mips_symbol_insns): Don't trust the local/global classification.
20661         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
20662         (override_options): Make -mabicalls -fno-unit-at-a-time imply
20663         -mno-explicit-relocs.
20664         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
20665         between local and global symbols.
20666
20667 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20668
20669         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
20670         (mips_preferred_reload_class): Declare.
20671         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
20672         (EXTRA_CONSTRAINT): Update accordingly.
20673         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
20674         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
20675         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
20676         mips_dangerous_for_la25_p.
20677         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
20678         if mips_dangerous_for_la25_p.
20679
20680 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
20681
20682         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
20683         warning.
20684
20685 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
20686
20687         * configure.ac: Use AC_PROG_CPP_WERROR.
20688         * configure: Regenerate.
20689
20690 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
20691
20692         * .cvsignore: Add autom4te.cache.
20693
20694 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
20695
20696         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
20697         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
20698         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
20699         then architecture options, then ABI options.  General rewording.
20700
20701 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
20702
20703         PR c/3414
20704         * doc/extend.texi: Clarify definition of malloc attribute.
20705
20706 2004-01-04  Jan Hubicka  <jh@suse.cz>
20707
20708         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
20709         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
20710         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
20711         (cgraph_inline_p): Add extra argument reason.
20712         * cgraphunit.c: Minor formating fixes.
20713         cgraph_first_inlined_callee): New functions.
20714         (record_call_1): Record builtins too.
20715         (cgraph_analyze_function): Update inline_failed messages.
20716         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
20717         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
20718         (cgraph_check_inline_limits): Likewise; Add argument reason.
20719         (cgraph_set_inline_failed): New static function.
20720         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
20721         reasons.
20722         (cgraph_inline_p): Add new argument reason.
20723         * tree-inline.c (expand_call_inline):  Update warning.
20724
20725 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
20726
20727         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
20728         with modern equivalents.
20729         * configure: Regenerate.
20730
20731         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
20732         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
20733         * configure: Regenerate.
20734
20735         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
20736
20737         * configure.in: Rename to configure.ac.
20738         * configure.ac: Renamed from configure.in; make minimum necessary
20739         changes for autoconf 2.5x.
20740         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
20741         * configure: Regenerate with autoconf 2.57.
20742
20743 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
20744
20745         * config/mips/linux.h: Fix comment formatting.
20746         * config/mips/mips.c: Likewise.
20747         * config/mips/mips.h: Likewise.
20748         * config/mips/mips.md: Likewise.
20749         * config/mips/netbsd.h: Likewise.
20750         * config/mips/windiss.h: Likewise.
20751
20752 2004-01-02  Richard Henderson  <rth@redhat.com>
20753
20754         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
20755         for sse and 387; add suppression for mmx.
20756
20757 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
20758
20759         * loop.c (loop_optimize): Free all loops_info's mems.
20760
20761         * c-typeck.c (finish_init): Free spelling_base before
20762         setting it again.
20763
20764         * cfgloop.c (flow_loops_find): Always free the sbitmap
20765         headers.
20766
20767         * predict.c (estimate_probability): Free bbs after being
20768         done with it.
20769
20770 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20771
20772         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
20773         const_8bit_operand and call_address_operand.
20774
20775 2004-01-02  Jan Hubicka  <jh@suse.cz>
20776
20777         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
20778         when there is nothing to inline but warnings are requested.
20779         (cgraph_decide_inlining):  Fix memory leak.
20780
20781 2004-01-02  Jan Hubicka  <jh@suse.cz>
20782
20783         * expr.c (store_constructor):  Fix pasto in previous patch.
20784
20785 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20786
20787         * config/i386/cygming.h: Fix comment formatting.
20788         * config/i386/djgpp.h: Likewise.
20789         * config/i386/gthr-win32.c: Likewise.
20790         * config/i386/i386-interix.h: Likewise.
20791         * config/i386/i386.c: Likewise.
20792         * config/i386/i386.h: Likewise.
20793         * config/i386/openbsd.h: Likewise.
20794         * config/i386/winnt.c: Likewise.
20795         * config/i386/xm-mingw32.h: Likewise.
20796
20797 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
20798
20799         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
20800         copyright and last modification dates.
20801
20802 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
20803
20804         * doc/install.texi (Specific): Mention x86_64.
20805
20806 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20807
20808         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
20809         Call force_operand on plus_constant result.
20810
20811 2004-01-01  Jan Hubicka  <jh@suse.cz>
20812
20813         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
20814         * expr.c (store_constructor): Use vec_init pattern.
20815         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
20816         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
20817         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
20818         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
20819         New patterns.
20820         (sse2_unpc?pd): Fix pattern.
20821         (sse2_movlpd): Kill.
20822         (sse2_movsd): Deal with movlpd too.
20823         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
20824         (ix86_expand_vector_init): New.
20825         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
20826         * md.texi (vec_set, vec_extract): Document
20827
20828 2003-12-31  Jan Hubicka  <jh@suse.cz>
20829
20830         PR opt/13473
20831         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
20832         ASM input operands
20833
20834         PR opt/12617
20835         * toplev.c (dump_file_index): Reorder ce3 and bbro.
20836         (dump_file): Likewise.
20837         (rest_of_compilation): Likewise.
20838
20839         PR debug/13367
20840         * cgraph.c (cgraph_function_possibly_inlined):  Even with
20841         flag_really_no_inline we inline always_inline functions.
20842         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
20843         for non-always_inline functions when there is flag_really_no_inline.
20844         (cgraph_decide_inlining): Limit work done when not inlining.
20845         (cgraph_decide_inlining_incrementally): Likewise.
20846         (cgraph_optimize_function): Check whether something got inlined.
20847         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
20848         extern inline functions when not inlining.
20849
20850         * opts.c (decode_options):  Disable crossjumping at -O1
20851         * invoke.texi (-O1): Document change.
20852
20853 See ChangeLog.10 for earlier changes.